[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdebase/workspace/plasma/generic/runners/nepomuksearch
From:       Sebastian Trueg <sebastian () trueg ! de>
Date:       2010-08-05 11:06:06
Message-ID: 20100805110606.4BAFBAC7BC () svn ! kde ! org
[Download RAW message or body]

SVN commit 1159431 by trueg:

Properly handle files as a special case.

BUG: 246689
FIXED-IN: 4.5.1


 M  +11 -0     CMakeLists.txt  
 M  +8 -1      nepomuksearchrunner.cpp  
 M  +19 -12    queryclientwrapper.cpp  


--- trunk/KDE/kdebase/workspace/plasma/generic/runners/nepomuksearch/CMakeLists.txt \
#1159430:1159431 @@ -12,6 +12,17 @@
     queryclientwrapper.cpp
 )
 
+soprano_add_ontology(nepomuksearchrunner_SRCS
+  ${SHAREDDESKTOPONTOLOGIES_ROOT_DIR}/nie/nfo.trig
+  "NFO"
+  "Nepomuk::Vocabulary"
+  "trig")
+soprano_add_ontology(nepomuksearchrunner_SRCS
+  ${SHAREDDESKTOPONTOLOGIES_ROOT_DIR}/nie/nie.trig
+  "NIE"
+  "Nepomuk::Vocabulary"
+  "trig")
+
 kde4_add_plugin(krunner_nepomuksearchrunner ${nepomuksearchrunner_SRCS})
 
 target_link_libraries(krunner_nepomuksearchrunner
--- trunk/KDE/kdebase/workspace/plasma/generic/runners/nepomuksearch/nepomuksearchrunner.cpp \
#1159430:1159431 @@ -18,6 +18,8 @@
 
 #include "nepomuksearchrunner.h"
 #include "queryclientwrapper.h"
+#include "nie.h"
+#include "nfo.h"
 
 #include <QMenu>
 
@@ -27,6 +29,7 @@
 #include <KUrl>
 
 #include <Nepomuk/Resource>
+#include <Nepomuk/Variant>
 #include <Nepomuk/ResourceManager>
 #include <Nepomuk/Query/QueryServiceClient>
 
@@ -35,7 +38,6 @@
 #include <KFileItemListProperties>
 #include <KIO/NetAccess>
 
-Q_DECLARE_METATYPE(Nepomuk::Resource)
 
 namespace {
     /**
@@ -123,8 +125,13 @@
             return;
         }
     }
+
     Nepomuk::Resource res = match.data().value<Nepomuk::Resource>();
     KUrl url = res.resourceUri();
+    if (res.hasType(Nepomuk::Vocabulary::NFO::FileDataObject()) &&
+        KUrl(res.property(Nepomuk::Vocabulary::NIE::url()).toUrl()).isLocalFile()) {
+        url = res.property(Nepomuk::Vocabulary::NIE::url()).toUrl();
+    }
 
     (void)new KRun(url, 0);
 }
--- trunk/KDE/kdebase/workspace/plasma/generic/runners/nepomuksearch/queryclientwrapper.cpp \
#1159430:1159431 @@ -18,8 +18,11 @@
 
 #include "queryclientwrapper.h"
 #include "nepomuksearchrunner.h"
+#include "nie.h"
+#include "nfo.h"
 
 #include <Nepomuk/Resource>
+#include <Nepomuk/Variant>
 #include <Nepomuk/Types/Class>
 #include <Nepomuk/Query/QueryServiceClient>
 #include <Nepomuk/Query/Result>
@@ -40,10 +43,6 @@
 #include <QtCore/QMutex>
 
 
-#ifndef KDE_USE_FINAL
-Q_DECLARE_METATYPE(Nepomuk::Resource)
-#endif
-
 static const int s_maxResults = 10;
 
 Nepomuk::QueryClientWrapper::QueryClientWrapper(SearchRunner* runner, \
Plasma::RunnerContext* context) @@ -101,21 +100,29 @@
         Nepomuk::Resource res = result.resource();
 
         QString type;
-        if (res.hasType(Soprano::Vocabulary::Xesam::File()) ||
-            res.resourceUri().scheme() == "file") {
-            type = KMimeType::findByUrl(res.resourceUri())->comment();
-        } else {
+        QString iconName;
+
+        if (res.hasType(Nepomuk::Vocabulary::NFO::FileDataObject()) &&
+            KUrl(res.property(Nepomuk::Vocabulary::NIE::url()).toUrl()).isLocalFile()) \
{ +            const KUrl url = \
res.property(Nepomuk::Vocabulary::NIE::url()).toUrl(); +            KMimeType::Ptr \
mimetype = KMimeType::findByUrl(url); +            if (mimetype) {
+                type = mimetype->comment();
+                iconName = mimetype->iconName(url);
+            }
+        }
+
+        if (type.isEmpty() ) {
             type = Nepomuk::Types::Class(res.resourceType()).label();
+            iconName = res.genericIcon();
         }
 
         match.setText(res.genericLabel());
         match.setSubtext(type);
+        match.setIcon(KIcon(iconName.isEmpty() ? QString::fromLatin1("nepomuk") : \
iconName));  
-        QString s = res.genericIcon();
-        match.setIcon(KIcon(s.isEmpty() ? QString("nepomuk") : s));
-
         match.setData(qVariantFromValue(res));
-        match.setId(res.resourceUri().toString());
+        match.setId(KUrl(res.resourceUri()).url());
         matches << match;
     }
     m_runnerContext->addMatches(m_runnerContext->query(), matches);


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic