-void DolphinMainWindow::slotAdditionalInfoChanged(KFileItemDelegate::AdditionalInformation info)
-{
- QAction* action = 0;
- switch (info) {
- case KFileItemDelegate::FriendlyMimeType:
- action = actionCollection()->action("show_mime_info");
- break;
- case KFileItemDelegate::Size:
- action = actionCollection()->action("show_size_info");
- break;
- case KFileItemDelegate::ModificationTime:
- action = actionCollection()->action("show_date_info");
- break;
- case KFileItemDelegate::NoInformation:
- default:
- action = actionCollection()->action("clear_info");
- break;
- }
-
- if (action != 0) {
- KToggleAction* toggleAction = static_cast<KToggleAction*>(action);
- toggleAction->setChecked(true);
-
- QActionGroup* group = toggleAction->actionGroup();
- Q_ASSERT(group != 0);
- group->setEnabled(m_activeView->mode() == DolphinView::IconsView);
+void DolphinMainWindow::slotAdditionalInfoChanged(KFileItemDelegate::InformationList list)
+{
+ QAction* showSizeInfo = actionCollection()->action("show_size_info");
+ QAction* showDateInfo = actionCollection()->action("show_date_info");
+ QAction* showPermissionsInfo = actionCollection()->action("show_permissions_info");
+ QAction* showOwnerInfo = actionCollection()->action("show_owner_info");
+ QAction* showGroupInfo = actionCollection()->action("show_group_info");
+ QAction* showMimeInfo = actionCollection()->action("show_mime_info");
+
+ showSizeInfo->setChecked(false);
+ showDateInfo->setChecked(false);
+ showPermissionsInfo->setChecked(false);
+ showOwnerInfo->setChecked(false);
+ showGroupInfo->setChecked(false);
+ showMimeInfo->setChecked(false);
+
+ const DolphinView* view = m_activeViewContainer->view();
+
+ // currently the column view does not support additional information
+ const bool enable = (view->mode() != DolphinView::ColumnView);
+ showSizeInfo->setEnabled(enable);
+ showDateInfo->setEnabled(enable);
+ showPermissionsInfo->setEnabled(enable);
+ showOwnerInfo->setEnabled(enable);
+ showGroupInfo->setEnabled(enable);
+ showMimeInfo->setEnabled(enable);
+
+ foreach (KFileItemDelegate::Information info, list) {
+ 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;
+ }