X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fclientbufferviewmanager.cpp;h=504604f5ce1b6fab538f1cb08cc29108a40ffacb;hp=315c2a8e03c44c3f41fe39fe980a050d0aa3db51;hb=02b4f33429788d35500454bfb5a8a9ab0a2a2b49;hpb=09cc362cca645192f04aaac58953e1f1bace6d59 diff --git a/src/client/clientbufferviewmanager.cpp b/src/client/clientbufferviewmanager.cpp index 315c2a8e..504604f5 100644 --- a/src/client/clientbufferviewmanager.cpp +++ b/src/client/clientbufferviewmanager.cpp @@ -21,11 +21,13 @@ #include "clientbufferviewmanager.h" #include "clientbufferviewconfig.h" +#include "client.h" +#include "networkmodel.h" +INIT_SYNCABLE_OBJECT(ClientBufferViewManager) ClientBufferViewManager::ClientBufferViewManager(SignalProxy *proxy, QObject *parent) : BufferViewManager(proxy, parent) { - connect(this, SIGNAL(initDone()), this, SLOT(waitForConfigInit())); } BufferViewConfig *ClientBufferViewManager::bufferViewConfigFactory(int bufferViewConfigId) { @@ -44,27 +46,12 @@ ClientBufferViewConfig *ClientBufferViewManager::clientBufferViewConfig(int buff return static_cast(bufferViewConfig(bufferViewId)); } -void ClientBufferViewManager::waitForConfigInit() { - bool initialized = true; - foreach(BufferViewConfig *config, bufferViewConfigs()) { - initialized &= config->isInitialized(); - if(config->isInitialized()) - continue; - connect(config, SIGNAL(initDone()), this, SLOT(configInitBarrier())); - } - if(initialized) - QMetaObject::invokeMethod(this, "viewsInitialized", Qt::QueuedConnection); -} - -void ClientBufferViewManager::configInitBarrier() { - BufferViewConfig *config = qobject_cast(sender()); - Q_ASSERT(config); - disconnect(config, SIGNAL(initDone()), this, SLOT(configInitBarrier())); - - bool initialized = true; - foreach(BufferViewConfig *config, bufferViewConfigs()) { - initialized &= config->isInitialized(); +void ClientBufferViewManager::setInitialized() { + if(bufferViewConfigs().isEmpty()) { + BufferViewConfig config(-1); + config.setBufferViewName(tr("All Chats")); + config.initSetBufferList(Client::networkModel()->allBufferIdsSorted()); + requestCreateBufferView(config.toVariantMap()); } - if(initialized) - QMetaObject::invokeMethod(this, "viewsInitialized", Qt::QueuedConnection); + BufferViewManager::setInitialized(); }