]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/viewproperties.cpp
If Nepomuk is (temporary) not available use SortByName as fallback for SortByTags...
[dolphin.git] / src / viewproperties.cpp
index 835be2aad944d0ab58128210adb0595d9f2f3694..319a06bc230a16c834fcd758fc366e70aa21570b 100644 (file)
 #include <kstandarddirs.h>
 #include <kurl.h>
 
+#ifdef HAVE_NEPOMUK
+    #include <nepomuk/resourcemanager.h>
+#endif
+
 #include <QDate>
 #include <QFile>
 #include <QFileInfo>
 
+bool ViewProperties::m_nepomukSupport = false;
+
 #define FILE_NAME "/.directory"
 
 ViewProperties::ViewProperties(const KUrl& url) :
@@ -40,6 +46,14 @@ ViewProperties::ViewProperties(const KUrl& url) :
     m_autoSave(true),
     m_node(0)
 {
+#ifdef HAVE_NEPOMUK
+    static bool checkedNepomukSupport = false;
+    if (!checkedNepomukSupport) {
+        m_nepomukSupport = !Nepomuk::ResourceManager::instance()->init();
+        checkedNepomukSupport = true;
+    }
+#endif
+
     KUrl cleanUrl(url);
     cleanUrl.cleanPath();
     m_filepath = cleanUrl.path();
@@ -159,7 +173,15 @@ void ViewProperties::setSorting(DolphinView::Sorting sorting)
 
 DolphinView::Sorting ViewProperties::sorting() const
 {
-    return static_cast<DolphinView::Sorting>(m_node->sorting());
+    // If Nepomuk is not available, return SortByName as fallback if SortByRating
+    // or SortByTags is stored.
+    DolphinView::Sorting sorting = static_cast<DolphinView::Sorting>(m_node->sorting());
+    const bool sortByName = !m_nepomukSupport &&
+                            ((sorting == DolphinView::SortByRating) || (sorting == DolphinView::SortByTags));
+    if (sortByName) {
+        sorting = DolphinView::SortByName;
+    }
+    return sorting;
 }
 
 void ViewProperties::setSortOrder(Qt::SortOrder sortOrder)