82
82
m_imageColumns.clear();
83
83
// myDebug() << "DetailedListView::addCollection()" << endl;
85
KConfig* config = kapp->config();
86
config->setGroup(QString::fromLatin1("Options - %1").arg(coll_->typeName()));
85
KConfigGroup config(kapp->config(), QString::fromLatin1("Options - %1").arg(coll_->typeName()));
89
88
if(coll_->type() == Data::Collection::Base) {
90
89
KURL url = Kernel::self()->URL();
91
90
for(uint i = 0; i < Config::maxCustomURLSettings(); ++i) {
92
KURL u = config->readEntry(QString::fromLatin1("URL_%1").arg(i));
91
KURL u = config.readEntry(QString::fromLatin1("URL_%1").arg(i));
94
93
configN = QString::fromLatin1("_%1").arg(i);
100
QStringList colNames = config->readListEntry("ColumnNames" + configN);
99
QStringList colNames = config.readListEntry("ColumnNames" + configN);
101
100
if(colNames.isEmpty()) {
102
101
colNames = QString::fromLatin1("title");
105
104
// this block compensates for the chance that the user added a field and it wasn't
106
105
// written to the widths. Also compensates for 0.5.x to 0.6.x column layout changes
107
QValueList<int> colWidths = config->readIntListEntry("ColumnWidths" + configN);
106
QValueList<int> colWidths = config.readIntListEntry("ColumnWidths" + configN);
108
107
if(colWidths.empty()) {
109
108
colWidths.insert(colWidths.begin(), colNames.count(), -1); // automatic width
112
QValueList<int> colOrder = config->readIntListEntry("ColumnOrder" + configN);
111
QValueList<int> colOrder = config.readIntListEntry("ColumnOrder" + configN);
114
113
// need to remove values for fields which don't exist in the current collection
115
114
QStringList newCols;
164
163
slotUpdatePixmap();
166
int sortCol = config->readNumEntry("SortColumn" + configN, 0);
167
bool sortAsc = config->readBoolEntry("SortAscending" + configN, true);
165
int sortCol = config.readNumEntry("SortColumn" + configN, 0);
166
bool sortAsc = config.readBoolEntry("SortAscending" + configN, true);
168
167
setSorting(sortCol, sortAsc);
169
int prevSortCol = config->readNumEntry("PrevSortColumn" + configN, -1);
170
int prev2SortCol = config->readNumEntry("Prev2SortColumn" + configN, -1);
168
int prevSortCol = config.readNumEntry("PrevSortColumn" + configN, -1);
169
int prev2SortCol = config.readNumEntry("Prev2SortColumn" + configN, -1);
171
170
setPrevSortedColumn(prevSortCol, prev2SortCol);
366
364
ensureItemVisible(item);
369
Tellico::DetailedEntryItem* const DetailedListView::locateItem(Data::EntryPtr entry_) {
367
Tellico::DetailedEntryItem* DetailedListView::locateItem(Data::EntryPtr entry_) {
370
368
for(QListViewItemIterator it(this); it.current(); ++it) {
371
369
DetailedEntryItem* item = static_cast<DetailedEntryItem*>(it.current());
372
370
if(item->entry() == entry_) {
384
382
m_headerMenu->popup(static_cast<QMouseEvent*>(ev_)->globalPos());
387
return KListView::eventFilter(obj_, ev_);
385
return GUI::ListView::eventFilter(obj_, ev_);
390
388
void DetailedListView::slotHeaderMenuActivated(int id_) {
541
540
item = static_cast<DetailedEntryItem*>(it.current());
542
541
if(m_filter && !m_filter->matches(item->entry())) {
543
542
item->setVisible(false);
544
// don't allow hidden selected items
545
543
setSelected(item, false);
547
545
item->setVisible(true);
751
749
void DetailedListView::saveConfig(Tellico::Data::CollPtr coll_, int configIndex_) {
752
KConfig* config = kapp->config();
753
config->setGroup(QString::fromLatin1("Options - %1").arg(coll_->typeName()));
750
KConfigGroup config(kapp->config(), QString::fromLatin1("Options - %1").arg(coll_->typeName()));
755
752
// all of this is to have custom settings on a per file basis
757
754
if(coll_->type() == Data::Collection::Base) {
758
755
QValueList<ConfigInfo> info;
759
756
for(uint i = 0; i < Config::maxCustomURLSettings(); ++i) {
760
KURL u = config->readEntry(QString::fromLatin1("URL_%1").arg(i));
757
KURL u = config.readEntry(QString::fromLatin1("URL_%1").arg(i));
761
758
if(!u.isEmpty() && static_cast<int>(i) != configIndex_) {
762
759
configN = QString::fromLatin1("_%1").arg(i);
764
ci.cols = config->readListEntry("ColumnNames" + configN);
765
ci.widths = config->readIntListEntry("ColumnWidths" + configN);
766
ci.order = config->readIntListEntry("ColumnOrder" + configN);
767
ci.colSorted = config->readNumEntry("SortColumn" + configN);
768
ci.ascSort = config->readBoolEntry("SortAscending" + configN);
769
ci.prevSort = config->readNumEntry("PrevSortColumn" + configN);
770
ci.prev2Sort = config->readNumEntry("Prev2SortColumn" + configN);
761
ci.cols = config.readListEntry("ColumnNames" + configN);
762
ci.widths = config.readIntListEntry("ColumnWidths" + configN);
763
ci.order = config.readIntListEntry("ColumnOrder" + configN);
764
ci.colSorted = config.readNumEntry("SortColumn" + configN);
765
ci.ascSort = config.readBoolEntry("SortAscending" + configN);
766
ci.prevSort = config.readNumEntry("PrevSortColumn" + configN);
767
ci.prev2Sort = config.readNumEntry("Prev2SortColumn" + configN);
776
773
for(uint i = 0; i < limit; ++i) {
777
774
// starts at one since the current config will be written below
778
775
configN = QString::fromLatin1("_%1").arg(i+1);
779
config->writeEntry("ColumnNames" + configN, info[i].cols);
780
config->writeEntry("ColumnWidths" + configN, info[i].widths);
781
config->writeEntry("ColumnOrder" + configN, info[i].order);
782
config->writeEntry("SortColumn" + configN, info[i].colSorted);
783
config->writeEntry("SortAscending" + configN, info[i].ascSort);
784
config->writeEntry("PrevSortColumn" + configN, info[i].prevSort);
785
config->writeEntry("Prev2SortColumn" + configN, info[i].prev2Sort);
776
config.writeEntry("ColumnNames" + configN, info[i].cols);
777
config.writeEntry("ColumnWidths" + configN, info[i].widths);
778
config.writeEntry("ColumnOrder" + configN, info[i].order);
779
config.writeEntry("SortColumn" + configN, info[i].colSorted);
780
config.writeEntry("SortAscending" + configN, info[i].ascSort);
781
config.writeEntry("PrevSortColumn" + configN, info[i].prevSort);
782
config.writeEntry("Prev2SortColumn" + configN, info[i].prev2Sort);
787
784
configN = QString::fromLatin1("_0");
797
794
order += header()->mapToIndex(i);
800
config->writeEntry("ColumnWidths" + configN, widths);
801
config->writeEntry("ColumnOrder" + configN, order);
802
config->writeEntry("SortColumn" + configN, columnSorted());
803
config->writeEntry("SortAscending" + configN, ascendingSort());
804
config->writeEntry("PrevSortColumn" + configN, prevSortedColumn());
805
config->writeEntry("Prev2SortColumn" + configN, prev2SortedColumn());
797
config.writeEntry("ColumnWidths" + configN, widths);
798
config.writeEntry("ColumnOrder" + configN, order);
799
config.writeEntry("SortColumn" + configN, columnSorted());
800
config.writeEntry("SortAscending" + configN, ascendingSort());
801
config.writeEntry("PrevSortColumn" + configN, prevSortedColumn());
802
config.writeEntry("Prev2SortColumn" + configN, prev2SortedColumn());
807
804
QStringList colNames;
808
805
for(int col = 0; col < columns(); ++col) {
809
806
colNames += coll_->fieldNameByTitle(columnText(col));
811
config->writeEntry("ColumnNames" + configN, colNames);
808
config.writeEntry("ColumnNames" + configN, colNames);
814
811
QString DetailedListView::sortColumnTitle1() const {