/***************************************************************************
- * 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 *
#include "bufferviewconfig.h"
#include "signalproxy.h"
+INIT_SYNCABLE_OBJECT(BufferViewManager)
BufferViewManager::BufferViewManager(SignalProxy *proxy, QObject *parent)
: SyncableObject(parent),
_proxy(proxy)
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 {