X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fclientbufferviewmanager.cpp;h=7f7cda11c51ef2cc85fb2b8ba1b0578cbd32d822;hp=315c2a8e03c44c3f41fe39fe980a050d0aa3db51;hb=e3c42d072b2b8f39c8c9ea44dfc3bded87ae43b0;hpb=09cc362cca645192f04aaac58953e1f1bace6d59 diff --git a/src/client/clientbufferviewmanager.cpp b/src/client/clientbufferviewmanager.cpp index 315c2a8e..7f7cda11 100644 --- a/src/client/clientbufferviewmanager.cpp +++ b/src/client/clientbufferviewmanager.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-08 by the Quassel Project * + * Copyright (C) 2005-2013 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -15,56 +15,51 @@ * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ #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) + : BufferViewManager(proxy, parent) { - connect(this, SIGNAL(initDone()), this, SLOT(waitForConfigInit())); } -BufferViewConfig *ClientBufferViewManager::bufferViewConfigFactory(int bufferViewConfigId) { - return new ClientBufferViewConfig(bufferViewConfigId, this); -} -QList ClientBufferViewManager::clientBufferViewConfigs() const { - QList clientConfigs; - foreach(BufferViewConfig *config, bufferViewConfigs()) { - clientConfigs << static_cast(config); - } - return clientConfigs; +BufferViewConfig *ClientBufferViewManager::bufferViewConfigFactory(int bufferViewConfigId) +{ + return new ClientBufferViewConfig(bufferViewConfigId, this); } -ClientBufferViewConfig *ClientBufferViewManager::clientBufferViewConfig(int bufferViewId) const { - return static_cast(bufferViewConfig(bufferViewId)); + +QList ClientBufferViewManager::clientBufferViewConfigs() const +{ + QList clientConfigs; + foreach(BufferViewConfig *config, bufferViewConfigs()) { + clientConfigs << static_cast(config); + } + return clientConfigs; } -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); + +ClientBufferViewConfig *ClientBufferViewManager::clientBufferViewConfig(int bufferViewId) const +{ + return static_cast(bufferViewConfig(bufferViewId)); } -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(); - } - if(initialized) - QMetaObject::invokeMethod(this, "viewsInitialized", Qt::QueuedConnection); +void ClientBufferViewManager::setInitialized() +{ + if (bufferViewConfigs().isEmpty()) { + BufferViewConfig config(-1); + config.setBufferViewName(tr("All Chats")); + config.initSetBufferList(Client::networkModel()->allBufferIdsSorted()); + requestCreateBufferView(config.toVariantMap()); + } + BufferViewManager::setInitialized(); }