aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2011-06-05 12:35:56 +0000
committerJeremy Lainé <jeremy.laine@m4x.org>2011-06-05 12:35:56 +0000
commitb6f639c39e33743b71561113fa006dae1738a674 (patch)
tree9517b3024ce15d84eb0c3bd4d017e7f3c4c4db33 /src
parentfdae4dc93f9e6dd2b94ee2018ac9b7d6d91e1761 (diff)
downloadqxmpp-b6f639c39e33743b71561113fa006dae1738a674.tar.gz
add some signals
Diffstat (limited to 'src')
-rw-r--r--src/QXmppTransferManager.cpp20
-rw-r--r--src/QXmppTransferManager.h23
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: