X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/9caa161efafcd435d9dabcf3ff99e1a9d4147004..2359ea2bdedf358e419745c812f2be2bf7d6c2a2:/src/dolphinviewactionhandler.cpp diff --git a/src/dolphinviewactionhandler.cpp b/src/dolphinviewactionhandler.cpp index 748856275..71e9fd398 100644 --- a/src/dolphinviewactionhandler.cpp +++ b/src/dolphinviewactionhandler.cpp @@ -22,16 +22,17 @@ #include "settings/viewpropertiesdialog.h" #include "dolphinview.h" #include "zoomlevelinfo.h" - #include #include #include #include +#include #include #include #include + DolphinViewActionHandler::DolphinViewActionHandler(KActionCollection* collection, QObject* parent) : QObject(parent), m_actionCollection(collection), @@ -56,6 +57,8 @@ void DolphinViewActionHandler::setCurrentView(DolphinView* view) this, SLOT(slotShowPreviewChanged())); connect(view, SIGNAL(sortOrderChanged(Qt::SortOrder)), this, SLOT(slotSortOrderChanged(Qt::SortOrder))); + connect(view, SIGNAL(sortFoldersFirstChanged(bool)), + this, SLOT(slotSortFoldersFirstChanged(bool))); connect(view, SIGNAL(additionalInfoChanged()), this, SLOT(slotAdditionalInfoChanged())); connect(view, SIGNAL(categorizedSortingChanged()), @@ -68,6 +71,11 @@ void DolphinViewActionHandler::setCurrentView(DolphinView* view) this, SLOT(slotZoomLevelChanged(int))); } +DolphinView* DolphinViewActionHandler::currentView() +{ + return m_currentView; +} + void DolphinViewActionHandler::createActions() { // This action doesn't appear in the GUI, it's for the shortcut only. @@ -76,7 +84,7 @@ void DolphinViewActionHandler::createActions() newDirAction->setText(i18nc("@action", "Create Folder...")); newDirAction->setShortcut(Qt::Key_F10); newDirAction->setIcon(KIcon("folder-new")); - connect(newDirAction, SIGNAL(triggered()), SLOT(slotCreateDir())); + connect(newDirAction, SIGNAL(triggered()), this, SIGNAL(createDirectory())); // Edit menu @@ -142,6 +150,10 @@ void DolphinViewActionHandler::createActions() sortDescending->setText(i18nc("@action:inmenu Sort", "Descending")); connect(sortDescending, SIGNAL(triggered()), this, SLOT(toggleSortOrder())); + KToggleAction* sortFoldersFirst = m_actionCollection->add("folders_first"); + sortFoldersFirst->setText(i18nc("@action:inmenu Sort", "Folders First")); + connect(sortFoldersFirst, SIGNAL(triggered()), this, SLOT(toggleSortFoldersFirst())); + QActionGroup* sortByActionGroup = createSortByActionGroup(); connect(sortByActionGroup, SIGNAL(triggered(QAction*)), this, SLOT(slotSortTriggered(QAction*))); @@ -278,12 +290,6 @@ QActionGroup* DolphinViewActionHandler::createSortByActionGroup() return sortByActionGroup; } -void DolphinViewActionHandler::slotCreateDir() -{ - Q_ASSERT(m_currentView); - KonqOperations::newDir(m_currentView, m_currentView->url()); -} - void DolphinViewActionHandler::slotViewModeActionTriggered(QAction* action) { const DolphinView::Mode mode = action->data().value(); @@ -340,6 +346,11 @@ QString DolphinViewActionHandler::currentViewModeActionName() const return QString(); // can't happen } +KActionCollection* DolphinViewActionHandler::actionCollection() +{ + return m_actionCollection; +} + void DolphinViewActionHandler::updateViewActions() { QAction* viewModeAction = m_actionCollection->action(currentViewModeActionName()); @@ -351,6 +362,7 @@ void DolphinViewActionHandler::updateViewActions() showPreviewAction->setChecked(m_currentView->showPreview()); slotSortOrderChanged(m_currentView->sortOrder()); + slotSortFoldersFirstChanged(m_currentView->sortFoldersFirst()); slotAdditionalInfoChanged(); slotCategorizedSortingChanged(); slotSortingChanged(m_currentView->sorting()); @@ -380,6 +392,11 @@ void DolphinViewActionHandler::toggleSortOrder() m_currentView->toggleSortOrder(); } +void DolphinViewActionHandler::toggleSortFoldersFirst() +{ + m_currentView->toggleSortFoldersFirst(); +} + void DolphinViewActionHandler::slotSortOrderChanged(Qt::SortOrder order) { QAction* descending = m_actionCollection->action("descending"); @@ -387,6 +404,11 @@ void DolphinViewActionHandler::slotSortOrderChanged(Qt::SortOrder order) descending->setChecked(sortDescending); } +void DolphinViewActionHandler::slotSortFoldersFirstChanged(bool foldersFirst) +{ + m_actionCollection->action("folders_first")->setChecked(foldersFirst); +} + void DolphinViewActionHandler::toggleAdditionalInfo(QAction* action) { emit actionBeingHandled();