[SCM] ktp-filetransfer-handler packaging branch, master, updated. debian/15.12.1-2-226-g825cd93

Maximiliano Curia maxy at moszumanska.debian.org
Sat May 28 00:11:44 UTC 2016


Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-filetransfer-handler.git;a=commitdiff;h=7145916

The following commit has been merged in the master branch:
commit 7145916f8d015b2cc4924dce94b91b2fac1ba521
Author: Daniele E. Domenichelli <daniele.domenichelli at gmail.com>
Date:   Wed Sep 28 19:35:46 2011 +0100

    Fix setting description for the file transfer
    
    KWidgetJobTracker has an internal timer of 500 ms, if we don't wait
    before emitting job desctription it won't be ready and the description
    won't be set.
---
 src/handle-incoming-file-transfer-channel-job.cpp | 36 +++++++++++++----------
 src/handle-incoming-file-transfer-channel-job.h   |  3 ++
 src/handle-outgoing-file-transfer-channel-job.cpp | 23 ++++++++-------
 src/handle-outgoing-file-transfer-channel-job.h   |  3 ++
 4 files changed, 40 insertions(+), 25 deletions(-)

diff --git a/src/handle-incoming-file-transfer-channel-job.cpp b/src/handle-incoming-file-transfer-channel-job.cpp
index 7a86c6b..12ac404 100644
--- a/src/handle-incoming-file-transfer-channel-job.cpp
+++ b/src/handle-incoming-file-transfer-channel-job.cpp
@@ -50,8 +50,9 @@ class HandleIncomingFileTransferChannelJobPrivate : public KTelepathy::Telepathy
         QFile* file;
 
         void init();
-        void start();
-        bool kill();
+
+        void __k__start();
+        bool __k__kill();
 
         void __k__onSetUriOperationFinished(Tp::PendingOperation* op);
         void __k__onFileTransferChannelStateChanged(Tp::FileTransferState state, Tp::FileTransferStateChangeReason reason);
@@ -82,15 +83,17 @@ HandleIncomingFileTransferChannelJob::~HandleIncomingFileTransferChannelJob()
 void HandleIncomingFileTransferChannelJob::start()
 {
     kDebug();
-    Q_D(HandleIncomingFileTransferChannelJob);
-    d->start();
+    KIO::getJobTracker()->registerJob(this);
+    // KWidgetJobTracker has an internal timer of 500 ms, if we don't wait here
+    // when the job description is emitted it won't be ready
+    QTimer::singleShot(500, this, SLOT(__k__start()));
 }
 
 bool HandleIncomingFileTransferChannelJob::doKill()
 {
     kDebug();
-    Q_D(HandleIncomingFileTransferChannelJob);
-    return d->kill();
+    QTimer::singleShot(0, this, SLOT(__k__kill()));
+    return true;
 }
 
 HandleIncomingFileTransferChannelJobPrivate::HandleIncomingFileTransferChannelJobPrivate()
@@ -128,9 +131,9 @@ void HandleIncomingFileTransferChannelJobPrivate::init()
         return;
     }
 
-    KIO::getJobTracker()->registerJob(q);
     q->setCapabilities(KJob::Killable);
     q->setTotalAmount(KJob::Bytes, channel->size());
+    q->setProcessedAmount(KJob::Bytes, 0);
 
     q->connect(channel.data(),
                SIGNAL(invalidated(Tp::DBusProxy *, const QString &, const QString &)),
@@ -143,7 +146,7 @@ void HandleIncomingFileTransferChannelJobPrivate::init()
                SLOT(__k__onFileTransferChannelTransferredBytesChanged(qulonglong)));
 }
 
-void HandleIncomingFileTransferChannelJobPrivate::start()
+void HandleIncomingFileTransferChannelJobPrivate::__k__start()
 {
     kDebug();
     Q_Q(HandleIncomingFileTransferChannelJob);
@@ -160,6 +163,11 @@ void HandleIncomingFileTransferChannelJobPrivate::start()
     url.setScheme(QLatin1String("file"));
     kDebug() << "File name:" << url;
 
+    // We set the description here and then whe update it if path is changed.
+    Q_EMIT q->description(q, i18n("Incoming file transfer"),
+                          qMakePair<QString, QString>(i18n("From"), channel->targetContact()->alias()),
+                          qMakePair<QString, QString>(i18n("Filename"), url.toLocalFile()));
+
     QFileInfo fileInfo(url.toLocalFile());
     if (fileInfo.exists()) // TODO check if it is a dir?
     {
@@ -193,6 +201,10 @@ void HandleIncomingFileTransferChannelJobPrivate::start()
                 return;
             case KIO::R_RENAME:
                 url = renameDialog.data()->newDestUrl();
+                // url is changed, we update it here
+                Q_EMIT q->description(q, i18n("Incoming file transfer"),
+                                      qMakePair<QString, QString>(i18n("From"), channel->targetContact()->alias()),
+                                      qMakePair<QString, QString>(i18n("Filename"), url.toLocalFile()));
                 break;
             case KIO::R_OVERWRITE:
                 break;
@@ -214,19 +226,13 @@ void HandleIncomingFileTransferChannelJobPrivate::start()
     file = new QFile(url.toLocalFile(), q->parent());
     kDebug() << "Saving file as" << file->fileName();
 
-    // We must emit the description here and not later because if
-    // setUriOperation fails and we won't know there the file is saved.
-    Q_EMIT q->description(q, i18n("Incoming file transfer"),
-                          qMakePair<QString, QString>(i18n("From"), channel->targetContact()->alias()),
-                          qMakePair<QString, QString>(i18n("Filename"), url.toLocalFile()));
-
     Tp::PendingOperation* setUriOperation = channel->setUri(url.url());
     q->connect(setUriOperation,
                SIGNAL(finished(Tp::PendingOperation*)),
                SLOT(__k__onSetUriOperationFinished(Tp::PendingOperation*)));
 }
 
-bool HandleIncomingFileTransferChannelJobPrivate::kill()
+bool HandleIncomingFileTransferChannelJobPrivate::__k__kill()
 {
     kDebug();
     Q_Q(HandleIncomingFileTransferChannelJob);
diff --git a/src/handle-incoming-file-transfer-channel-job.h b/src/handle-incoming-file-transfer-channel-job.h
index 1198677..d2fa6f6 100644
--- a/src/handle-incoming-file-transfer-channel-job.h
+++ b/src/handle-incoming-file-transfer-channel-job.h
@@ -37,6 +37,9 @@ class HandleIncomingFileTransferChannelJob : public KTelepathy::TelepathyBaseJob
     Q_DECLARE_PRIVATE(HandleIncomingFileTransferChannelJob)
 
 //     // Our Q_PRIVATE_SLOTS who perform the real job
+    Q_PRIVATE_SLOT(d_func(), void __k__start())
+    Q_PRIVATE_SLOT(d_func(), void __k__kill())
+
     Q_PRIVATE_SLOT(d_func(), void __k__onSetUriOperationFinished(Tp::PendingOperation* op))
     Q_PRIVATE_SLOT(d_func(), void __k__onFileTransferChannelStateChanged(Tp::FileTransferState state, Tp::FileTransferStateChangeReason reason))
     Q_PRIVATE_SLOT(d_func(), void __k__onFileTransferChannelTransferredBytesChanged(qulonglong count))
diff --git a/src/handle-outgoing-file-transfer-channel-job.cpp b/src/handle-outgoing-file-transfer-channel-job.cpp
index 365d30a..b8b206f 100644
--- a/src/handle-outgoing-file-transfer-channel-job.cpp
+++ b/src/handle-outgoing-file-transfer-channel-job.cpp
@@ -20,7 +20,7 @@
 #include "handle-outgoing-file-transfer-channel-job.h"
 #include "telepathy-base-job_p.h"
 
-#include <QTimer>
+#include <QtCore/QTimer>
 
 #include <KLocalizedString>
 #include <KDebug>
@@ -46,10 +46,11 @@ class HandleOutgoingFileTransferChannelJobPrivate : public KTelepathy::Telepathy
         KUrl uri;
 
         void init();
-        void start();
-        bool kill();
         void provideFile();
 
+        void __k__start();
+        bool __k__kill();
+
         void __k__onFileTransferChannelStateChanged(Tp::FileTransferState state, Tp::FileTransferStateChangeReason reason);
         void __k__onFileTransferChannelTransferredBytesChanged(qulonglong count);
         void __k__onProvideFileFinished(Tp::PendingOperation* op);
@@ -76,15 +77,17 @@ HandleOutgoingFileTransferChannelJob::~HandleOutgoingFileTransferChannelJob()
 void HandleOutgoingFileTransferChannelJob::start()
 {
     kDebug();
-    Q_D(HandleOutgoingFileTransferChannelJob);
-    d->start();
+    KIO::getJobTracker()->registerJob(this);
+    // KWidgetJobTracker has an internal timer of 500 ms, if we don't wait here
+    // when the job description is emitted it won't be ready
+    QTimer::singleShot(500, this, SLOT(__k__start()));
 }
 
 bool HandleOutgoingFileTransferChannelJob::doKill()
 {
     kDebug();
-    Q_D(HandleOutgoingFileTransferChannelJob);
-    return d->kill();
+    QTimer::singleShot(0, this, SLOT(__k__kill()));
+    return true;
 }
 
 HandleOutgoingFileTransferChannelJobPrivate::HandleOutgoingFileTransferChannelJobPrivate()
@@ -141,9 +144,9 @@ void HandleOutgoingFileTransferChannelJobPrivate::init()
         return;
     }
 
-    KIO::getJobTracker()->registerJob(q);
     q->setCapabilities(KJob::Killable);
     q->setTotalAmount(KJob::Bytes, channel->size());
+    q->setProcessedAmount(KJob::Bytes, 0);
 
     q->connect(channel.data(),
                SIGNAL(invalidated(Tp::DBusProxy *, const QString &, const QString &)),
@@ -156,7 +159,7 @@ void HandleOutgoingFileTransferChannelJobPrivate::init()
                SLOT(__k__onFileTransferChannelTransferredBytesChanged(qulonglong)));
 }
 
-void HandleOutgoingFileTransferChannelJobPrivate::start()
+void HandleOutgoingFileTransferChannelJobPrivate::__k__start()
 {
     kDebug();
     Q_Q(HandleOutgoingFileTransferChannelJob);
@@ -177,7 +180,7 @@ void HandleOutgoingFileTransferChannelJobPrivate::start()
     }
 }
 
-bool HandleOutgoingFileTransferChannelJobPrivate::kill()
+bool HandleOutgoingFileTransferChannelJobPrivate::__k__kill()
 {
     kDebug();
     Q_Q(HandleOutgoingFileTransferChannelJob);
diff --git a/src/handle-outgoing-file-transfer-channel-job.h b/src/handle-outgoing-file-transfer-channel-job.h
index 6d0a634..5d576ad 100644
--- a/src/handle-outgoing-file-transfer-channel-job.h
+++ b/src/handle-outgoing-file-transfer-channel-job.h
@@ -43,6 +43,9 @@ class HandleOutgoingFileTransferChannelJob : public KTelepathy::TelepathyBaseJob
     Q_PRIVATE_SLOT(d_func(), void __k__onCancelOperationFinished(Tp::PendingOperation* op))
     Q_PRIVATE_SLOT(d_func(), void __k__onInvalidated())
 
+    Q_PRIVATE_SLOT(d_func(), void __k__start())
+    Q_PRIVATE_SLOT(d_func(), void __k__kill())
+
 public:
     explicit HandleOutgoingFileTransferChannelJob(Tp::OutgoingFileTransferChannelPtr channel,
                                                   QObject* parent = 0);

-- 
ktp-filetransfer-handler packaging



More information about the pkg-kde-commits mailing list