[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_connection_reso?=
From:       Marco Martin <notmart () gmail ! com>
Date:       2011-05-31 21:08:33
Message-ID: 20110531210833.A1240A60A9 () git ! kde ! org
[Download RAW message or body]

Git commit 87dd61f047b53af26ad1729b124b20e73f61d966 by Marco Martin.
Committed on 31/05/2011 at 23:08.
Pushed by mart into branch 'master'.

connection resource/activity (kinda) works

M  +3    -1    dataengine/providers/activities/CMakeLists.txt     
M  +19   -0    dataengine/providers/activities/activitiesProvider.cpp     
M  +14   -4    dataengine/slcservice/slcjob.cpp     
M  +3    -0    dataengine/slcservice/slcjob.h     
M  +3    -1    dataengine/slcservice/slcservice.cpp     
M  +9    -0    dataengine/slcservice/slcservice.operations     

http://commits.kde.org/share-like-connect/87dd61f047b53af26ad1729b124b20e73f61d966

diff --git a/dataengine/providers/activities/CMakeLists.txt \
b/dataengine/providers/activities/CMakeLists.txt index 393d2a8..6f8f416 100644
--- a/dataengine/providers/activities/CMakeLists.txt
+++ b/dataengine/providers/activities/CMakeLists.txt
@@ -2,9 +2,11 @@ set(activitiesProvider_SRCS
     activitiesProvider.cpp
 )
 
+find_package(Nepomuk REQUIRED)
+
 include_directories(${CMAKE_SOURCE_DIR}/dataengine)
 kde4_add_plugin(sharelikeconnect_provider_activities ${activitiesProvider_SRCS})
-target_link_libraries(sharelikeconnect_provider_activities ${KDE4_KDECORE_LIBS} \
${NEPOMUK_LIBRARIES} sharelikeconnect) \
+target_link_libraries(sharelikeconnect_provider_activities ${KDE4_KDECORE_LIBS} \
${NEPOMUK_LIBRARIES} ${NEPOMUK_QUERY_LIBRARIES} ${SOPRANO_LIBRARIES} \
${SOPRANO_CLIENT_LIBRARIES} sharelikeconnect)  
 install(TARGETS sharelikeconnect_provider_activities DESTINATION \
${PLUGIN_INSTALL_DIR})  install(FILES sharelikeconnect-provider-activities.desktop \
                DESTINATION ${SERVICES_INSTALL_DIR} )
diff --git a/dataengine/providers/activities/activitiesProvider.cpp \
b/dataengine/providers/activities/activitiesProvider.cpp index aaad780..5e5b104 \
                100644
--- a/dataengine/providers/activities/activitiesProvider.cpp
+++ b/dataengine/providers/activities/activitiesProvider.cpp
@@ -19,6 +19,12 @@
 
 #include "activitiesProvider.h"
 
+#include <Nepomuk/Query/Query>
+#include <Nepomuk/Resource>
+#include <Nepomuk/Variant>
+
+#include <soprano/vocabulary.h>
+
 ActivitiesProvider::ActivitiesProvider(QObject *parent, const QVariantList &args)
     : SLC::Provider(parent, args)
 {
@@ -40,6 +46,19 @@ bool ActivitiesProvider::executeAction(SLC::Provider::Action \
action, const QVari  }
 
     kDebug() << content << parameters;
+    
+    const QString resourceUrl = parameters["Url"].toString();
+    QString activityId = parameters["Target"].toString();
+    if (activityId.isEmpty()) {
+        //TODO: first step
+        return true;
+    }
+
+    Nepomuk::Resource fileRes(resourceUrl);
+    Nepomuk::Resource acRes("activities://" + activityId);
+
+    acRes.addProperty(Soprano::Vocabulary::NAO::isRelated(), fileRes);
+
     return true;
 }
 
diff --git a/dataengine/slcservice/slcjob.cpp b/dataengine/slcservice/slcjob.cpp
index 9b45f61..7a13f2c 100644
--- a/dataengine/slcservice/slcjob.cpp
+++ b/dataengine/slcservice/slcjob.cpp
@@ -24,7 +24,8 @@
 namespace SLC {
 
 SlcJob::SlcJob(Provider *provider, const QString &operation, QMap<QString, QVariant> \
                &parameters, QObject *parent)
-    : ServiceJob(parent->objectName(), operation, parameters, parent)
+    : ServiceJob(parent->objectName(), operation, parameters, parent),
+      m_provider(provider)
 {
 }
 
@@ -34,14 +35,23 @@ SlcJob::~SlcJob()
 
 void SlcJob::start()
 {
+    if (!m_provider) {
+        setResult(false);
+        return;
+    }
+
     const QString operation = operationName();
 
     kDebug() << "starting operation" << operation;
 
     if (operation == "executeAction") {
-        kDebug() << parameters()["ActionName"].toString()
-                 << parameters()["Description"].toString();
-        setResult(true);
+        kDebug() << parameters()["ActionName"].toString();
+        QVariantHash providerParameters;
+        providerParameters["Url"] = parameters()["Url"];
+        providerParameters["Comment"] = parameters()["Comment"];
+        providerParameters["Target"] = parameters()["Target"];
+        bool success = m_provider.data()->executeAction(SLC::Provider::Connect, \
QVariantHash(), providerParameters); +        setResult(success);
         return;
     }
     setResult(false);
diff --git a/dataengine/slcservice/slcjob.h b/dataengine/slcservice/slcjob.h
index 6a9a7c5..5a818b0 100644
--- a/dataengine/slcservice/slcjob.h
+++ b/dataengine/slcservice/slcjob.h
@@ -37,6 +37,9 @@ public:
 
 protected:
     void start();
+
+private:
+    QWeakPointer<Provider> m_provider;
 };
 
 }
diff --git a/dataengine/slcservice/slcservice.cpp \
b/dataengine/slcservice/slcservice.cpp index ed180c3..3b15a50 100644
--- a/dataengine/slcservice/slcservice.cpp
+++ b/dataengine/slcservice/slcservice.cpp
@@ -33,8 +33,10 @@ SlcService::SlcService(ShareLikeConnectEngine *parent, const \
QVariantList &args)  Plasma::ServiceJob *SlcService::createJob(const QString \
                &operation,
                                           QMap<QString, QVariant> &parameters)
 {
-    const QString action = parameters.value("Action").toString();
+    const QString action = parameters.value("ActionName").toString();
+
     Provider *provider = m_slcEngine.data()->providers().value(action);
+
     return new SlcJob(provider, operation, parameters, this);
 }
 
diff --git a/dataengine/slcservice/slcservice.operations \
b/dataengine/slcservice/slcservice.operations index e20169d..35bbb39 100644
--- a/dataengine/slcservice/slcservice.operations
+++ b/dataengine/slcservice/slcservice.operations
@@ -6,5 +6,14 @@
         <entry name="ActionName" type="String">
             <label>The name of the action to perform.</label>
         </entry>
+        <entry name="Url" type="String">
+            <label>Url of the resource we want to perform the action upon.</label>
+        </entry>
+        <entry name="Target" type="String">
+            <label>Extra text.</label>
+        </entry>
+        <entry name="Comment" type="String">
+            <label>Extra text.</label>
+        </entry>
     </group>
 </kcfg>


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

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