From: Fredrik Höglund Date: Mon, 1 Oct 2007 22:06:49 +0000 (+0000) Subject: Port dolphin to the KFileItemDelegate API changes. X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/dbc8874c00c35aaefacdd03f8aef9e4ac4e2be01?ds=inline Port dolphin to the KFileItemDelegate API changes. svn path=/trunk/KDE/kdebase/apps/; revision=719796 --- diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index fd7f65aa5..696a016e9 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -324,9 +324,11 @@ void DolphinMainWindow::slotSortOrderChanged(Qt::SortOrder order) descending->setChecked(sortDescending); } -void DolphinMainWindow::slotAdditionalInfoChanged(KFileItemDelegate::AdditionalInformation info) +void DolphinMainWindow::slotAdditionalInfoChanged(KFileItemDelegate::InformationList list) { QAction* action = 0; + KFileItemDelegate::Information info = list.isEmpty() ? KFileItemDelegate::NoInformation : list.first(); + switch (info) { case KFileItemDelegate::FriendlyMimeType: action = actionCollection()->action("show_mime_info"); @@ -1577,8 +1579,8 @@ void DolphinMainWindow::connectViewSignals(int viewIndex) this, SLOT(slotSortingChanged(DolphinView::Sorting))); connect(view, SIGNAL(sortOrderChanged(Qt::SortOrder)), this, SLOT(slotSortOrderChanged(Qt::SortOrder))); - connect(view, SIGNAL(additionalInfoChanged(KFileItemDelegate::AdditionalInformation)), - this, SLOT(slotAdditionalInfoChanged(KFileItemDelegate::AdditionalInformation))); + connect(view, SIGNAL(additionalInfoChanged(KFileItemDelegate::InformationList)), + this, SLOT(slotAdditionalInfoChanged(KFileItemDelegate::InformationList))); connect(view, SIGNAL(selectionChanged(QList)), this, SLOT(slotSelectionChanged(QList))); connect(view, SIGNAL(requestItemInfo(KFileItem)), diff --git a/src/dolphinmainwindow.h b/src/dolphinmainwindow.h index 6e6c4269b..8970b89cb 100644 --- a/src/dolphinmainwindow.h +++ b/src/dolphinmainwindow.h @@ -398,7 +398,7 @@ private slots: void slotSortOrderChanged(Qt::SortOrder order); /** Updates the state of the 'Additional Information' actions. */ - void slotAdditionalInfoChanged(KFileItemDelegate::AdditionalInformation info); + void slotAdditionalInfoChanged(KFileItemDelegate::InformationList info); /** * Updates the state of the 'Edit' menu actions and emits diff --git a/src/dolphinview.cpp b/src/dolphinview.cpp index 845220bca..9379a49cb 100644 --- a/src/dolphinview.cpp +++ b/src/dolphinview.cpp @@ -407,22 +407,31 @@ Qt::SortOrder DolphinView::sortOrder() const return m_proxyModel->sortOrder(); } -void DolphinView::setAdditionalInfo(KFileItemDelegate::AdditionalInformation info) +void DolphinView::setAdditionalInfo(KFileItemDelegate::InformationList info) { const KUrl viewPropsUrl = viewPropertiesUrl(); ViewProperties props(viewPropsUrl); props.setAdditionalInfo(info); - m_controller->setShowAdditionalInfo(info != KFileItemDelegate::NoInformation); - m_fileItemDelegate->setAdditionalInformation(info); + m_controller->setShowAdditionalInfo(!info.isEmpty()); + m_fileItemDelegate->setShowInformation(info); emit additionalInfoChanged(info); startDirLister(viewPropsUrl, true); } -KFileItemDelegate::AdditionalInformation DolphinView::additionalInfo() const +void DolphinView::setAdditionalInfo(KFileItemDelegate::Information info) { - return m_fileItemDelegate->additionalInformation(); + KFileItemDelegate::InformationList list; + if (info != KFileItemDelegate::NoInformation) + list << info; + + setAdditionalInfo(list); +} + +KFileItemDelegate::InformationList DolphinView::additionalInfo() const +{ + return m_fileItemDelegate->showInformation(); } void DolphinView::reload() @@ -648,10 +657,10 @@ void DolphinView::applyViewProperties(const KUrl& url) emit sortOrderChanged(sortOrder); } - KFileItemDelegate::AdditionalInformation info = props.additionalInfo(); - if (info != m_fileItemDelegate->additionalInformation()) { - m_controller->setShowAdditionalInfo(info != KFileItemDelegate::NoInformation); - m_fileItemDelegate->setAdditionalInformation(info); + KFileItemDelegate::InformationList info = props.additionalInfo(); + if (info != m_fileItemDelegate->showInformation()) { + m_controller->setShowAdditionalInfo(!info.isEmpty()); + m_fileItemDelegate->setShowInformation(info); emit additionalInfoChanged(info); } diff --git a/src/dolphinview.h b/src/dolphinview.h index be02d776e..60864dd9b 100644 --- a/src/dolphinview.h +++ b/src/dolphinview.h @@ -279,10 +279,13 @@ public: Qt::SortOrder sortOrder() const; /** Sets the additional information which should be shown for the items. */ - void setAdditionalInfo(KFileItemDelegate::AdditionalInformation info); + void setAdditionalInfo(KFileItemDelegate::InformationList info); + + /** Sets the additional information which should be shown for the items. */ + void setAdditionalInfo(KFileItemDelegate::Information info); /** Returns the additional information which should be shown for the items. */ - KFileItemDelegate::AdditionalInformation additionalInfo() const; + KFileItemDelegate::InformationList additionalInfo() const; /** Reloads the current directory. */ void reload(); @@ -355,7 +358,7 @@ signals: void sortOrderChanged(Qt::SortOrder order); /** Is emitted if the additional information for an item has been changed. */ - void additionalInfoChanged(KFileItemDelegate::AdditionalInformation info); + void additionalInfoChanged(KFileItemDelegate::InformationList info); /** * Is emitted if information of an item is requested to be shown e. g. in the sidebar. diff --git a/src/viewproperties.cpp b/src/viewproperties.cpp index 319a06bc2..8dc5b8ad6 100644 --- a/src/viewproperties.cpp +++ b/src/viewproperties.cpp @@ -197,17 +197,25 @@ Qt::SortOrder ViewProperties::sortOrder() const return static_cast(m_node->sortOrder()); } -void ViewProperties::setAdditionalInfo(KFileItemDelegate::AdditionalInformation info) +void ViewProperties::setAdditionalInfo(KFileItemDelegate::InformationList list) { + KFileItemDelegate::Information info = list.isEmpty() ? + KFileItemDelegate::NoInformation : list.first(); + if (m_node->additionalInfo() != info) { m_node->setAdditionalInfo(info); updateTimeStamp(); } } -KFileItemDelegate::AdditionalInformation ViewProperties::additionalInfo() const +KFileItemDelegate::InformationList ViewProperties::additionalInfo() const { - return static_cast(m_node->additionalInfo()); + KFileItemDelegate::Information info = static_cast(m_node->additionalInfo()); + + if (info != KFileItemDelegate::NoInformation) + return KFileItemDelegate::InformationList() << info; + else + return KFileItemDelegate::InformationList(); } diff --git a/src/viewproperties.h b/src/viewproperties.h index cba68ad3c..155d4e2f5 100644 --- a/src/viewproperties.h +++ b/src/viewproperties.h @@ -71,8 +71,8 @@ public: void setSortOrder(Qt::SortOrder sortOrder); Qt::SortOrder sortOrder() const; - void setAdditionalInfo(KFileItemDelegate::AdditionalInformation info); - KFileItemDelegate::AdditionalInformation additionalInfo() const; + void setAdditionalInfo(KFileItemDelegate::InformationList info); + KFileItemDelegate::InformationList additionalInfo() const; /** * Sets the directory properties view mode, show preview, diff --git a/src/viewpropertiesdialog.cpp b/src/viewpropertiesdialog.cpp index 899a3d3a0..36fe0a954 100644 --- a/src/viewpropertiesdialog.cpp +++ b/src/viewpropertiesdialog.cpp @@ -269,11 +269,11 @@ void ViewPropertiesDialog::slotCategorizedSortingChanged() void ViewPropertiesDialog::slotAdditionalInfoChanged(int index) { - KFileItemDelegate::AdditionalInformation info = KFileItemDelegate::NoInformation; + KFileItemDelegate::InformationList info; switch (index) { - case 1: info = KFileItemDelegate::FriendlyMimeType; break; - case 2: info = KFileItemDelegate::Size; break; - case 3: info = KFileItemDelegate::ModificationTime; break; + case 1: info << KFileItemDelegate::FriendlyMimeType; break; + case 2: info << KFileItemDelegate::Size; break; + case 3: info << KFileItemDelegate::ModificationTime; break; default: break; } m_viewProps->setAdditionalInfo(info); @@ -376,7 +376,8 @@ void ViewPropertiesDialog::loadSettings() m_sorting->setCurrentIndex(m_viewProps->sorting()); // load additional info - const int addInfoIndex = m_additionalInfo->findData(m_viewProps->additionalInfo()); + KFileItemDelegate::InformationList info = m_viewProps->additionalInfo(); + const int addInfoIndex = m_additionalInfo->findData(info.isEmpty() ? KFileItemDelegate::NoInformation : info.first()); m_additionalInfo->setCurrentIndex(addInfoIndex); m_additionalInfo->setEnabled(iconsViewEnabled);