[SCM] ktp-common-internals packaging branch, master, updated. debian/15.12.1-2-1839-gf0635e9
Maximiliano Curia
maxy at moszumanska.debian.org
Mon May 9 09:07:04 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-common-internals.git;a=commitdiff;h=a4e4e09
The following commit has been merged in the master branch:
commit a4e4e0905d65b3f70194fcb2f92f8ab3e8ea08ba
Author: Sven Brauch <svenbrauch at googlemail.com>
Date: Thu Aug 29 17:05:40 2013 +0200
Add actions for starting collaborative editing
REVIEW:112361
---
KTp/actions.cpp | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
KTp/actions.h | 14 +++++++++++++
2 files changed, 79 insertions(+)
diff --git a/KTp/actions.cpp b/KTp/actions.cpp
index df21dff..f410183 100644
--- a/KTp/actions.cpp
+++ b/KTp/actions.cpp
@@ -23,6 +23,7 @@
#include <TelepathyQt/Contact>
#include <TelepathyQt/PendingChannelRequest>
#include <TelepathyQt/PendingFailure>
+#include <TelepathyQt/ReferencedHandles>
#include <KMimeType>
#include <KToolInvocation>
@@ -176,3 +177,67 @@ void Actions::openLogViewer(const Tp::AccountPtr &account,
/* Use "--" so that KCmdLineArgs does not parse UIDs starting with "-" as arguments */
KToolInvocation::kdeinitExec(QLatin1String("ktp-log-viewer"), arguments);
}
+
+const QVariantMap createHintsForCollabRequest(const Actions::DocumentList& documents, bool needOpenEditor)
+{
+ QVariantMap hints;
+ hints.insert(QLatin1String("initialDocumentsSize"), documents.size());
+ for ( int i = 0; i < documents.size(); i++ ) {
+ const QString key(QLatin1String("initialDocument") + QString::number(i));
+ hints.insert(key, documents.at(i).fileName());
+ if ( needOpenEditor ) {
+ hints.insert(key + QLatin1String("_source"), documents.at(i).url());
+ }
+ }
+ if ( needOpenEditor ) {
+ hints.insert(QLatin1String("needToOpenDocument"), QVariant(true));
+ }
+ return hints;
+}
+
+Tp::PendingChannelRequest* createCollabRequest(const Tp::AccountPtr account,
+ const Actions::DocumentList documents,
+ QVariantMap requestBase,
+ bool needOpenEditor)
+{
+ QVariantMap hints = createHintsForCollabRequest(documents, needOpenEditor);
+
+ requestBase.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".ChannelType"),
+ TP_QT_IFACE_CHANNEL_TYPE_STREAM_TUBE);
+ requestBase.insert(TP_QT_IFACE_CHANNEL_TYPE_STREAM_TUBE + QLatin1String(".Service"),
+ QLatin1String("infinote"));
+
+ Tp::PendingChannelRequest* channelRequest;
+ channelRequest = account->ensureChannel(requestBase,
+ QDateTime::currentDateTime(),
+ QLatin1String("org.freedesktop.Telepathy.Client.KTp.infinoteServer"),
+ hints);
+
+ return channelRequest;
+}
+
+Tp::PendingChannelRequest* Actions::startCollaborativeEditing(const Tp::AccountPtr& account,
+ const Tp::ContactPtr& contact,
+ const DocumentList& documents,
+ bool needOpenEditor)
+{
+ QVariantMap request;
+ request.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".TargetHandleType"),
+ (uint) Tp::HandleTypeContact);
+ request.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".TargetHandle"),
+ contact->handle().at(0));
+ return createCollabRequest(account, documents, request, needOpenEditor);
+}
+
+Tp::PendingChannelRequest* Actions::startCollaborativeEditing(const Tp::AccountPtr& account,
+ const QString& chatroom,
+ const DocumentList& documents,
+ bool needOpenEditor)
+{
+ QVariantMap request;
+ request.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".TargetHandleType"),
+ (uint) Tp::HandleTypeRoom);
+ request.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".TargetID"),
+ chatroom);
+ return createCollabRequest(account, documents, request, needOpenEditor);
+}
diff --git a/KTp/actions.h b/KTp/actions.h
index 8546f51..7cd12ac 100644
--- a/KTp/actions.h
+++ b/KTp/actions.h
@@ -20,6 +20,7 @@
#define KTP_ACTIONS_H
#include <TelepathyQt/Types>
+#include <KUrl>
#include <KTp/ktp-export.h>
@@ -32,6 +33,8 @@ namespace KTp {
namespace Actions {
+ typedef QList<KUrl> DocumentList;
+
KTP_EXPORT Tp::PendingChannelRequest* startChat(const Tp::AccountPtr &account,
const Tp::ContactPtr &contact,
bool delegateToPreferredHandler = true);
@@ -56,6 +59,17 @@ namespace Actions {
const Tp::ContactPtr &contact,
const QUrl &url);
+ KTP_EXPORT Tp::PendingChannelRequest* startCollaborativeEditing(const Tp::AccountPtr& account,
+ const Tp::ContactPtr& contact,
+ const DocumentList& documents,
+ bool needOpenEditor=false);
+
+
+ KTP_EXPORT Tp::PendingChannelRequest* startCollaborativeEditing(const Tp::AccountPtr& account,
+ const QString& chatroom,
+ const DocumentList& documents,
+ bool needOpenEditor=false);
+
KTP_EXPORT void openLogViewer(const Tp::AccountPtr &account,
const Tp::ContactPtr &contact);
--
ktp-common-internals packaging
More information about the pkg-kde-commits
mailing list