[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> \
¶meters, 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> ¶meters)
{
- 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