The use of old method emits a small warning which had been bugging me.

- Vishesh Handa
Index: server/dbus/dbusexportiterator.cpp
===================================================================
--- server/dbus/dbusexportiterator.cpp	(revision 1131719)
+++ server/dbus/dbusexportiterator.cpp	(working copy)
@@ -30,6 +30,7 @@
 #include "queryresultiterator.h"
 
 #include <QtDBus/QDBusConnection>
+#include <QtDBus/QDBusServiceWatcher>
 
 
 class Soprano::Server::DBusExportIterator::Private
@@ -38,6 +39,10 @@ public:
     Private( DBusExportIterator* parent )
         : deleteOnClose( false ),
           q( parent ) {
+            
+        serviceWatcher.setConnection( QDBusConnection::sessionBus() );
+        connect( &serviceWatcher, SIGNAL( serviceOwnerChanged( QString, QString, QString ) ),
+                 q, SLOT( slotServiceOwnerChanged( QString, QString, QString ) ) );
     }
 
     void slotServiceOwnerChanged( const QString& name, const QString&, const QString& );
@@ -51,6 +56,8 @@ public:
     QString dbusObjectPath;
     QString dbusClient;
 
+    QDBusServiceWatcher serviceWatcher;
+
 private:
     DBusExportIterator* q;
 };
@@ -151,9 +158,7 @@ bool Soprano::Server::DBusExportIterator
     }
 
     if( QDBusConnection::sessionBus().registerObject( dbusObjectPath, this ) ) {
-        connect( QDBusConnection::sessionBus().interface(), SIGNAL(serviceOwnerChanged(const QString&, const QString&, const QString&)),
-                 this, SLOT(slotServiceOwnerChanged(const QString&, const QString&, const QString&)) );
-
+        d->serviceWatcher.addWatchedService( dbusClient );
         d->dbusObjectPath = dbusObjectPath;
         d->dbusClient = dbusClient;
         return true;
@@ -169,8 +174,7 @@ bool Soprano::Server::DBusExportIterator
 
 void Soprano::Server::DBusExportIterator::unregisterIterator()
 {
-    disconnect( QDBusConnection::sessionBus().interface(), SIGNAL(serviceOwnerChanged(const QString&, const QString&, const QString&)),
-                this, SLOT(slotServiceOwnerChanged(const QString&, const QString&, const QString&)) );
+    d->serviceWatcher.removeWatchedService( d->dbusClient );
     d->dbusObjectPath = QString();
     d->dbusClient = QString();
     QDBusConnection::sessionBus().unregisterObject( d->dbusObjectPath );
_______________________________________________
Nepomuk mailing list
[email protected]
https://mail.kde.org/mailman/listinfo/nepomuk

Reply via email to