From 4062c4cf2d9c3a6716ced8686fa2e2324261c0ec Mon Sep 17 00:00:00 2001 From: Peter Penz Date: Fri, 22 Jun 2007 10:18:46 +0000 Subject: Allow to sort by rating, which can be quite useful in combination with the "Show in Groups" feature. Although still slow, it basically works. All the code is based on Rafael Fernández López patch available at http://media.ereslibre.es/2007/06/dolphin-21062007.diff. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit svn path=/trunk/KDE/kdebase/apps/; revision=678801 --- src/dolphinmainwindow.cpp | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) (limited to 'src/dolphinmainwindow.cpp') diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index 7d7a9f89b..7fec6908d 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -292,6 +292,15 @@ void DolphinMainWindow::slotSortingChanged(DolphinView::Sorting sorting) break; case DolphinView::SortByType: action = actionCollection()->action("by_type"); + break; +#ifdef HAVE_NEPOMUK + case DolphinView::SortByRating: + action = actionCollection()->action("by_rating"); + break; + case DolphinView::SortByTags: + action = actionCollection()->action("by_tags"); + break; +#endif default: break; } @@ -722,6 +731,16 @@ void DolphinMainWindow::sortByType() m_activeViewContainer->view()->setSorting(DolphinView::SortByType); } +void DolphinMainWindow::sortByRating() +{ + m_activeViewContainer->view()->setSorting(DolphinView::SortByRating); +} + +void DolphinMainWindow::sortByTags() +{ + m_activeViewContainer->view()->setSorting(DolphinView::SortByTags); +} + void DolphinMainWindow::toggleSortOrder() { DolphinView* view = m_activeViewContainer->view(); @@ -1157,6 +1176,26 @@ void DolphinMainWindow::setupActions() sortByType->setText(i18n("By Type")); connect(sortByType, SIGNAL(triggered()), this, SLOT(sortByType())); + KToggleAction* sortByRating = actionCollection()->add("by_rating"); + sortByRating->setText(i18n("By Rating")); + + KToggleAction* sortByTags = actionCollection()->add("by_tags"); + sortByTags->setText(i18n("By Tags")); + +#ifdef HAVE_NEPOMUK + if (MetaDataWidget::metaDataAvailable()) { + connect(sortByRating, SIGNAL(triggered()), this, SLOT(sortByRating())); + connect(sortByTags, SIGNAL(triggered()), this, SLOT(sortByTags())); + } + else { + sortByRating->setEnabled(false); + sortByTags->setEnabled(false); + } +#else + sortByRating->setEnabled(false); + sortByTags->setEnabled(false); +#endif + QActionGroup* sortGroup = new QActionGroup(this); sortGroup->addAction(sortByName); sortGroup->addAction(sortBySize); @@ -1165,6 +1204,8 @@ void DolphinMainWindow::setupActions() sortGroup->addAction(sortByOwner); sortGroup->addAction(sortByGroup); sortGroup->addAction(sortByType); + sortGroup->addAction(sortByRating); + sortGroup->addAction(sortByTags); KToggleAction* sortDescending = actionCollection()->add("descending"); sortDescending->setText(i18n("Descending")); -- cgit v1.3