[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdelibs/nepomuk/query
From: Sebastian Trueg <sebastian () trueg ! de>
Date: 2010-12-08 14:17:33
Message-ID: 20101208141733.6B93CAC8AA () svn ! kde ! org
[Download RAW message or body]
SVN commit 1204649 by trueg:
Get rid of the DBus serialization hack for additional bindings.
M +19 -11 dbusoperators.cpp
M +1 -1 org.kde.nepomuk.Query.xml
--- trunk/KDE/kdelibs/nepomuk/query/dbusoperators.cpp #1204648:1204649
@@ -41,7 +41,7 @@
QDBusArgument& operator<<( QDBusArgument& arg, const Nepomuk::Query::Result& result \
) {
//
- // Signature: (sda{s(isss)}s)
+ // Signature: (sda{s(isss)}a{s(isss)}s)
//
arg.beginStructure();
@@ -49,27 +49,27 @@
// resource URI and score
arg << QString::fromAscii( result.resource().resourceUri().toEncoded() ) << \
result.score();
+ // request properties
arg.beginMap( QVariant::String, qMetaTypeId<Soprano::Node>() );
-
- // request properties
QHash<Nepomuk::Types::Property, Soprano::Node> rp = result.requestProperties();
for ( QHash<Nepomuk::Types::Property, Soprano::Node>::const_iterator it = \
rp.constBegin(); it != rp.constEnd(); ++it ) { arg.beginMapEntry();
arg << QString::fromAscii( it.key().uri().toEncoded() ) << it.value();
arg.endMapEntry();
}
+ arg.endMap();
- // additional bindings (the hacked version to make sure we do not change the \
signature. It would probably
- // not be a big deal to change it but neither is this hack)
+ // additional bindings
+ arg.beginMap( QVariant::String, qMetaTypeId<Soprano::Node>() );
const Soprano::BindingSet additionalBindings = result.additionalBindings();
foreach( const QString& binding, additionalBindings.bindingNames() ) {
arg.beginMapEntry();
- arg << (QLatin1String("|") + binding) << additionalBindings[binding]; // we \
use some char which is very invalid in URIs + arg << binding << \
additionalBindings[binding]; arg.endMapEntry();
}
-
arg.endMap();
+ // full text search excerpt
arg << result.excerpt();
arg.endStructure();
@@ -87,7 +87,6 @@
arg.beginStructure();
QString uri;
double score = 0.0;
- Soprano::BindingSet additionalBindings;
arg >> uri >> score;
result = Nepomuk::Query::Result( Nepomuk::Resource::fromResourceUri( \
QUrl::fromEncoded( uri.toAscii() ) ), score ); @@ -99,13 +98,22 @@
arg.beginMapEntry();
arg >> rs >> node;
arg.endMapEntry();
- if( rs.startsWith(QLatin1String("|")) )
- additionalBindings.insert( rs.mid(1), node );
- else
result.addRequestProperty( QUrl::fromEncoded( rs.toAscii() ), node );
}
arg.endMap();
+ Soprano::BindingSet additionalBindings;
+ arg.beginMap();
+ while ( !arg.atEnd() ) {
+ QString binding;
+ Soprano::Node node;
+ arg.beginMapEntry();
+ arg >> binding >> node;
+ arg.endMapEntry();
+ additionalBindings.insert( binding, node );
+ }
+ arg.endMap();
+
QString excerpt;
arg >> excerpt;
result.setExcerpt( excerpt );
--- trunk/KDE/kdelibs/nepomuk/query/org.kde.nepomuk.Query.xml #1204648:1204649
@@ -12,7 +12,7 @@
<arg type="s" direction="out" />
</method>
<signal name="newEntries">
- <arg name="entries" type="a(sda{s(isss)})" />
+ <arg name="entries" type="a(sda{s(isss)}s)" />
<annotation name="com.trolltech.QtDBus.QtTypeName.In0" \
value="QList<Nepomuk::Query::Result>" /> </signal>
<signal name="entriesRemoved">
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic