From e6c18670dbcb36a2a1b999327f657b8cdd77b78e Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Mon, 20 Sep 2010 09:52:26 +0000 Subject: add a QXmppTransferJob::speed() method to return the speed of a transfer --- src/QXmppTransferManager.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/QXmppTransferManager.cpp') diff --git a/src/QXmppTransferManager.cpp b/src/QXmppTransferManager.cpp index 74e0d549..d6fef54f 100644 --- a/src/QXmppTransferManager.cpp +++ b/src/QXmppTransferManager.cpp @@ -232,6 +232,19 @@ QString QXmppTransferJob::sid() const return m_sid; } +/// Returns the job's transfer speed in bytes per second. +/// +/// If the transfer has not started yet or is already finished, returns 0. +/// + +qint64 QXmppTransferJob::speed() const +{ + qint64 elapsed = m_transferStart.elapsed(); + if (m_state != QXmppTransferJob::TransferState || !elapsed) + return 0; + return (m_done * 1000.0) / elapsed; +} + /// Returns the job's state. /// @@ -245,6 +258,8 @@ void QXmppTransferJob::setState(QXmppTransferJob::State state) if (m_state != state) { m_state = state; + if (m_state == QXmppTransferJob::TransferState) + m_transferStart.start(); emit stateChanged(m_state); } } -- cgit v1.2.3