From: Peter Penz Date: Thu, 4 Oct 2007 06:28:33 +0000 (+0000) Subject: allow to configre more than one additional information for the icons-view X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/8d3684162f78b489701ac00e252f961af1b47a77?ds=sidebyside allow to configre more than one additional information for the icons-view svn path=/trunk/KDE/kdebase/apps/; revision=720957 --- diff --git a/src/viewpropertiesdialog.cpp b/src/viewpropertiesdialog.cpp index 49d42f4ff..a42aaf864 100644 --- a/src/viewpropertiesdialog.cpp +++ b/src/viewpropertiesdialog.cpp @@ -121,16 +121,23 @@ ViewPropertiesDialog::ViewPropertiesDialog(DolphinView* dolphinView) : sortingBox->setLayout(sortingLayout); QLabel* additionalInfoLabel = new QLabel(i18nc("@label:listbox", "Additional information:"), propsBox); - // TODO: the additional information can be shown in parallel since today m_additionalInfo = new QComboBox(propsBox); - m_additionalInfo->addItem(i18nc("@item:inlistbox Additional info", "--- TODO ---"), - KFileItemDelegate::NoInformation); - m_additionalInfo->addItem(i18nc("@item:inlistbox Additional info", "--- TODO ---"), - KFileItemDelegate::FriendlyMimeType); - m_additionalInfo->addItem(i18nc("@item:inlistbox Additional info", "--- TODO ---"), - KFileItemDelegate::Size); - m_additionalInfo->addItem(i18nc("@item:inlistbox Additional info", "--- TODO ---"), - KFileItemDelegate::ModificationTime); + m_additionalInfo->addItem(i18nc("@item:inlistbox Additional info", + "No Information"), NoInfo); + m_additionalInfo->addItem(i18nc("@item:inlistbox Additional info", + "Type"), TypeInfo); + m_additionalInfo->addItem(i18nc("@item:inlistbox Additional info", + "Size"), SizeInfo); + m_additionalInfo->addItem(i18nc("@item:inlistbox Additional info", + "Date"), DateInfo); + m_additionalInfo->addItem(i18nc("@item:inlistbox Additional info", + "Type, Size"), TypeInfo | SizeInfo); + m_additionalInfo->addItem(i18nc("@item:inlistbox Additional info", + "Type, Date"), TypeInfo | DateInfo); + m_additionalInfo->addItem(i18nc("@item:inlistbox Additional info", + "Size, Date"), SizeInfo | DateInfo); + m_additionalInfo->addItem(i18nc("@item:inlistbox Additional info", + "Type, Size, Date"),TypeInfo | SizeInfo | DateInfo); m_showPreview = new QCheckBox(i18nc("@option:check", "Show preview"), propsBox); m_showInGroups = new QCheckBox(i18nc("@option:check", "Show in Groups"), propsBox); @@ -270,14 +277,20 @@ void ViewPropertiesDialog::slotCategorizedSortingChanged() void ViewPropertiesDialog::slotAdditionalInfoChanged(int index) { - KFileItemDelegate::InformationList info; - switch (index) { - case 1: info << KFileItemDelegate::FriendlyMimeType; break; - case 2: info << KFileItemDelegate::Size; break; - case 3: info << KFileItemDelegate::ModificationTime; break; - default: break; + const int info = m_additionalInfo->itemData(index).toInt(); + + KFileItemDelegate::InformationList list; + if (info & TypeInfo) { + list.append(KFileItemDelegate::FriendlyMimeType); + } + if (info & SizeInfo) { + list.append(KFileItemDelegate::Size); } - m_viewProps->setAdditionalInfo(info); + if (info & DateInfo) { + list.append(KFileItemDelegate::ModificationTime); + } + + m_viewProps->setAdditionalInfo(list); m_isDirty = true; } @@ -377,8 +390,25 @@ void ViewPropertiesDialog::loadSettings() m_sorting->setCurrentIndex(m_viewProps->sorting()); // load additional info - KFileItemDelegate::InformationList info = m_viewProps->additionalInfo(); - const int addInfoIndex = m_additionalInfo->findData(info.isEmpty() ? KFileItemDelegate::NoInformation : info.first()); + const KFileItemDelegate::InformationList list = m_viewProps->additionalInfo(); + int info = NoInfo; + foreach (KFileItemDelegate::Information currentInfo, list) { + switch (currentInfo) { + case KFileItemDelegate::FriendlyMimeType: + info = info | TypeInfo; + break; + case KFileItemDelegate::Size: + info = info | SizeInfo; + break; + case KFileItemDelegate::ModificationTime: + info = info | DateInfo; + break; + default: + break; + } + } + + const int addInfoIndex = m_additionalInfo->findData(info); m_additionalInfo->setCurrentIndex(addInfoIndex); m_additionalInfo->setEnabled(iconsViewEnabled); diff --git a/src/viewpropertiesdialog.h b/src/viewpropertiesdialog.h index 0e2eaee91..533e0f404 100644 --- a/src/viewpropertiesdialog.h +++ b/src/viewpropertiesdialog.h @@ -60,6 +60,14 @@ private: void loadSettings(); private: + enum AdditionalInfoValues + { + NoInfo = 0, + TypeInfo = 1, + SizeInfo = 2, + DateInfo = 4 + }; + bool m_isDirty; DolphinView* m_dolphinView; ViewProperties* m_viewProps;