X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcommon%2Fbufferviewmanager.cpp;h=ba1b6c2c95be7bdf2c35c39d46fa8e2567f322a0;hb=d4b81a6d777de45611034b26bd89973d19e60c96;hp=64af01e23219792f9cf8a8d01eccd1085e36ae71;hpb=68878dc8366f2f4a0afe132847aad9a51a80cdbf;p=quassel.git diff --git a/src/common/bufferviewmanager.cpp b/src/common/bufferviewmanager.cpp index 64af01e2..ba1b6c2c 100644 --- a/src/common/bufferviewmanager.cpp +++ b/src/common/bufferviewmanager.cpp @@ -23,7 +23,6 @@ #include "bufferviewconfig.h" #include "signalproxy.h" -INIT_SYNCABLE_OBJECT(BufferViewManager) BufferViewManager::BufferViewManager(SignalProxy *proxy, QObject *parent) : SyncableObject(parent), _proxy(proxy) @@ -47,25 +46,28 @@ BufferViewConfig *BufferViewManager::bufferViewConfigFactory(int bufferViewConfi } -void BufferViewManager::addBufferViewConfig(BufferViewConfig *config) +void BufferViewManager::addBufferViewConfig(int bufferViewConfigId) { - if (_bufferViewConfigs.contains(config->bufferViewId())) + if (_bufferViewConfigs.contains(bufferViewConfigId)) { return; + } - _proxy->synchronize(config); - _bufferViewConfigs[config->bufferViewId()] = config; - int bufferViewId = config->bufferViewId(); - SYNC_OTHER(addBufferViewConfig, ARG(bufferViewId)) - emit bufferViewConfigAdded(bufferViewId); + addBufferViewConfig(bufferViewConfigFactory(bufferViewConfigId)); } -void BufferViewManager::addBufferViewConfig(int bufferViewConfigId) +void BufferViewManager::addBufferViewConfig(BufferViewConfig *config) { - if (_bufferViewConfigs.contains(bufferViewConfigId)) + if (_bufferViewConfigs.contains(config->bufferViewId())) { + delete config; return; + } - addBufferViewConfig(bufferViewConfigFactory(bufferViewConfigId)); + _proxy->synchronize(config); + _bufferViewConfigs[config->bufferViewId()] = config; + int bufferViewId = config->bufferViewId(); + SYNC_OTHER(addBufferViewConfig, ARG(bufferViewId)) + emit bufferViewConfigAdded(bufferViewId); } @@ -96,10 +98,7 @@ QVariantList BufferViewManager::initBufferViewIds() const void BufferViewManager::initSetBufferViewIds(const QVariantList bufferViewIds) { - QVariantList::const_iterator iter = bufferViewIds.constBegin(); - QVariantList::const_iterator iterEnd = bufferViewIds.constEnd(); - while (iter != iterEnd) { - newBufferViewConfig((*iter).value()); - ++iter; + for (auto &&id : bufferViewIds) { + addBufferViewConfig(id.value()); } }