X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/45a1074b0a38f38cfebde8bb65d5a6520b2db3e8..4bdbe2b0ac5b931830258ca5b84f81ef55ea0ed2:/src/dolphinviewactionhandler.cpp diff --git a/src/dolphinviewactionhandler.cpp b/src/dolphinviewactionhandler.cpp index 6cd539d36..ef3c04292 100644 --- a/src/dolphinviewactionhandler.cpp +++ b/src/dolphinviewactionhandler.cpp @@ -18,6 +18,7 @@ ***************************************************************************/ #include "dolphinviewactionhandler.h" +#include #include "dolphinview.h" @@ -46,6 +47,8 @@ void DolphinViewActionHandler::setCurrentView(DolphinView* view) m_currentView = view; + connect(view, SIGNAL(modeChanged()), + this, SLOT(updateViewActions())); connect(view, SIGNAL(showPreviewChanged()), this, SLOT(slotShowPreviewChanged())); connect(view, SIGNAL(sortOrderChanged(Qt::SortOrder)), @@ -89,6 +92,12 @@ void DolphinViewActionHandler::createActions() // View menu + QActionGroup* viewModeActions = new QActionGroup(this); + viewModeActions->addAction(iconsModeAction()); + viewModeActions->addAction(detailsModeAction()); + viewModeActions->addAction(columnsModeAction()); + connect(viewModeActions, SIGNAL(triggered(QAction*)), this, SLOT(slotViewModeActionTriggered(QAction*))); + KStandardAction::zoomIn(this, SLOT(zoomIn()), m_actionCollection); @@ -164,6 +173,12 @@ void DolphinViewActionHandler::slotCreateDir() KonqOperations::newDir(m_currentView, m_currentView->url()); } +void DolphinViewActionHandler::slotViewModeActionTriggered(QAction* action) +{ + const DolphinView::Mode mode = action->data().value(); + m_currentView->setMode(mode); +} + void DolphinViewActionHandler::slotRename() { emit actionBeingHandled(); @@ -201,14 +216,32 @@ void DolphinViewActionHandler::slotShowPreviewChanged() updateViewActions(); } +QString DolphinViewActionHandler::currentViewModeActionName() const +{ + switch (m_currentView->mode()) { + case DolphinView::IconsView: + return "icons"; + case DolphinView::DetailsView: + return "details"; + case DolphinView::ColumnView: + return "columns"; + } + return QString(); // can't happen +} + void DolphinViewActionHandler::updateViewActions() { - QAction* zoomInAction = m_actionCollection->action(KStandardAction::stdName(KStandardAction::ZoomIn)); + QAction* viewModeAction = m_actionCollection->action(currentViewModeActionName()); + if (viewModeAction != 0) { + viewModeAction->setChecked(true); + } + + QAction* zoomInAction = m_actionCollection->action(KStandardAction::name(KStandardAction::ZoomIn)); if (zoomInAction != 0) { zoomInAction->setEnabled(m_currentView->isZoomInPossible()); } - QAction* zoomOutAction = m_actionCollection->action(KStandardAction::stdName(KStandardAction::ZoomOut)); + QAction* zoomOutAction = m_actionCollection->action(KStandardAction::name(KStandardAction::ZoomOut)); if (zoomOutAction != 0) { zoomOutAction->setEnabled(m_currentView->isZoomOutPossible()); } @@ -284,3 +317,33 @@ void DolphinViewActionHandler::slotShowHiddenFilesChanged() showHiddenFilesAction->setChecked(m_currentView->showHiddenFiles()); } + +KToggleAction* DolphinViewActionHandler::iconsModeAction() +{ + KToggleAction* iconsView = m_actionCollection->add("icons"); + iconsView->setText(i18nc("@action:inmenu View Mode", "Icons")); + iconsView->setShortcut(Qt::CTRL | Qt::Key_1); + iconsView->setIcon(KIcon("view-list-icons")); + iconsView->setData(QVariant::fromValue(DolphinView::IconsView)); + return iconsView; +} + +KToggleAction* DolphinViewActionHandler::detailsModeAction() +{ + KToggleAction* detailsView = m_actionCollection->add("details"); + detailsView->setText(i18nc("@action:inmenu View Mode", "Details")); + detailsView->setShortcut(Qt::CTRL | Qt::Key_2); + detailsView->setIcon(KIcon("view-list-details")); + detailsView->setData(QVariant::fromValue(DolphinView::DetailsView)); + return detailsView; +} + +KToggleAction* DolphinViewActionHandler::columnsModeAction() +{ + KToggleAction* columnView = m_actionCollection->add("columns"); + columnView->setText(i18nc("@action:inmenu View Mode", "Columns")); + columnView->setShortcut(Qt::CTRL | Qt::Key_3); + columnView->setIcon(KIcon("view-file-columns")); + columnView->setData(QVariant::fromValue(DolphinView::ColumnView)); + return columnView; +}