[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:16 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-filetransfer-handler.git;a=commitdiff;h=cccaa8b
The following commit has been merged in the master branch:
commit cccaa8bf4295a73d039890b9a0b21ad5fd075caa
Author: Daniele E. Domenichelli <daniele.domenichelli at gmail.com>
Date: Tue Jun 7 11:19:03 2011 +0200
Exit after 2 seconds if no channels are received
Also add --persist command line option to avoid exiting
---
TODO | 1 -
src/filetransfer-handler.cpp | 24 ++++++++++++++++++++----
src/filetransfer-handler.h | 7 ++++++-
src/main.cpp | 6 +++++-
4 files changed, 31 insertions(+), 7 deletions(-)
diff --git a/TODO b/TODO
index 94b409c..4aaab23 100644
--- a/TODO
+++ b/TODO
@@ -1,5 +1,4 @@
General:
- * Exit after a couple of seconds if no other file transfer is received
* Use Nepomuk describeResource and storeResource to send somehow an additional
trig or rdf file.
* Stop transfer button.
diff --git a/src/filetransfer-handler.cpp b/src/filetransfer-handler.cpp
index 592a0ef..fd6badb 100644
--- a/src/filetransfer-handler.cpp
+++ b/src/filetransfer-handler.cpp
@@ -37,11 +37,15 @@
#include <KNotification>
#include <kio/global.h>
#include <kjobtrackerinterface.h>
+#include <QApplication>
-FileTransferHandler::FileTransferHandler(QObject *parent) : QObject(parent),
- Tp::AbstractClientHandler(Tp::ChannelClassSpecList() << Tp::ChannelClassSpec::incomingFileTransfer()
- << Tp::ChannelClassSpec::outgoingFileTransfer())
+FileTransferHandler::FileTransferHandler(bool persist, QObject *parent)
+ : QObject(parent),
+ Tp::AbstractClientHandler(Tp::ChannelClassSpecList() << Tp::ChannelClassSpec::incomingFileTransfer()
+ << Tp::ChannelClassSpec::outgoingFileTransfer()),
+ m_persist(persist),
+ m_jobCount(0)
{
}
@@ -77,6 +81,7 @@ void FileTransferHandler::handleChannels(const Tp::MethodInvocationContextPtr<>
KJob* job = NULL;
if (Tp::IncomingFileTransferChannelPtr incomingFileTransferChannel = Tp::IncomingFileTransferChannelPtr::dynamicCast(channel)) {
+ m_jobCount.fetchAndAddOrdered(1);
context->setFinished();
kDebug() << "Incoming File Transfer";
@@ -96,6 +101,7 @@ void FileTransferHandler::handleChannels(const Tp::MethodInvocationContextPtr<>
context->setFinishedWithError(QLatin1String(TELEPATHY_QT4_ERROR_INCONSISTENT),
QLatin1String("Cannot handle outgoing file transfer without URI"));
}
+ m_jobCount.fetchAndAddOrdered(1);
context->setFinished();
job = new HandleOutgoingFileTransferChannelJob(outgoingFileTransferChannel, this);
} else {
@@ -133,4 +139,14 @@ void FileTransferHandler::handleResult(KJob* job)
kWarning() << job->errorString();
// TODO do something;
}
-}
\ No newline at end of file
+
+ QTimer::singleShot(2000, this, SLOT(onTimeout()));
+}
+
+void FileTransferHandler::onTimeout()
+{
+ if (!m_persist && m_jobCount.fetchAndAddOrdered(-1) <= 1) {
+ kDebug() << "Exiting";
+ QApplication::quit();
+ }
+}
diff --git a/src/filetransfer-handler.h b/src/filetransfer-handler.h
index d01c308..6fd6c4b 100644
--- a/src/filetransfer-handler.h
+++ b/src/filetransfer-handler.h
@@ -33,7 +33,7 @@ class FileTransferHandler : public QObject, public Tp::AbstractClientHandler
Q_DISABLE_COPY(FileTransferHandler);
public:
- FileTransferHandler(QObject* parent = 0);
+ FileTransferHandler(bool persist, QObject* parent = 0);
virtual ~FileTransferHandler();
virtual bool bypassApproval() const;
@@ -45,11 +45,16 @@ public:
const QDateTime &userActionTime,
const Tp::AbstractClientHandler::HandlerInfo &handlerInfo);
+public Q_SLOTS:
+ void onTimeout();
+
private Q_SLOTS:
void onInfoMessage(KJob* job, const QString &plain, const QString &rich);
void handleResult(KJob* job);
private:
+ bool m_persist;
+ QAtomicInt m_jobCount;
};
#endif // TELEPATHY_KDE_FILETRANSFER_HANDLER_H
diff --git a/src/main.cpp b/src/main.cpp
index 0bfc682..fa83a4f 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -37,6 +37,7 @@ int main(int argc, char* argv[])
// Add --debug as commandline option
KCmdLineOptions options;
options.add("debug", ki18n("Show telepathy debugging information"));
+ options.add("persist", ki18n("Persistant mode (doesn't exit on timeout)"));
KCmdLineArgs::addCmdLineOptions(options);
KCmdLineArgs::init(argc, argv, &aboutData);
@@ -64,9 +65,12 @@ int main(int argc, char* argv[])
channelFactory,
contactFactory);
- Tp::SharedPtr<FileTransferHandler> fth = Tp::SharedPtr<FileTransferHandler>(new FileTransferHandler);
+ Tp::SharedPtr<FileTransferHandler> fth = Tp::SharedPtr<FileTransferHandler>(
+ new FileTransferHandler(KCmdLineArgs::parsedArgs()->isSet("persist")));
registrar->registerClient(Tp::AbstractClientPtr(fth),
QLatin1String("KDE.FileTransfer"));
+ QTimer::singleShot(2000, fth.data(), SLOT(onTimeout()));
+
return app.exec();
}
--
ktp-filetransfer-handler packaging
More information about the pkg-kde-commits
mailing list