From: David Faure Date: Mon, 21 Jan 2008 19:42:16 +0000 (+0000) Subject: Make sort/descending available in dolphinpart X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/af333d9c7a8f344ed7f2a5cae02b383a5d0ee792 Make sort/descending available in dolphinpart svn path=/branches/KDE/4.0/kdebase/apps/; revision=764444 --- diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index 1da9377c7..407ec16b4 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -650,11 +650,7 @@ void DolphinMainWindow::sortByTags() void DolphinMainWindow::toggleSortOrder() { - DolphinView* view = m_activeViewContainer->view(); - const Qt::SortOrder order = (view->sortOrder() == Qt::AscendingOrder) ? - Qt::DescendingOrder : - Qt::AscendingOrder; - view->setSortOrder(order); + m_activeViewContainer->view()->toggleSortOrder(); } void DolphinMainWindow::toggleSortCategorization() @@ -1126,8 +1122,7 @@ void DolphinMainWindow::setupActions() //sortGroup->addAction(sortByRating); //sortGroup->addAction(sortByTags); - KToggleAction* sortDescending = actionCollection()->add("descending"); - sortDescending->setText(i18nc("@action:inmenu Sort", "Descending")); + KAction* sortDescending = DolphinView::createSortDescendingAction(actionCollection()); connect(sortDescending, SIGNAL(triggered()), this, SLOT(toggleSortOrder())); KToggleAction* showInGroups = actionCollection()->add("show_in_groups"); diff --git a/src/dolphinpart.cpp b/src/dolphinpart.cpp index 2c4c1eaa3..e7c919ad8 100644 --- a/src/dolphinpart.cpp +++ b/src/dolphinpart.cpp @@ -93,6 +93,8 @@ DolphinPart::DolphinPart(QWidget* parentWidget, QObject* parent, const QStringLi this, SLOT(slotUrlChanged(KUrl))); connect(m_view, SIGNAL(modeChanged()), this, SLOT(updateViewActions())); + connect(m_view, SIGNAL(sortOrderChanged(Qt::SortOrder)), + this, SLOT(slotSortOrderChanged(Qt::SortOrder))); QClipboard* clipboard = QApplication::clipboard(); connect(clipboard, SIGNAL(dataChanged()), @@ -144,6 +146,13 @@ void DolphinPart::createActions() propertiesAction->setShortcut(Qt::ALT+Qt::Key_Return); connect(propertiesAction, SIGNAL(triggered()), SLOT(slotProperties())); + // View menu + + // TODO sort_by_* + + KAction* sortDescending = DolphinView::createSortDescendingAction(actionCollection()); + connect(sortDescending, SIGNAL(triggered()), m_view, SLOT(toggleSortOrder())); + // Go menu KAction* newDirAction = DolphinView::createNewDirAction(actionCollection()); @@ -431,4 +440,11 @@ void DolphinPart::createDir() KonqOperations::newDir(m_view, url()); } +void DolphinPart::slotSortOrderChanged(Qt::SortOrder order) +{ + KToggleAction* descending = static_cast(actionCollection()->action("descending")); + const bool sortDescending = (order == Qt::DescendingOrder); + descending->setChecked(sortDescending); +} + #include "dolphinpart.moc" diff --git a/src/dolphinpart.h b/src/dolphinpart.h index 04161b6be..883cf9456 100644 --- a/src/dolphinpart.h +++ b/src/dolphinpart.h @@ -136,6 +136,9 @@ private Q_SLOTS: */ void createDir(); + /** Updates the state of the 'Sort Ascending/Descending' action. */ + void slotSortOrderChanged(Qt::SortOrder); + private: void createActions(); void createGoAction(const char* name, const char* iconName, diff --git a/src/dolphinview.cpp b/src/dolphinview.cpp index 138971360..cccbd36b9 100644 --- a/src/dolphinview.cpp +++ b/src/dolphinview.cpp @@ -794,6 +794,14 @@ void DolphinView::updateSortOrder(Qt::SortOrder order) emit sortOrderChanged(order); } +void DolphinView::toggleSortOrder() +{ + const Qt::SortOrder order = (sortOrder() == Qt::AscendingOrder) ? + Qt::DescendingOrder : + Qt::AscendingOrder; + setSortOrder(order); +} + void DolphinView::updateAdditionalInfo(const KFileItemDelegate::InformationList& info) { ViewProperties props(viewPropertiesUrl()); @@ -1257,4 +1265,11 @@ KAction* DolphinView::createNewDirAction(KActionCollection* collection) return newDirAction; } +KAction* DolphinView::createSortDescendingAction(KActionCollection* collection) +{ + KToggleAction* sortDescending = collection->add("descending"); + sortDescending->setText(i18nc("@action:inmenu Sort", "Descending")); + return sortDescending; +} + #include "dolphinview.moc" diff --git a/src/dolphinview.h b/src/dolphinview.h index 8076a62f0..80430ca77 100644 --- a/src/dolphinview.h +++ b/src/dolphinview.h @@ -368,6 +368,12 @@ public: */ static KAction* createNewDirAction(KActionCollection* collection); + /** + * Creates the "sort descending" action. + * This code is here to share it between the mainwindow and the part + */ + static KAction* createSortDescendingAction(KActionCollection* collection); + /** * Returns the action name corresponding to the current view mode */ @@ -423,6 +429,9 @@ public slots: /** Pastes the clipboard data to this view. */ void paste(); + /** Switches between an ascending and descending sorting order. */ + void toggleSortOrder(); + signals: /** * Is emitted if the view has been activated by e. g. a mouse click.