X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fclient%2Fclient.cpp;h=5319a9a60d518b50f283ce5184677520102e4d6a;hb=f77a0b720ed58a2b68876b9320742b81b6df871f;hp=9449fbb48b2b9ebe2f0f91c6e012757aa588d2f9;hpb=7b8a28df7c0dfab0d5691e75b1932be9f4209c17;p=quassel.git diff --git a/src/client/client.cpp b/src/client/client.cpp index 9449fbb4..5319a9a6 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -38,6 +38,7 @@ #include "clientuserinputhandler.h" #include "coreaccountmodel.h" #include "coreconnection.h" +#include "dccconfig.h" #include "ircchannel.h" #include "ircuser.h" #include "message.h" @@ -101,6 +102,7 @@ Client::Client(QObject *parent) _backlogManager(new ClientBacklogManager(this)), _bufferViewManager(0), _bufferViewOverlay(new BufferViewOverlay(this)), + _dccConfig(0), _ircListHelper(new ClientIrcListHelper(this)), _inputHandler(0), _networkConfig(0), @@ -414,10 +416,16 @@ void Client::setSyncedToCore() _ignoreListManager = new ClientIgnoreListManager(this); p->synchronize(ignoreListManager()); + // create TransferManager and DccConfig if core supports them + Q_ASSERT(!_dccConfig); Q_ASSERT(!_transferManager); - _transferManager = new ClientTransferManager(this); - _transferModel->setManager(_transferManager); - p->synchronize(transferManager()); + if (coreFeatures() & Quassel::DccFileTransfer) { + _dccConfig = new DccConfig(this); + p->synchronize(dccConfig()); + _transferManager = new ClientTransferManager(this); + _transferModel->setManager(_transferManager); + p->synchronize(transferManager()); + } // trigger backlog request once all active bufferviews are initialized connect(bufferViewOverlay(), SIGNAL(initDone()), this, SLOT(requestInitialBacklog())); @@ -495,6 +503,11 @@ void Client::setDisconnectedFromCore() _transferManager = nullptr; } + if (_dccConfig) { + _dccConfig->deleteLater(); + _dccConfig = nullptr; + } + // we probably don't want to save pending input for reconnect _userInputBuffer.clear();