X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fbufferviewmanager.cpp;h=42cb6ad1ca3bbc93e1140ed77041da833f87c079;hp=7ab9831f5f94f49062cc32d724b1c113bd40a404;hb=f6b9eeda207d42c99fc3e9085631722cf2ec83dc;hpb=4e0445e459c690cfa6013c5ad574e94f9214827b diff --git a/src/common/bufferviewmanager.cpp b/src/common/bufferviewmanager.cpp index 7ab9831f..42cb6ad1 100644 --- a/src/common/bufferviewmanager.cpp +++ b/src/common/bufferviewmanager.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-08 by the Quassel Project * + * Copyright (C) 2005-09 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -23,6 +23,7 @@ #include "bufferviewconfig.h" #include "signalproxy.h" +INIT_SYNCABLE_OBJECT(BufferViewManager) BufferViewManager::BufferViewManager(SignalProxy *proxy, QObject *parent) : SyncableObject(parent), _proxy(proxy) @@ -37,20 +38,36 @@ BufferViewConfig *BufferViewManager::bufferViewConfig(int bufferViewId) const { return 0; } +BufferViewConfig *BufferViewManager::bufferViewConfigFactory(int bufferViewConfigId) { + return new BufferViewConfig(bufferViewConfigId, this); +} + void BufferViewManager::addBufferViewConfig(BufferViewConfig *config) { if(_bufferViewConfigs.contains(config->bufferViewId())) return; _proxy->synchronize(config); _bufferViewConfigs[config->bufferViewId()] = config; - emit bufferViewConfigAdded(config->bufferViewId()); + int bufferViewId = config->bufferViewId(); + SYNC_OTHER(addBufferViewConfig, ARG(bufferViewId)) + emit bufferViewConfigAdded(bufferViewId); } void BufferViewManager::addBufferViewConfig(int bufferViewConfigId) { if(_bufferViewConfigs.contains(bufferViewConfigId)) return; - addBufferViewConfig(new BufferViewConfig(bufferViewConfigId, this)); + addBufferViewConfig(bufferViewConfigFactory(bufferViewConfigId)); +} + +void BufferViewManager::deleteBufferViewConfig(int bufferViewConfigId) { + if(!_bufferViewConfigs.contains(bufferViewConfigId)) + return; + + _bufferViewConfigs[bufferViewConfigId]->deleteLater(); + _bufferViewConfigs.remove(bufferViewConfigId); + SYNC(ARG(bufferViewConfigId)) + emit bufferViewConfigDeleted(bufferViewConfigId); } QVariantList BufferViewManager::initBufferViewIds() const {