X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/c8072005fada01d772595ec64adca449134f421e..b5eca6dc2aaa6f90d7dc2fe27ab9ccc45aee77f2:/src/viewpropertiesdialog.cpp diff --git a/src/viewpropertiesdialog.cpp b/src/viewpropertiesdialog.cpp index 040e9f6be..4dbf16eaa 100644 --- a/src/viewpropertiesdialog.cpp +++ b/src/viewpropertiesdialog.cpp @@ -91,9 +91,6 @@ ViewPropertiesDialog::ViewPropertiesDialog(DolphinView* dolphinView) : m_viewMode->addItem(KIcon("fileview-icon"), i18nc("@item:inlistbox", "Icons")); m_viewMode->addItem(KIcon("fileview-detailed"), i18nc("@item:inlistbox", "Details")); m_viewMode->addItem(KIcon("fileview-column"), i18nc("@item:inlistbox", "Column")); - const int index = static_cast(m_viewProps->viewMode()); - m_viewMode->setCurrentIndex(index); - const bool iconsViewEnabled = (index == DolphinView::IconsView); QLabel* sortingLabel = new QLabel(i18nc("@label:listbox", "Sorting:"), propsBox); QWidget* sortingBox = new QWidget(propsBox); @@ -101,8 +98,6 @@ ViewPropertiesDialog::ViewPropertiesDialog(DolphinView* dolphinView) : m_sortOrder = new QComboBox(sortingBox); m_sortOrder->addItem(i18nc("@item:inlistbox", "Ascending")); m_sortOrder->addItem(i18nc("@item:inlistbox", "Descending")); - const int sortOrderIndex = (m_viewProps->sortOrder() == Qt::AscendingOrder) ? 0 : 1; - m_sortOrder->setCurrentIndex(sortOrderIndex); m_sorting = new QComboBox(sortingBox); m_sorting->addItem(i18nc("@item:inlistbox Sort", "By Name")); @@ -118,7 +113,6 @@ ViewPropertiesDialog::ViewPropertiesDialog(DolphinView* dolphinView) : m_sorting->addItem(i18nc("@item:inlistbox Sort", "By Tags")); } #endif - m_sorting->setCurrentIndex(m_viewProps->sorting()); QHBoxLayout* sortingLayout = new QHBoxLayout(); sortingLayout->setMargin(0); @@ -128,26 +122,26 @@ ViewPropertiesDialog::ViewPropertiesDialog(DolphinView* dolphinView) : QLabel* additionalInfoLabel = new QLabel(i18nc("@label:listbox", "Additional information:"), propsBox); m_additionalInfo = new QComboBox(propsBox); - m_additionalInfo->addItem(i18nc("@item:inlistbox Additional info", "No Information"), - KFileItemDelegate::NoInformation); - m_additionalInfo->addItem(i18nc("@item:inlistbox Additional info", "Type"), - KFileItemDelegate::FriendlyMimeType); - m_additionalInfo->addItem(i18nc("@item:inlistbox Additional info", "Size"), - KFileItemDelegate::Size); - m_additionalInfo->addItem(i18nc("@item:inlistbox Additional info", "Date"), - KFileItemDelegate::ModificationTime); - const int addInfoIndex = m_additionalInfo->findData(m_viewProps->additionalInfo()); - m_additionalInfo->setCurrentIndex(addInfoIndex); - m_additionalInfo->setEnabled(iconsViewEnabled); + 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_showPreview->setChecked(m_viewProps->showPreview()); - m_showInGroups = new QCheckBox(i18nc("@option:check", "Show in Groups"), propsBox); - m_showInGroups->setChecked(m_viewProps->categorizedSorting()); - m_showHiddenFiles = new QCheckBox(i18nc("@option:check", "Show hidden files"), propsBox); - m_showHiddenFiles->setChecked(m_viewProps->showHiddenFiles()); QGridLayout* propsBoxLayout = new QGridLayout(propsBox); propsBoxLayout->addWidget(viewModeLabel, 0, 0); @@ -225,6 +219,8 @@ ViewPropertiesDialog::ViewPropertiesDialog(DolphinView* dolphinView) : const KConfigGroup dialogConfig(KSharedConfig::openConfig("dolphinrc"), "ViewPropertiesDialog"); restoreDialogSize(dialogConfig); + + loadSettings(); } ViewPropertiesDialog::~ViewPropertiesDialog() @@ -235,7 +231,7 @@ ViewPropertiesDialog::~ViewPropertiesDialog() KConfigGroup dialogConfig(KSharedConfig::openConfig("dolphinrc"), "ViewPropertiesDialog"); - saveDialogSize(dialogConfig, KConfigFlags::Persistent); + saveDialogSize(dialogConfig, KConfigBase::Persistent); } void ViewPropertiesDialog::slotOk() @@ -281,14 +277,20 @@ void ViewPropertiesDialog::slotCategorizedSortingChanged() void ViewPropertiesDialog::slotAdditionalInfoChanged(int index) { - KFileItemDelegate::AdditionalInformation info = KFileItemDelegate::NoInformation; - 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); } - m_viewProps->setAdditionalInfo(info); + if (info & SizeInfo) { + list.append(KFileItemDelegate::Size); + } + if (info & DateInfo) { + list.append(KFileItemDelegate::ModificationTime); + } + + m_viewProps->setAdditionalInfo(list); m_isDirty = true; } @@ -375,4 +377,48 @@ void ViewPropertiesDialog::applyViewProperties() } } +void ViewPropertiesDialog::loadSettings() +{ + // load view mode + const int index = static_cast(m_viewProps->viewMode()); + m_viewMode->setCurrentIndex(index); + const bool iconsViewEnabled = (index == DolphinView::IconsView); + + // load sort order and sorting + const int sortOrderIndex = (m_viewProps->sortOrder() == Qt::AscendingOrder) ? 0 : 1; + m_sortOrder->setCurrentIndex(sortOrderIndex); + m_sorting->setCurrentIndex(m_viewProps->sorting()); + + // load additional info + 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); + + // load show preview, show in groups and show hidden files settings + m_showPreview->setChecked(m_viewProps->showPreview()); + + m_showInGroups->setChecked(m_viewProps->categorizedSorting()); + m_showInGroups->setEnabled(iconsViewEnabled); // only the icons view supports categorized sorting + + m_showHiddenFiles->setChecked(m_viewProps->showHiddenFiles()); +} + #include "viewpropertiesdialog.moc"