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 BufferViewManager::addBufferViewConfig(int bufferViewConfigId)
{
    if (_bufferViewConfigs.contains(bufferViewConfigId))
        return;

    addBufferViewConfig(bufferViewConfigFactory(bufferViewConfigId));
}
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++;

    CoreBufferViewConfig *config = new CoreBufferViewConfig(maxId, properties);
    addBufferViewConfig(config);
}
void BufferViewManager::initSetBufferViewIds(const QVariantList bufferViewIds)
{
    for (auto&& id : bufferViewIds) {
        addBufferViewConfig(id.value<int>());
    }
}