diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-09-30 08:48:39 +0000 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-09-30 08:48:39 +0000 |
| commit | 1ddc6a696ef58e85569f762f2be21d54afcd48a0 (patch) | |
| tree | 8e1f65eb1e5c51ba4480696488e041a56b09d463 /src/QXmppClient.cpp | |
| parent | 99779f6c24cb5164cc2749dac7301e0818eded55 (diff) | |
| download | qxmpp-1ddc6a696ef58e85569f762f2be21d54afcd48a0.tar.gz | |
* make addExtension / removeExtension return a boolean
* document removeExtension
Diffstat (limited to 'src/QXmppClient.cpp')
| -rw-r--r-- | src/QXmppClient.cpp | 30 |
1 files changed, 21 insertions, 9 deletions
diff --git a/src/QXmppClient.cpp b/src/QXmppClient.cpp index 4fc9f04a..ed126496 100644 --- a/src/QXmppClient.cpp +++ b/src/QXmppClient.cpp @@ -243,8 +243,14 @@ QXmppClient::~QXmppClient() /// /// \param extension -void QXmppClient::addExtension(QXmppClientExtension* extension) +bool QXmppClient::addExtension(QXmppClientExtension* extension) { + if (d->extensions.contains(extension)) + { + qWarning("Cannot add extension, it has already been added"); + return false; + } + extension->setParent(this); extension->setClient(this); @@ -258,18 +264,24 @@ void QXmppClient::addExtension(QXmppClientExtension* extension) d->stream->addFeatures(extension->discoveryFeatures()); d->extensions << extension; + return true; } -void QXmppClient::removeExtension(QXmppClientExtension* extension) +/// Unregisters the given extension from the client. If the extension +/// is found, it will be destroyed. +/// +/// \param extension + +bool QXmppClient::removeExtension(QXmppClientExtension* extension) { - QList<QXmppClientExtension*> list = extensions(); - for (int i = 0; i < list.size(); ++i) + if (d->extensions.contains(extension)) { - if(extension == list.at(i)) - { - list.takeAt(i); - delete extension; - } + d->extensions.removeAll(extension); + delete extension; + return true; + } else { + qWarning("Cannot remove extension, it was never added"); + return false; } } |
