X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/47d31139224f9bfded4626803626a58afe3eb748..87cd992e85effd14938f67c0671ef2e7cb93a8a7:/src/dolphinview.cpp diff --git a/src/dolphinview.cpp b/src/dolphinview.cpp index 79191c52c..1c06f560c 100644 --- a/src/dolphinview.cpp +++ b/src/dolphinview.cpp @@ -49,6 +49,7 @@ #include #include +#include "additionalinfoaccessor.h" #include "dolphinmodel.h" #include "dolphincolumnviewcontainer.h" #include "dolphinviewcontroller.h" @@ -971,53 +972,20 @@ void DolphinView::updateAdditionalInfo(const KFileItemDelegate::InformationList& void DolphinView::updateAdditionalInfoActions(KActionCollection* collection) { + const AdditionalInfoAccessor& infoAccessor = AdditionalInfoAccessor::instance(); + + const KFileItemDelegate::InformationList checkedInfos = m_viewAccessor.itemDelegate()->showInformation(); + const KFileItemDelegate::InformationList infos = infoAccessor.keys(); + const bool enable = (m_mode == DolphinView::DetailsView) || (m_mode == DolphinView::IconsView); - QAction* showSizeInfo = collection->action("show_size_info"); - QAction* showDateInfo = collection->action("show_date_info"); - QAction* showPermissionsInfo = collection->action("show_permissions_info"); - QAction* showOwnerInfo = collection->action("show_owner_info"); - QAction* showGroupInfo = collection->action("show_group_info"); - QAction* showMimeInfo = collection->action("show_mime_info"); - - showSizeInfo->setChecked(false); - showDateInfo->setChecked(false); - showPermissionsInfo->setChecked(false); - showOwnerInfo->setChecked(false); - showGroupInfo->setChecked(false); - showMimeInfo->setChecked(false); - - showSizeInfo->setEnabled(enable); - showDateInfo->setEnabled(enable); - showPermissionsInfo->setEnabled(enable); - showOwnerInfo->setEnabled(enable); - showGroupInfo->setEnabled(enable); - showMimeInfo->setEnabled(enable); - - foreach (KFileItemDelegate::Information info, m_viewAccessor.itemDelegate()->showInformation()) { - switch (info) { - case KFileItemDelegate::Size: - showSizeInfo->setChecked(true); - break; - case KFileItemDelegate::ModificationTime: - showDateInfo->setChecked(true); - break; - case KFileItemDelegate::Permissions: - showPermissionsInfo->setChecked(true); - break; - case KFileItemDelegate::Owner: - showOwnerInfo->setChecked(true); - break; - case KFileItemDelegate::OwnerAndGroup: - showGroupInfo->setChecked(true); - break; - case KFileItemDelegate::FriendlyMimeType: - showMimeInfo->setChecked(true); - break; - default: - break; - } + foreach (const KFileItemDelegate::Information& info, infos) { + const QString name = infoAccessor.actionCollectionName(info, AdditionalInfoAccessor::AdditionalInfoType); + QAction* action = collection->action(name); + Q_ASSERT(action != 0); + action->setEnabled(enable); + action->setChecked(checkedInfos.contains(info)); } }