I have made the following changes intended for :
  CE:MW:Shared / buteo-mtp

Please review and accept or decline.
BOSS has already run some checks on this request.
See the "Messages from BOSS" section below.

https://build.pub.meego.com//request/show/8402

Thank You,
aard

[This message was auto-generated]

---

Request # 8402:

Messages from BOSS:

State: review at 2013-03-11T18:58:12 by bossbot

Reviews:
       accepted by bossbot : Prechecks succeeded.
       new for CE-maintainers : Please replace this text with a review and 
approve/reject the review (not the SR). BOSS will take care of the rest

Changes:
  submit: home:aard:branches:CE:MW:Shared / buteo-mtp -> CE:MW:Shared / 
buteo-mtp
  
changes files:
--------------
--- buteo-mtp.changes
+++ buteo-mtp.changes
@@ -0,0 +1,3 @@
+* Mon Mar 11 2013 Bernd Wachter <[email protected]> - 0.0.44
+- Switch from libqttracker to qtsparql
+

old:
----
  buteo-mtp-0.0.43.tar.gz

new:
----
  buteo-mtp-0.0.44.tar.gz

spec files:
-----------
--- buteo-mtp.spec
+++ buteo-mtp.spec
@@ -1,5 +1,5 @@
 Name: buteo-mtp
-Version: 0.0.43
+Version: 0.0.44
 Release: 1
 Summary: MTP library
 Group: System/Libraries
@@ -7,7 +7,7 @@
 URL: https://github.com/nemomobile/buteo-mtp
 Source0: %{name}-%{version}.tar.gz
 BuildRequires: pkgconfig(contextsubscriber-1.0)
-BuildRequires: pkgconfig(qttracker)
+BuildRequires: pkgconfig(QtSparql)
 BuildRequires: pkgconfig(synccommon)
 BuildRequires: pkgconfig(QtSystemInfo)
 Requires: mtp-vendor-configuration

other changes:
--------------

++++++ buteo-mtp-0.0.43.tar.gz -> buteo-mtp-0.0.44.tar.gz
--- mts/platform/storage/fsstorageplugin/fsstorageplugin.pro
+++ mts/platform/storage/fsstorageplugin/fsstorageplugin.pro
@@ -3,13 +3,13 @@
 ######################################################################
 
 TEMPLATE = lib
-LIBS += -lqttracker
 TARGET = fsstorage
 
 CONFIG += plugin debug
 #QMAKE_CXXFLAGS += -O0 -Werror
 QT += dbus
 QT -= gui
+CONFIG += qtsparql
 
 DEPENDPATH += . \
               .. \
--- mts/platform/storage/fsstorageplugin/storagetracker.cpp
+++ mts/platform/storage/fsstorageplugin/storagetracker.cpp
@@ -33,9 +33,13 @@
 #include <QString>
 #include <QRegExp>
 #include <QUuid>
+#include <QUrl>
 #include <QDBusPendingReply>
 #include <QDBusConnection>
-#include <QtTracker/Tracker>
+#include <QtSparql/QSparqlConnection>
+#include <QtSparql/QSparqlError>
+#include <QtSparql/QSparqlQuery>
+#include <QtSparql/QSparqlResult>
 #include <libsynccommon/SyncDBusConnection.h>
 // Local headers
 #include "storagetracker.h"
@@ -691,17 +695,37 @@
     return true;
 }
 
+static QSparqlConnection *trackerConnection()
+{
+    // QTRACKER_DIRECT does not handle the case when DB is removed and
+    // recreated, like with `tracker-control -r` (storage-test does this)
+    static QSparqlConnection *trackerConnection = new 
QSparqlConnection("QTRACKER");
+    return trackerConnection;
+}
+
 static void trackerQuery(const QString& query, QVector<QStringList> &res)
 {
     MTP_LOG_INFO(query);
-    res = ::tracker()->rawSparqlQuery(query.toUtf8().data());
+
+    QSparqlResult* result = trackerConnection()->syncExec(QSparqlQuery(query));
+
+    while (result->next()) {
+        QStringList row;
+        for (int i = 0; i < result->current().count(); ++i) {
+            row.append(result->current().value(i).toString());
+        }
+        res.append(row);
+    }
+
+    delete result;
 }
 
 static void trackerUpdateQuery(const QString& query)
 {
     // Ignore result for now...
-    ::tracker()->rawSparqlUpdateQuery(query);
     MTP_LOG_INFO(query);
+
+    delete trackerConnection()->syncExec(QSparqlQuery(query, 
QSparqlQuery::InsertStatement));
 }
 
 static QString generateIriForTracker(const QString& path)
@@ -1253,7 +1277,7 @@
     }
     else
     {
-        QString query = QString("DELETE{?f nmm:MusicAlbum ?fld} WHERE{?f 
nie:url '") + iri + QString("' ; nmm:MusicAlbum ?fld} INSERT{?f nmm:MusicAlbum[ 
a nmm:MusicAlbum ; nie:title '") + val + QString("']} WHERE{?f a 
nmm:MusicPiece; nie:url '") + iri + QString("'}");
+        QString query = QString("DELETE{?f nmm:musicAlbum ?fld} WHERE{?f 
nie:url '") + iri + QString("' ; nmm:musicAlbum ?fld} INSERT{?f nmm:musicAlbum[ 
a nmm:MusicAlbum ; nie:title '") + val + QString("']} WHERE{?f a 
nmm:MusicPiece; nie:url '") + iri + QString("'}");
         return trackerUpdateQuery(query);
     }
 }
@@ -1318,12 +1342,12 @@
 {
     if(iri.isNull())
     {
-        val = QString("mtp:waveFormat");
+        val = QString("mtp:waveformat");
         domains.append("nmm:Video");
     }
     else
     {
-        QString query = QString("DELETE{?f mtp:waveFormat ?fld} WHERE{?f 
nie:url '") + iri + QString("' ; mtp:waveFormat ?fld} INSERT{?f mtp:waveFormat 
'") + val + QString("'} WHERE{?f a nmm:Video; nie:url '") + iri + QString("'}");
+        QString query = QString("DELETE{?f mtp:waveformat ?fld} WHERE{?f 
nie:url '") + iri + QString("' ; mtp:waveformat ?fld} INSERT{?f mtp:waveformat 
'") + val + QString("'} WHERE{?f a nmm:Video; nie:url '") + iri + QString("'}");
         return trackerUpdateQuery(query);
     }
 }
--- mts/platform/storage/fsstorageplugin/unittests/fsstorageplugin_test.cpp
+++ mts/platform/storage/fsstorageplugin/unittests/fsstorageplugin_test.cpp
@@ -33,7 +33,9 @@
 #include "fsstorageplugin.h"
 #include "storageitem.h"
 #include "storagetracker.h"
-#include <QtTracker/Tracker>
+#include <QtSparql/QSparqlConnection>
+#include <QtSparql/QSparqlQuery>
+#include <QtSparql/QSparqlResult>
 
 using namespace meegomtp1dot0;
 
@@ -41,7 +43,6 @@
 
 void FSStoragePlugin_test::initTestCase()
 {
-
     QDir dir;
     QFile file( QDir::homePath() + "/.mtp/.mtphandles");
     if( file.open( QIODevice::ReadOnly ) )
@@ -172,53 +173,55 @@
 
     sleep(5);
 
+    QSparqlConnection connection("QTRACKER_DIRECT");
+
     // Create tracker playlist1 with song1 and song2
     QString query;
 
     query = "INSERT{<file:///tmp/mtptests/Music/song1.mp3> a 
nfo:FileDataObject, nie:InformationElement ; nie:url 
'file:///tmp/mtptests/Music/song1.mp3'}";
-    ::tracker()->rawSparqlUpdateQuery(query);
+    delete connection.syncExec(QSparqlQuery(query, 
QSparqlQuery::InsertStatement));
     
     query = "INSERT{<file:///tmp/mtptests/Music/song2.mp3> a 
nfo:FileDataObject, nie:InformationElement ; nie:url 
'file:///tmp/mtptests/Music/song2.mp3'}";
-    ::tracker()->rawSparqlUpdateQuery(query);
+    delete connection.syncExec(QSparqlQuery(query, 
QSparqlQuery::InsertStatement));
     
     query = "INSERT{<file:///tmp/mtptests/Music/song3.mp3> a 
nfo:FileDataObject, nie:InformationElement ; nie:url 
'file:///tmp/mtptests/Music/song3.mp3'}";
-    ::tracker()->rawSparqlUpdateQuery(query);
+    delete connection.syncExec(QSparqlQuery(query, 
QSparqlQuery::InsertStatement));
     
     query = "INSERT{<file:///tmp/mtptests/Music/song4.mp3> a 
nfo:FileDataObject, nie:InformationElement ; nie:url 
'file:///tmp/mtptests/Music/song4.mp3'}";
-    ::tracker()->rawSparqlUpdateQuery(query);
+    delete connection.syncExec(QSparqlQuery(query, 
QSparqlQuery::InsertStatement));
     
     query = "DELETE { ?entry a rdfs:Resource } WHERE { <urn:playlist:pl1> 
nfo:hasMediaFileListEntry ?entry . }";
 
-    ::tracker()->rawSparqlUpdateQuery(query);
+    delete connection.syncExec(QSparqlQuery(query, 
QSparqlQuery::DeleteStatement));
 
     query = "DELETE {<urn:playlist:pl1> a rdfs:Resource}";
     
-    ::tracker()->rawSparqlUpdateQuery(query);
+    delete connection.syncExec(QSparqlQuery(query, 
QSparqlQuery::DeleteStatement));
 
     query = "INSERT {<urn:playlist:pl1> a nmm:Playlist; nie:title 'play1'}";
     
-    ::tracker()->rawSparqlUpdateQuery(query);
+    delete connection.syncExec(QSparqlQuery(query, 
QSparqlQuery::InsertStatement));
 
     query = "INSERT {<urn:playlist:pl1> nfo:hasMediaFileListEntry 
<urn:playlist-entry:pl1:0> . <urn:playlist-entry:pl1:0> a 
nfo:MediaFileListEntry . <urn:playlist-entry:pl1:0> nfo:entryUrl 
<file:///tmp/mtptests/Music/song1.mp3> . <urn:playlist-entry:pl1:0> 
nfo:listPosition '0' . <urn:playlist:pl1> nfo:hasMediaFileListEntry 
<urn:playlist-entry:pl1:1> . <urn:playlist-entry:pl1:1> a 
nfo:MediaFileListEntry . <urn:playlist-entry:pl1:1> nfo:entryUrl 
<file:///tmp/mtptests/Music/song2.mp3> . <urn:playlist-entry:pl1:1> 
nfo:listPosition '1' .}";
     
-    ::tracker()->rawSparqlUpdateQuery(query);
+    delete connection.syncExec(QSparqlQuery(query, 
QSparqlQuery::InsertStatement));
 
     // Create tracker playlist2 with song3 and song4
     query = "DELETE { ?entry a rdfs:Resource } WHERE { <urn:playlist:pl2> 
nfo:hasMediaFileListEntry ?entry . }";
 
-    ::tracker()->rawSparqlUpdateQuery(query);
+    delete connection.syncExec(QSparqlQuery(query, 
QSparqlQuery::DeleteStatement));
 
     query = "DELETE {<urn:playlist:pl2> a rdfs:Resource}";
     
-    ::tracker()->rawSparqlUpdateQuery(query);
+    delete connection.syncExec(QSparqlQuery(query, 
QSparqlQuery::DeleteStatement));
 
     query = "INSERT {<urn:playlist:pl2> a nmm:Playlist; nie:title 'play2'}";
     
-    ::tracker()->rawSparqlUpdateQuery(query);
+    delete connection.syncExec(QSparqlQuery(query, 
QSparqlQuery::InsertStatement));
 
     query = "INSERT {<urn:playlist:pl2> nfo:hasMediaFileListEntry 
<urn:playlist-entry:pl2:0> . <urn:playlist-entry:pl2:0> a 
nfo:MediaFileListEntry . <urn:playlist-entry:pl2:0> nfo:entryUrl 
<file:///tmp/mtptests/Music/song3.mp3> . <urn:playlist-entry:pl2:0> 
nfo:listPosition '0' . <urn:playlist:pl2> nfo:hasMediaFileListEntry 
<urn:playlist-entry:pl2:1> . <urn:playlist-entry:pl2:1> a 
nfo:MediaFileListEntry . <urn:playlist-entry:pl2:1> nfo:entryUrl 
<file:///tmp/mtptests/Music/song4.mp3> . <urn:playlist-entry:pl2:1> 
nfo:listPosition '1' .}";
     
-    ::tracker()->rawSparqlUpdateQuery(query);
+    delete connection.syncExec(QSparqlQuery(query, 
QSparqlQuery::InsertStatement));
 
 }
 
@@ -1554,10 +1557,15 @@
     MTPResponseCode response = m_storage->deleteItem(handle, 
MTP_OBF_FORMAT_Undefined);
     QCOMPARE(response, (MTPResponseCode)MTP_RESP_OK);
 
+    // QTRACKER_DIRECT does not support QSparqlResult::QuerySize - use QTRACKER
+    QSparqlConnection connection("QTRACKER");
+
     // Ensure that the playlist is deleted from tracker too
-    QVector<QStringList> result = ::tracker()->rawSparqlQuery(QString("SELECT 
?f WHERE {?f a nmm:Playlist}"));
-    QCOMPARE(result.size(), 1);
-    QCOMPARE(result[0][0], QString("urn:playlist:pl2"));
+    QSparqlResult* result = connection.syncExec(QSparqlQuery("SELECT ?f WHERE 
{?f a nmm:Playlist}"));
+    QCOMPARE(result->size(), 1);
+    result->next();
+    QCOMPARE(result->current().value(0).toString(), 
QString("urn:playlist:pl2"));
+    delete result;
 
     // Delete the other one too
     handle = m_storage->m_pathNamesMap["/tmp/mtptests/Playlists/play2.pla"];
@@ -1565,10 +1573,10 @@
 
     response = m_storage->deleteItem(handle, MTP_OBF_FORMAT_Undefined);
     QCOMPARE(response, (MTPResponseCode)MTP_RESP_OK);
-    result.clear();
     // Ensure that the playlist is deleted from tracker too
-    result = ::tracker()->rawSparqlQuery(QString("SELECT ?f WHERE {?f a 
nmm:Playlist}"));
-    QCOMPARE(result.size(), 0);
+    result = connection.syncExec(QSparqlQuery("SELECT ?f WHERE {?f a 
nmm:Playlist}"));
+    QCOMPARE(result->size(), 0);
+    delete result;
 }
 
 void FSStoragePlugin_test::testCreatePlaylists()
@@ -1602,49 +1610,72 @@
 {
     // Make direct tracker queries to ensure that the playlist MyPlaylist has
     // been added.
+    // QTRACKER_DIRECT does not support QSparqlResult::QuerySize - use QTRACKER
+    QSparqlConnection connection("QTRACKER");
     QString urn;
-    QVector<QStringList> resultSet;
+    QSparqlResult *resultSet = 0;
+
     QString query = QString("SELECT ?f WHERE {?f a nmm:Playlist}");
-    resultSet = ::tracker()->rawSparqlQuery(query);
-    QCOMPARE(resultSet.size(), 1);
-    urn = resultSet[0][0];
+    resultSet = connection.syncExec(QSparqlQuery(query));
+    QCOMPARE(resultSet->size(), 1);
+    resultSet->next();
+    urn = resultSet->stringValue(0);
+    delete resultSet;
     
     query = QString("SELECT ?f WHERE{<") + urn + QString("> nie:title ?f}");
-    resultSet = ::tracker()->rawSparqlQuery(query);
-    QCOMPARE(resultSet.size(), 1);
-    QCOMPARE(resultSet[0][0], QString("MyPlaylist"));
+    resultSet = connection.syncExec(QSparqlQuery(query));
+    QCOMPARE(resultSet->size(), 1);
+    resultSet->next();
+    QCOMPARE(resultSet->stringValue(0), QString("MyPlaylist"));
+    delete resultSet;
 
     query = QString("SELECT ?f WHERE{<") + urn + QString("> nie:identifier 
?f}");
-    resultSet = ::tracker()->rawSparqlQuery(query);
-    QCOMPARE(resultSet.size(), 1);
-    QCOMPARE(resultSet[0][0], 
QString("file:///tmp/mtptests/Playlists/MyPlaylist"));
+    resultSet = connection.syncExec(QSparqlQuery(query));
+    QCOMPARE(resultSet->size(), 1);
+    resultSet->next();
+    QCOMPARE(resultSet->stringValue(0), 
QString("file:///tmp/mtptests/Playlists/MyPlaylist"));
+    delete resultSet;
 
     // Query the entries now
     query = QString("SELECT ?f WHERE{<") + urn + QString("> 
nfo:hasMediaFileListEntry ?f}");
-    QVector<QStringList> resultSetAll = ::tracker()->rawSparqlQuery(query);
-    QCOMPARE(resultSetAll.size(), 4);
+    QSparqlResult *resultSetAll = connection.syncExec(QSparqlQuery(query));
+    QCOMPARE(resultSetAll->size(), 4);
 
     // Query the entry content's uri to ensure that the playlist entries were
     // added correctly
-    query = QString("SELECT ?f WHERE{<") + resultSetAll[0][0] + QString("> 
nfo:entryUrl ?f}");
-    resultSet = ::tracker()->rawSparqlQuery(query);
-    QCOMPARE(resultSet.size(), 1);
-    QCOMPARE(resultSet[0][0], QString("file:///tmp/mtptests/Music/song1.mp3"));
-
-    query = QString("SELECT ?f WHERE{<") + resultSetAll[1][0] + QString("> 
nfo:entryUrl ?f}");
-    resultSet = ::tracker()->rawSparqlQuery(query);
-    QCOMPARE(resultSet.size(), 1);
-    QCOMPARE(resultSet[0][0], QString("file:///tmp/mtptests/Music/song2.mp3"));
-
-    query = QString("SELECT ?f WHERE{<") + resultSetAll[2][0] + QString("> 
nfo:entryUrl ?f}");
-    resultSet = ::tracker()->rawSparqlQuery(query);
-    QCOMPARE(resultSet.size(), 1);
-    QCOMPARE(resultSet[0][0], QString("file:///tmp/mtptests/Music/song3.mp3"));
-
-    query = QString("SELECT ?f WHERE{<") + resultSetAll[3][0] + QString("> 
nfo:entryUrl ?f}");
-    resultSet = ::tracker()->rawSparqlQuery(query);
-    QCOMPARE(resultSet.size(), 1);
-    QCOMPARE(resultSet[0][0], QString("file:///tmp/mtptests/Music/song4.mp3"));
+    resultSetAll->next();
+    query = QString("SELECT ?f WHERE{<") + resultSetAll->stringValue(0) + 
QString("> nfo:entryUrl ?f}");
+    resultSet = connection.syncExec(QSparqlQuery(query));
+    QCOMPARE(resultSet->size(), 1);
+    resultSet->next();
+    QCOMPARE(resultSet->stringValue(0), 
QString("file:///tmp/mtptests/Music/song1.mp3"));
+    delete resultSet;
+
+    resultSetAll->next();
+    query = QString("SELECT ?f WHERE{<") + resultSetAll->stringValue(0) + 
QString("> nfo:entryUrl ?f}");
+    resultSet = connection.syncExec(QSparqlQuery(query));
+    QCOMPARE(resultSet->size(), 1);
+    resultSet->next();
+    QCOMPARE(resultSet->stringValue(0), 
QString("file:///tmp/mtptests/Music/song2.mp3"));
+    delete resultSet;
+
+    resultSetAll->next();
+    query = QString("SELECT ?f WHERE{<") + resultSetAll->stringValue(0) + 
QString("> nfo:entryUrl ?f}");
+    resultSet = connection.syncExec(QSparqlQuery(query));
+    QCOMPARE(resultSet->size(), 1);
+    resultSet->next();
+    QCOMPARE(resultSet->stringValue(0), 
QString("file:///tmp/mtptests/Music/song3.mp3"));
+    delete resultSet;
+
+    resultSetAll->next();
+    query = QString("SELECT ?f WHERE{<") + resultSetAll->stringValue(0) + 
QString("> nfo:entryUrl ?f}");
+    resultSet = connection.syncExec(QSparqlQuery(query));
+    QCOMPARE(resultSet->size(), 1);
+    resultSet->next();
+    QCOMPARE(resultSet->stringValue(0), 
QString("file:///tmp/mtptests/Music/song4.mp3"));
+    delete resultSet;
+
+    delete resultSetAll;
 }
 
 void FSStoragePlugin_test::cleanupTestCase()
--- mts/platform/storage/fsstorageplugin/unittests/unittests.pro
+++ mts/platform/storage/fsstorageplugin/unittests/unittests.pro
@@ -3,8 +3,9 @@
 ######################################################################
 
 CONFIG += qtestlib warn_off debug_and_release mobility
+CONFIG += qtsparql
 MOBILITY = systeminfo
-LIBS += -lqttracker -lcontextsubscriber
+LIBS += -lcontextsubscriber
 LIBS += -lsynccommon -ldl
 TEMPLATE = app
 TARGET = storage-test
--- rpm/buteo-mtp.changes
+++ rpm/buteo-mtp.changes
@@ -1,3 +1,6 @@
+* Mon Mar 11 2013 Bernd Wachter <[email protected]> - 0.0.44
+- Switch from libqttracker to qtsparql
+
 * Fri Feb 01 2013 Bernd Wachter <[email protected]> - 0.0.43
 - Add device icon support
 
--- rpm/buteo-mtp.spec
+++ rpm/buteo-mtp.spec
@@ -1,5 +1,5 @@
 Name: buteo-mtp
-Version: 0.0.43
+Version: 0.0.44
 Release: 1
 Summary: MTP library
 Group: System/Libraries
@@ -7,7 +7,7 @@
 URL: https://github.com/nemomobile/buteo-mtp
 Source0: %{name}-%{version}.tar.gz
 BuildRequires: pkgconfig(contextsubscriber-1.0)
-BuildRequires: pkgconfig(qttracker)
+BuildRequires: pkgconfig(QtSparql)
 BuildRequires: pkgconfig(synccommon)
 BuildRequires: pkgconfig(QtSystemInfo)
 Requires: mtp-vendor-configuration



Reply via email to