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

List:       kde-commits
Subject:    =?utf-8?q?=5Bshare-like-connect=5D_dataengine=3A_the_service_acc?=
From:       Marco Martin <notmart () gmail ! com>
Date:       2011-05-31 21:08:33
Message-ID: 20110531210833.9BDDCA60A6 () git ! kde ! org
[Download RAW message or body]

Git commit 5b45535ed80397dbc597aca9d1a21716479671e3 by Marco Martin.
Committed on 31/05/2011 at 19:37.
Pushed by mart into branch 'master'.

the service accesses the providers

M  +6    -1    dataengine/sharelikeconnect.cpp     
M  +1    -0    dataengine/sharelikeconnect.h     
M  +5    -1    dataengine/slcservice/slcjob.cpp     
M  +6    -1    dataengine/slcservice/slcjob.h     
M  +11   -4    dataengine/slcservice/slcservice.cpp     
M  +8    -3    dataengine/slcservice/slcservice.h     

http://commits.kde.org/share-like-connect/5b45535ed80397dbc597aca9d1a21716479671e3

diff --git a/dataengine/sharelikeconnect.cpp b/dataengine/sharelikeconnect.cpp
index d081784..e10b7e1 100644
--- a/dataengine/sharelikeconnect.cpp
+++ b/dataengine/sharelikeconnect.cpp
@@ -70,7 +70,7 @@ Plasma::Service *ShareLikeConnectEngine::serviceForSource(const \
QString &source)  {
     Plasma::Service *service = 0;
     if (source == "Share" || source == "Like" || source == "Connect") {
-        return new SlcService(this);
+        return new SLC::SlcService(this);
     } else {
         return 0;
     }
@@ -108,6 +108,11 @@ void ShareLikeConnectEngine::contentChanged()
     }
 }
 
+QHash<QString, SLC::Provider *> ShareLikeConnectEngine::providers() const
+{
+    return m_providers;
+}
+
 // export the plugin; use the plugin name and the class name
 K_EXPORT_PLASMA_DATAENGINE(org.kde.sharelikeconnect, ShareLikeConnectEngine)
 
diff --git a/dataengine/sharelikeconnect.h b/dataengine/sharelikeconnect.h
index ed32866..88d4b59 100644
--- a/dataengine/sharelikeconnect.h
+++ b/dataengine/sharelikeconnect.h
@@ -37,6 +37,7 @@ public:
     ~ShareLikeConnectEngine();
 
     Plasma::Service *serviceForSource(const QString &source);
+    QHash<QString, SLC::Provider *> providers() const;
 
 private Q_SLOTS:
     void contentChanged();
diff --git a/dataengine/slcservice/slcjob.cpp b/dataengine/slcservice/slcjob.cpp
index cf497f6..9b45f61 100644
--- a/dataengine/slcservice/slcjob.cpp
+++ b/dataengine/slcservice/slcjob.cpp
@@ -21,7 +21,9 @@
 
 #include <kdebug.h>
 
-SlcJob::SlcJob(const QString &operation, QMap<QString, QVariant> &parameters, \
QObject *parent) +namespace SLC {
+
+SlcJob::SlcJob(Provider *provider, const QString &operation, QMap<QString, QVariant> \
&parameters, QObject *parent)  : ServiceJob(parent->objectName(), operation, \
parameters, parent)  {
 }
@@ -45,4 +47,6 @@ void SlcJob::start()
     setResult(false);
 }
 
+}
+
 #include "slcjob.moc"
diff --git a/dataengine/slcservice/slcjob.h b/dataengine/slcservice/slcjob.h
index 65d2c1a..6a9a7c5 100644
--- a/dataengine/slcservice/slcjob.h
+++ b/dataengine/slcservice/slcjob.h
@@ -22,6 +22,9 @@
 // plasma
 #include <Plasma/ServiceJob>
 
+#include "provider.h"
+
+namespace SLC {
 
 class SlcJob : public Plasma::ServiceJob
 {
@@ -29,11 +32,13 @@ class SlcJob : public Plasma::ServiceJob
 Q_OBJECT
 
 public:
-    SlcJob(const QString &operation, QMap<QString, QVariant> &parameters, QObject \
*parent = 0); +    SlcJob(Provider *provider, const QString &operation, QMap<QString, \
QVariant> &parameters, QObject *parent = 0);  ~SlcJob();
 
 protected:
     void start();
 };
 
+}
+
 #endif
diff --git a/dataengine/slcservice/slcservice.cpp \
b/dataengine/slcservice/slcservice.cpp index 686f90a..ed180c3 100644
--- a/dataengine/slcservice/slcservice.cpp
+++ b/dataengine/slcservice/slcservice.cpp
@@ -19,18 +19,25 @@
 
 #include "slcservice.h"
 #include "slcjob.h"
+#include "provider.h"
 
+namespace SLC {
 
-SlcService::SlcService(QObject *parent, const QVariantList &args)
-    : Plasma::Service(parent, args)
+SlcService::SlcService(ShareLikeConnectEngine *parent, const QVariantList &args)
+    : Plasma::Service(parent, args),
+      m_slcEngine(parent)
 {
     setName("slcservice");
 }
 
-ServiceJob *SlcService::createJob(const QString &operation,
+Plasma::ServiceJob *SlcService::createJob(const QString &operation,
                                           QMap<QString, QVariant> &parameters)
 {
-    return new SlcJob(operation, parameters, this);
+    const QString action = parameters.value("Action").toString();
+    Provider *provider = m_slcEngine.data()->providers().value(action);
+    return new SlcJob(provider, operation, parameters, this);
+}
+
 }
 
 #include "slcservice.moc"
diff --git a/dataengine/slcservice/slcservice.h b/dataengine/slcservice/slcservice.h
index 24b29f0..cd4eae2 100644
--- a/dataengine/slcservice/slcservice.h
+++ b/dataengine/slcservice/slcservice.h
@@ -24,19 +24,24 @@
 #include <Plasma/Service>
 #include <Plasma/ServiceJob>
 
-using namespace Plasma;
+#include "sharelikeconnect.h"
+
+namespace SLC {
 
 class SlcService : public Plasma::Service
 {
     Q_OBJECT
 
 public:
-    SlcService(QObject *parent = 0, const QVariantList &args = QVariantList());
-    ServiceJob *createJob(const QString &operation,
+    SlcService(ShareLikeConnectEngine *parent = 0, const QVariantList &args = \
QVariantList()); +    Plasma::ServiceJob *createJob(const QString &operation,
                           QMap<QString, QVariant> &parameters);
 
 private:
     QString m_id;
+    QWeakPointer<ShareLikeConnectEngine> m_slcEngine;
 };
 
+}
+
 #endif


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

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