[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