From 8d4fb3608927960d9e45e672ce1cbe1fa3a548f9 Mon Sep 17 00:00:00 2001 From: David Faure Date: Wed, 10 Oct 2007 23:01:35 +0000 Subject: DolphinPart: provide a way to switch between view modes in konqueror. Factorized those actions between dolphinmainwindow and dolphinpart (see new methods in dolphinview), and simplified mainwindow code by using the signal from the action group and the QVariant data of the actions (standard Qt4 solution for a group of actions). svn path=/trunk/KDE/kdebase/apps/; revision=723871 --- src/dolphinmainwindow.cpp | 50 ++++++++--------------------------------------- 1 file changed, 8 insertions(+), 42 deletions(-) (limited to 'src/dolphinmainwindow.cpp') diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index a7cbc527a..74869e967 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -698,19 +698,11 @@ void DolphinMainWindow::invertSelection() clearStatusBar(); m_activeViewContainer->view()->invertSelection(); } -void DolphinMainWindow::setIconsView() -{ - m_activeViewContainer->view()->setMode(DolphinView::IconsView); -} -void DolphinMainWindow::setDetailsView() +void DolphinMainWindow::setViewMode(QAction* action) { - m_activeViewContainer->view()->setMode(DolphinView::DetailsView); -} - -void DolphinMainWindow::setColumnView() -{ - m_activeViewContainer->view()->setMode(DolphinView::ColumnView); + const DolphinView::Mode mode = action->data().value(); + m_activeViewContainer->view()->setMode(mode); } void DolphinMainWindow::sortByName() @@ -1149,28 +1141,16 @@ void DolphinMainWindow::setupActions() SLOT(zoomOut()), actionCollection()); - KToggleAction* iconsView = actionCollection()->add("icons"); - iconsView->setText(i18nc("@action:inmenu View Mode", "Icons")); - iconsView->setShortcut(Qt::CTRL | Qt::Key_1); - iconsView->setIcon(KIcon("fileview-icon")); - connect(iconsView, SIGNAL(triggered()), this, SLOT(setIconsView())); - - KToggleAction* detailsView = actionCollection()->add("details"); - detailsView->setText(i18nc("@action:inmenu View Mode", "Details")); - detailsView->setShortcut(Qt::CTRL | Qt::Key_2); - detailsView->setIcon(KIcon("fileview-detailed")); - connect(detailsView, SIGNAL(triggered()), this, SLOT(setDetailsView())); - KToggleAction* columnView = actionCollection()->add("columns"); - columnView->setText(i18nc("@action:inmenu View Mode", "Columns")); - columnView->setShortcut(Qt::CTRL | Qt::Key_3); - columnView->setIcon(KIcon("fileview-column")); - connect(columnView, SIGNAL(triggered()), this, SLOT(setColumnView())); + KToggleAction* iconsView = DolphinView::iconsModeAction(actionCollection()); + KToggleAction* detailsView = DolphinView::detailsModeAction(actionCollection()); + KToggleAction* columnView = DolphinView::columnsModeAction(actionCollection()); QActionGroup* viewModeGroup = new QActionGroup(this); viewModeGroup->addAction(iconsView); viewModeGroup->addAction(detailsView); viewModeGroup->addAction(columnView); + connect(viewModeGroup, SIGNAL(triggered(QAction*)), this, SLOT(setViewMode(QAction*))); KToggleAction* sortByName = actionCollection()->add("sort_by_name"); sortByName->setText(i18nc("@action:inmenu Sort By", "Name")); @@ -1469,21 +1449,7 @@ void DolphinMainWindow::updateViewActions() zoomOutAction->setEnabled(view->isZoomOutPossible()); } - QAction* action = 0; - switch (view->mode()) { - case DolphinView::IconsView: - action = actionCollection()->action("icons"); - break; - case DolphinView::DetailsView: - action = actionCollection()->action("details"); - break; - case DolphinView::ColumnView: - action = actionCollection()->action("columns"); - break; - default: - break; - } - + QAction* action = actionCollection()->action(view->currentViewModeActionName()); if (action != 0) { KToggleAction* toggleAction = static_cast(action); toggleAction->setChecked(true); -- cgit v1.3