]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphinmainwindow.cpp
Draw dragged items. Better conditions (more accurate to our behavior, hey ! we have...
[dolphin.git] / src / dolphinmainwindow.cpp
index 386e9994413a37dd606b877c9910705f9816b7a8..bfde4da66c922872c3c3f4c888261e9afc3da08f 100644 (file)
@@ -21,7 +21,7 @@
 
 #include "dolphinmainwindow.h"
 
-#include "config-nepomuk.h"
+#include <config-nepomuk.h>
 
 #include "dolphinapplication.h"
 #include "dolphinnewmenu.h"
@@ -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,20 @@ void DolphinMainWindow::sortByType()
     m_activeViewContainer->view()->setSorting(DolphinView::SortByType);
 }
 
+void DolphinMainWindow::sortByRating()
+{
+#ifdef HAVE_NEPOMUK
+    m_activeViewContainer->view()->setSorting(DolphinView::SortByRating);
+#endif
+}
+
+void DolphinMainWindow::sortByTags()
+{
+#ifdef HAVE_NEPOMUK
+    m_activeViewContainer->view()->setSorting(DolphinView::SortByTags);
+#endif
+}
+
 void DolphinMainWindow::toggleSortOrder()
 {
     DolphinView* view = m_activeViewContainer->view();
@@ -996,7 +1019,12 @@ void DolphinMainWindow::init()
     updatePasteAction();
     updateGoActions();
 
-    loadSettings();
+    const bool split = generalSettings->splitView();
+    if (split) {
+        toggleSplitView();
+    }
+    updateSplitAction(split);
+    updateViewActions();
 
     if (firstRun) {
         // assure a proper default size if Dolphin runs the first time
@@ -1010,13 +1038,6 @@ void DolphinMainWindow::init()
     emit urlChanged(homeUrl);
 }
 
-void DolphinMainWindow::loadSettings()
-{
-    GeneralSettings* settings = DolphinSettings::instance().generalSettings();
-    updateSplitAction(settings->splitView());
-    updateViewActions();
-}
-
 void DolphinMainWindow::setActiveViewContainer(DolphinViewContainer* view)
 {
     Q_ASSERT((view == m_viewContainer[PrimaryView]) || (view == m_viewContainer[SecondaryView]));
@@ -1159,6 +1180,26 @@ void DolphinMainWindow::setupActions()
     sortByType->setText(i18n("By Type"));
     connect(sortByType, SIGNAL(triggered()), this, SLOT(sortByType()));
 
+    KToggleAction* sortByRating = actionCollection()->add<KToggleAction>("by_rating");
+    sortByRating->setText(i18n("By Rating"));
+
+    KToggleAction* sortByTags = actionCollection()->add<KToggleAction>("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);
@@ -1167,6 +1208,8 @@ void DolphinMainWindow::setupActions()
     sortGroup->addAction(sortByOwner);
     sortGroup->addAction(sortByGroup);
     sortGroup->addAction(sortByType);
+    sortGroup->addAction(sortByRating);
+    sortGroup->addAction(sortByTags);
 
     KToggleAction* sortDescending = actionCollection()->add<KToggleAction>("descending");
     sortDescending->setText(i18n("Descending"));