[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:12:40 UTC 2016


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

The following commit has been merged in the master branch:
commit 599d2be1dd0f1cb3d203a862237db25649e6be63
Author: Dan Vrátil <dvratil at redhat.com>
Date:   Mon Jun 24 12:08:40 2013 +0200

    Add 'Always Ask' option for filetransfer destination directory
    
    When enabled in KCM, the IncommingFileTransferHandler will always ask for
    destination directory and filename. When the feature is disabled, the
    handler will always use the download directory as set in KCM.
    
    REVIEW: 111091
    BUG: 295937
    FIXED-IN: 0.7.0
---
 src/filetransfer-handler.cpp                      | 10 ++++++---
 src/handle-incoming-file-transfer-channel-job.cpp | 27 ++++++++++++++++++++++-
 src/handle-incoming-file-transfer-channel-job.h   |  3 ++-
 3 files changed, 35 insertions(+), 5 deletions(-)

diff --git a/src/filetransfer-handler.cpp b/src/filetransfer-handler.cpp
index 74c701e..a5fa677 100644
--- a/src/filetransfer-handler.cpp
+++ b/src/filetransfer-handler.cpp
@@ -81,12 +81,16 @@ void FileTransferHandler::handleChannels(const Tp::MethodInvocationContextPtr<>
             KSharedConfigPtr config = KSharedConfig::openConfig(QLatin1String("ktelepathyrc"));
             KConfigGroup filetransferConfig = config->group(QLatin1String("File Transfers"));
 
-            QString downloadDirectory = filetransferConfig.readPathEntry(QLatin1String("downloadDirectory"),
+            const bool alwaysAsk = filetransferConfig.readEntry(QLatin1String("alwaysAsk"), false);
+            QString downloadDirectory;
+            if (!alwaysAsk) {
+                downloadDirectory = filetransferConfig.readPathEntry(QLatin1String("downloadDirectory"),
                     QDir::homePath() + QLatin1String("/") + i18nc("This is the download directory in user's home", "Downloads"));
-            kDebug() << "Download directory:" << downloadDirectory;
+            }
+            kDebug() << "Download directory:" << downloadDirectory << "	 Always Ask:" << alwaysAsk;
             // TODO Check if directory exists
 
-            job = new HandleIncomingFileTransferChannelJob(incomingFileTransferChannel, downloadDirectory, this);
+            job = new HandleIncomingFileTransferChannelJob(incomingFileTransferChannel, downloadDirectory, alwaysAsk, this);
         } else {
             Tp::OutgoingFileTransferChannelPtr outgoingFileTransferChannel = Tp::OutgoingFileTransferChannelPtr::qObjectCast(channel);
             Q_ASSERT(outgoingFileTransferChannel);
diff --git a/src/handle-incoming-file-transfer-channel-job.cpp b/src/handle-incoming-file-transfer-channel-job.cpp
index 7a15237..91ffc73 100644
--- a/src/handle-incoming-file-transfer-channel-job.cpp
+++ b/src/handle-incoming-file-transfer-channel-job.cpp
@@ -26,6 +26,7 @@
 #include <KLocalizedString>
 #include <KDebug>
 #include <KUrl>
+#include <KFileDialog>
 #include <kio/renamedialog.h>
 #include <kio/global.h>
 #include <kjobtrackerinterface.h>
@@ -46,6 +47,7 @@ public:
 
     Tp::IncomingFileTransferChannelPtr channel;
     QString downloadDirectory;
+    bool askForDownloadDirectory;
     QFile* file;
     KUrl url, partUrl;
     qulonglong offset;
@@ -55,6 +57,7 @@ public:
     void init();
     void start();
     bool kill();
+    void checkFileExists();
     void checkPartFile();
     void receiveFile();
 
@@ -72,6 +75,7 @@ public:
 
 HandleIncomingFileTransferChannelJob::HandleIncomingFileTransferChannelJob(Tp::IncomingFileTransferChannelPtr channel,
                                                                            const QString downloadDirectory,
+                                                                           bool askForDownloadDirectory,
                                                                            QObject* parent)
     : TelepathyBaseJob(*new HandleIncomingFileTransferChannelJobPrivate(), parent)
 {
@@ -80,6 +84,7 @@ HandleIncomingFileTransferChannelJob::HandleIncomingFileTransferChannelJob(Tp::I
 
     d->channel = channel;
     d->downloadDirectory = downloadDirectory;
+    d->askForDownloadDirectory = askForDownloadDirectory;
     d->init();
 }
 
@@ -104,7 +109,8 @@ bool HandleIncomingFileTransferChannelJob::doKill()
 }
 
 HandleIncomingFileTransferChannelJobPrivate::HandleIncomingFileTransferChannelJobPrivate()
-    : file(0),
+    : askForDownloadDirectory(true),
+      file(0),
       offset(0),
       isResuming(false)
 {
@@ -168,6 +174,24 @@ void HandleIncomingFileTransferChannelJobPrivate::start()
         return;
     }
 
+    if (askForDownloadDirectory) {
+        url = KFileDialog::getSaveUrl(KUrl(QLatin1String("kfiledialog:///FileTransferLastDirectory/") + channel->fileName()),
+                                      QString(), 0, QString(), KFileDialog::ConfirmOverwrite);
+        partUrl = url.directory();
+        partUrl.addPath(url.fileName() + QLatin1String(".part"));
+        partUrl.setScheme(QLatin1String("file"));
+
+        checkPartFile();
+        return;
+    }
+
+    checkFileExists();
+}
+
+void HandleIncomingFileTransferChannelJobPrivate::checkFileExists()
+{
+    Q_Q(HandleIncomingFileTransferChannelJob);
+
     url = downloadDirectory;
     url.addPath(channel->fileName());
     url.setScheme(QLatin1String("file"));
@@ -200,6 +224,7 @@ void HandleIncomingFileTransferChannelJobPrivate::start()
         renameDialog.data()->show();
         return;
     }
+
     checkPartFile();
 }
 
diff --git a/src/handle-incoming-file-transfer-channel-job.h b/src/handle-incoming-file-transfer-channel-job.h
index d5e53c4..0495357 100644
--- a/src/handle-incoming-file-transfer-channel-job.h
+++ b/src/handle-incoming-file-transfer-channel-job.h
@@ -50,7 +50,8 @@ class HandleIncomingFileTransferChannelJob : public KTp::TelepathyBaseJob
 
 public:
     HandleIncomingFileTransferChannelJob(Tp::IncomingFileTransferChannelPtr channel,
-                                         const QString outputFileName,
+                                         const QString downloadDirectory,
+                                         bool askForDownloadDirectory,
                                          QObject* parent = 0);
     virtual ~HandleIncomingFileTransferChannelJob();
 

-- 
ktp-filetransfer-handler packaging



More information about the pkg-kde-commits mailing list