diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2011-06-05 12:35:56 +0000 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2011-06-05 12:35:56 +0000 |
| commit | b6f639c39e33743b71561113fa006dae1738a674 (patch) | |
| tree | 9517b3024ce15d84eb0c3bd4d017e7f3c4c4db33 /src | |
| parent | fdae4dc93f9e6dd2b94ee2018ac9b7d6d91e1761 (diff) | |
| download | qxmpp-b6f639c39e33743b71561113fa006dae1738a674.tar.gz | |
add some signals
Diffstat (limited to 'src')
| -rw-r--r-- | src/QXmppTransferManager.cpp | 20 | ||||
| -rw-r--r-- | src/QXmppTransferManager.h | 23 |
2 files changed, 29 insertions, 14 deletions
diff --git a/src/QXmppTransferManager.cpp b/src/QXmppTransferManager.cpp index ca0bbbbe..baa5d4aa 100644 --- a/src/QXmppTransferManager.cpp +++ b/src/QXmppTransferManager.cpp @@ -982,16 +982,16 @@ void QXmppTransferManager::jobError(QXmppTransferJob::Error error) } } -void QXmppTransferManager::jobFinished() +void QXmppTransferManager::onJobFinished() { QXmppTransferJob *job = qobject_cast<QXmppTransferJob *>(sender()); if (!job || !m_jobs.contains(job)) return; - emit finished(job); + emit jobFinished(job); } -void QXmppTransferManager::jobStateChanged(QXmppTransferJob::State state) +void QXmppTransferManager::onJobStateChanged(QXmppTransferJob::State state) { QXmppTransferJob *job = qobject_cast<QXmppTransferJob *>(sender()); if (!job || !m_jobs.contains(job)) @@ -1001,7 +1001,7 @@ void QXmppTransferManager::jobStateChanged(QXmppTransferJob::State state) return; // disconnect from the signal - disconnect(job, SIGNAL(stateChanged(QXmppTransferJob::State)), this, SLOT(jobStateChanged(QXmppTransferJob::State))); + disconnect(job, SIGNAL(stateChanged(QXmppTransferJob::State)), this, SLOT(onJobStateChanged(QXmppTransferJob::State))); // the job was refused by the local party if (state != QXmppTransferJob::StartState || !job->d->iodevice || !job->d->iodevice->isWritable()) @@ -1054,6 +1054,9 @@ void QXmppTransferManager::jobStateChanged(QXmppTransferJob::State state) response.setSiItems(feature); client()->sendPacket(response); + + // notify user + emit jobStarted(job); } /// Send file to a remote party. @@ -1186,7 +1189,7 @@ QXmppTransferJob *QXmppTransferManager::sendFile(const QString &jid, QIODevice * m_jobs.append(job); connect(job, SIGNAL(destroyed(QObject*)), this, SLOT(jobDestroyed(QObject*))); connect(job, SIGNAL(error(QXmppTransferJob::Error)), this, SLOT(jobError(QXmppTransferJob::Error))); - connect(job, SIGNAL(finished()), this, SLOT(jobFinished())); + connect(job, SIGNAL(finished()), this, SLOT(onJobFinished())); QXmppStreamInitiationIq request; request.setType(QXmppIq::Set); @@ -1197,6 +1200,9 @@ QXmppTransferJob *QXmppTransferManager::sendFile(const QString &jid, QIODevice * job->d->requestId = request.id(); client()->sendPacket(request); + // notify user + emit jobStarted(job); + return job; } @@ -1437,8 +1443,8 @@ void QXmppTransferManager::streamInitiationSetReceived(const QXmppStreamInitiati // register job m_jobs.append(job); connect(job, SIGNAL(destroyed(QObject*)), this, SLOT(jobDestroyed(QObject*))); - connect(job, SIGNAL(finished()), this, SLOT(jobFinished())); - connect(job, SIGNAL(stateChanged(QXmppTransferJob::State)), this, SLOT(jobStateChanged(QXmppTransferJob::State))); + connect(job, SIGNAL(finished()), this, SLOT(onJobFinished())); + connect(job, SIGNAL(stateChanged(QXmppTransferJob::State)), this, SLOT(onJobStateChanged(QXmppTransferJob::State))); // allow user to accept or decline the job emit fileReceived(job); diff --git a/src/QXmppTransferManager.h b/src/QXmppTransferManager.h index 45df48e9..b44bdb3c 100644 --- a/src/QXmppTransferManager.h +++ b/src/QXmppTransferManager.h @@ -76,7 +76,8 @@ private: class QXmppTransferJob : public QXmppLoggable { Q_OBJECT - Q_ENUMS(Direction Error Method State) + Q_ENUMS(Direction Error State) + Q_FLAGS(Method Methods) Q_PROPERTY(Direction direction READ direction CONSTANT) Q_PROPERTY(QUrl localFileUrl READ localFileUrl WRITE setLocalFileUrl NOTIFY localFileUrlChanged) Q_PROPERTY(QString jid READ jid CONSTANT) @@ -213,11 +214,12 @@ private: class QXmppTransferManager : public QXmppClientExtension { Q_OBJECT + Q_PROPERTY(QString proxy READ proxy WRITE setProxy) + Q_PROPERTY(bool proxyOnly READ proxyOnly WRITE setProxyOnly) + Q_PROPERTY(QXmppTransferJob::Methods supportedMethods READ supportedMethods WRITE setSupportedMethods) public: QXmppTransferManager(); - QXmppTransferJob *sendFile(const QString &jid, const QString &filePath, const QString &sid = QString()); - QXmppTransferJob *sendFile(const QString &jid, QIODevice *device, const QXmppTransferFileInfo &fileInfo, const QString &sid = QString()); QString proxy() const; void setProxy(const QString &proxyJid); @@ -238,12 +240,19 @@ signals: /// /// To accept the transfer job, call the job's QXmppTransferJob::accept() method. /// To refuse the transfer job, call the job's QXmppTransferJob::abort() method. - void fileReceived(QXmppTransferJob *offer); + void fileReceived(QXmppTransferJob *job); + + /// This signal is emitted whenever a transfer job is started. + void jobStarted(QXmppTransferJob *job); /// This signal is emitted whenever a transfer job is finished. /// /// \sa QXmppTransferJob::finished() - void finished(QXmppTransferJob *job); + void jobFinished(QXmppTransferJob *job); + +public slots: + QXmppTransferJob *sendFile(const QString &jid, const QString &filePath, const QString &sid = QString()); + QXmppTransferJob *sendFile(const QString &jid, QIODevice *device, const QXmppTransferFileInfo &fileInfo, const QString &sid = QString()); protected: /// \cond @@ -254,8 +263,8 @@ private slots: void iqReceived(const QXmppIq&); void jobDestroyed(QObject *object); void jobError(QXmppTransferJob::Error error); - void jobFinished(); - void jobStateChanged(QXmppTransferJob::State state); + void onJobFinished(); + void onJobStateChanged(QXmppTransferJob::State state); void socksServerConnected(QTcpSocket *socket, const QString &hostName, quint16 port); private: |
