#include "clientbufferviewmanager.h"
-#include "bufferviewoverlay.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) {
return static_cast<ClientBufferViewConfig *>(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)
- emit viewsInitialized();
-}
-
-void ClientBufferViewManager::configInitBarrier() {
- BufferViewConfig *config = qobject_cast<BufferViewConfig *>(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)
- emit viewsInitialized();
+ BufferViewManager::setInitialized();
}