+#include "core.h"
+#include "coresession.h"
+
+INIT_SYNCABLE_OBJECT(CoreBufferViewManager)
+CoreBufferViewManager::CoreBufferViewManager(SignalProxy *proxy, CoreSession *parent)
+ : BufferViewManager(proxy, parent),
+ _coreSession(parent)
+{
+ QVariantMap views = Core::getUserSetting(_coreSession->user(), "BufferViews").toMap();
+ QVariantMap::iterator iter = views.begin();
+ QVariantMap::iterator iterEnd = views.end();
+ CoreBufferViewConfig *config = 0;
+ while (iter != iterEnd) {
+ config = new CoreBufferViewConfig(iter.key().toInt(), iter.value().toMap(), this);
+ addBufferViewConfig(config);
+ ++iter;
+ }
+}
+
+
+void CoreBufferViewManager::saveBufferViews()
+{
+ QVariantMap views;
+
+ BufferViewConfigHash::const_iterator iter = bufferViewConfigHash().constBegin();
+ BufferViewConfigHash::const_iterator iterEnd = bufferViewConfigHash().constEnd();
+ while (iter != iterEnd) {
+ views[QString::number((*iter)->bufferViewId())] = (*iter)->toVariantMap();
+ ++iter;
+ }
+
+ Core::setUserSetting(_coreSession->user(), "BufferViews", views);
+}
+
+
+void CoreBufferViewManager::requestCreateBufferView(const QVariantMap &properties)
+{
+ QString bufferViewName = properties["bufferViewName"].toString();
+ int maxId = -1;
+ BufferViewConfigHash::const_iterator iter = bufferViewConfigHash().constBegin();
+ BufferViewConfigHash::const_iterator iterEnd = bufferViewConfigHash().constEnd();
+ while (iter != iterEnd) {
+ if ((*iter)->bufferViewName() == bufferViewName)
+ return;
+
+ if ((*iter)->bufferViewId() > maxId)
+ maxId = (*iter)->bufferViewId();
+
+ ++iter;
+ }
+ maxId++;
+
+ addBufferViewConfig(new CoreBufferViewConfig(maxId, properties, this));
+}
+
+
+void CoreBufferViewManager::requestCreateBufferViews(const QVariantList &properties)