X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/b81177bf4bf3ad2b04e8de5c56e20e2c6eadc240..d9f5e191a6bd32a4dc15b3a3eb34795cda7697dd:/src/viewpropertiesdialog.cpp diff --git a/src/viewpropertiesdialog.cpp b/src/viewpropertiesdialog.cpp index 49d42f4ff..d99b0749f 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); @@ -224,7 +231,7 @@ ViewPropertiesDialog::~ViewPropertiesDialog() KConfigGroup dialogConfig(KSharedConfig::openConfig("dolphinrc"), "ViewPropertiesDialog"); - saveDialogSize(dialogConfig, KConfigFlags::Persistent); + saveDialogSize(dialogConfig, KConfigBase::Persistent); } void ViewPropertiesDialog::slotOk() @@ -245,7 +252,10 @@ void ViewPropertiesDialog::slotViewModeChanged(int index) const bool iconsViewEnabled = (m_viewProps->viewMode() == DolphinView::IconsView); m_showInGroups->setEnabled(iconsViewEnabled); - m_additionalInfo->setEnabled(iconsViewEnabled); + + // TODO: a different approach is required now due to having a lot more additional infos + m_additionalInfo->setEnabled(false); + //m_additionalInfo->setEnabled(iconsViewEnabled); } void ViewPropertiesDialog::slotSortingChanged(int index) @@ -270,14 +280,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); + } + if (info & DateInfo) { + list.append(KFileItemDelegate::ModificationTime); } - m_viewProps->setAdditionalInfo(info); + + m_viewProps->setAdditionalInfo(list); m_isDirty = true; } @@ -377,10 +393,29 @@ 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); + // TODO: a different approach is required now due to having a lot more additional infos + m_additionalInfo->setEnabled(false); + //m_additionalInfo->setEnabled(iconsViewEnabled); // load show preview, show in groups and show hidden files settings m_showPreview->setChecked(m_viewProps->showPreview());