From 13706a2952a7e8b9af6a9cf33d43200c3d360c41 Mon Sep 17 00:00:00 2001 From: David Faure Date: Tue, 22 Jan 2008 01:22:56 +0000 Subject: Move the code handling the additional-info-actions to DolphinView; simplify signal from DolphinView (it has the info anyway). The fact that the last additional-info doesn't show up in the icon view is in fact a KFileItemDelegate bug, not a bug in this code :) svn path=/branches/KDE/4.0/kdebase/apps/; revision=764544 --- src/dolphinmainwindow.cpp | 82 +++++------------------------------------------ 1 file changed, 8 insertions(+), 74 deletions(-) (limited to 'src/dolphinmainwindow.cpp') diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index ce13796ac..44a44efa2 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -256,58 +256,10 @@ void DolphinMainWindow::slotSortOrderChanged(Qt::SortOrder order) descending->setChecked(sortDescending); } -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(); - - const bool enable = (view->mode() == DolphinView::DetailsView) || - (view->mode() == DolphinView::IconsView); - - 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; - } - } +void DolphinMainWindow::slotAdditionalInfoChanged() +{ + DolphinView* view = m_activeViewContainer->view(); + view->updateAdditionalInfoActions(actionCollection()); } void DolphinMainWindow::slotSelectionChanged(const KFileItemList& selection) @@ -1333,7 +1285,7 @@ void DolphinMainWindow::updateViewActions() slotSortingChanged(view->sorting()); slotSortOrderChanged(view->sortOrder()); slotCategorizedSortingChanged(); - slotAdditionalInfoChanged(view->additionalInfo()); + slotAdditionalInfoChanged(); KToggleAction* showFilterBarAction = static_cast(actionCollection()->action("show_filter_bar")); @@ -1386,8 +1338,8 @@ void DolphinMainWindow::connectViewSignals(int viewIndex) this, SLOT(slotSortingChanged(DolphinView::Sorting))); connect(view, SIGNAL(sortOrderChanged(Qt::SortOrder)), this, SLOT(slotSortOrderChanged(Qt::SortOrder))); - connect(view, SIGNAL(additionalInfoChanged(KFileItemDelegate::InformationList)), - this, SLOT(slotAdditionalInfoChanged(KFileItemDelegate::InformationList))); + connect(view, SIGNAL(additionalInfoChanged()), + this, SLOT(slotAdditionalInfoChanged())); connect(view, SIGNAL(selectionChanged(KFileItemList)), this, SLOT(slotSelectionChanged(KFileItemList))); connect(view, SIGNAL(requestItemInfo(KFileItem)), @@ -1424,25 +1376,7 @@ void DolphinMainWindow::updateSplitAction() void DolphinMainWindow::toggleAdditionalInfo(QAction* action) { clearStatusBar(); - - const KFileItemDelegate::Information info = - static_cast(action->data().toInt()); - - DolphinView* view = m_activeViewContainer->view(); - KFileItemDelegate::InformationList list = view->additionalInfo(); - - const bool show = action->isChecked(); - - const int index = list.indexOf(info); - const bool containsInfo = (index >= 0); - if (show && !containsInfo) { - list.append(info); - view->setAdditionalInfo(list); - } else if (!show && containsInfo) { - list.removeAt(index); - view->setAdditionalInfo(list); - Q_ASSERT(list.indexOf(info) < 0); - } + m_activeViewContainer->view()->toggleAdditionalInfo(action); } DolphinMainWindow::UndoUiInterface::UndoUiInterface(DolphinMainWindow* mainWin) : -- cgit v1.3