[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