X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fclient.cpp;h=5319a9a60d518b50f283ce5184677520102e4d6a;hp=91165418b08a80658430b2baf8a4cb712df178b4;hb=be04b68a0f10891b81c07cdda204a9abc0ac56a7;hpb=f459864d268cfac32d94aec1cf17069fb8a1161b diff --git a/src/client/client.cpp b/src/client/client.cpp index 91165418..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,9 +416,12 @@ void Client::setSyncedToCore() _ignoreListManager = new ClientIgnoreListManager(this); p->synchronize(ignoreListManager()); - // create TransferManager if core supports it + // create TransferManager and DccConfig if core supports them + Q_ASSERT(!_dccConfig); Q_ASSERT(!_transferManager); if (coreFeatures() & Quassel::DccFileTransfer) { + _dccConfig = new DccConfig(this); + p->synchronize(dccConfig()); _transferManager = new ClientTransferManager(this); _transferModel->setManager(_transferManager); p->synchronize(transferManager()); @@ -498,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();