/***************************************************************************
- * Copyright (C) 2005-08 by the Quassel Project *
+ * Copyright (C) 2005-2020 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
* 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 "corebufferviewmanager.h"
+#include "core.h"
#include "corebufferviewconfig.h"
+#include "coresession.h"
-CoreBufferViewManager::CoreBufferViewManager(SignalProxy *proxy, QObject *parent)
- : BufferViewManager(proxy, parent)
+CoreBufferViewManager::CoreBufferViewManager(SignalProxy* proxy, CoreSession* parent)
+ : BufferViewManager(proxy, parent)
+ , _coreSession(parent)
{
- return;
- // fill in some demo views
- CoreBufferViewConfig *config = 0;
- for(int i = 0; i < 10; i++) {
- config = new CoreBufferViewConfig(i);
- config->setBufferViewName(QString("asdf%1").arg(i));
- addBufferViewConfig(config);
- }
+ QVariantMap views = Core::getUserSetting(_coreSession->user(), "BufferViews").toMap();
+ QVariantMap::iterator iter = views.begin();
+ QVariantMap::iterator iterEnd = views.end();
+ CoreBufferViewConfig* config = nullptr;
+ while (iter != iterEnd) {
+ config = new CoreBufferViewConfig(iter.key().toInt(), iter.value().toMap(), this);
+ addBufferViewConfig(config);
+ ++iter;
+ }
}
-void CoreBufferViewManager::requestCreateBufferView(const QString &bufferViewName) {
- // FIXME retreive new Id from database or whereever this stuff will be stored
- 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);
- config->setBufferViewName(bufferViewName);
- addBufferViewConfig(config);
+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)
+{
+ QVariantList::const_iterator iter = properties.constBegin();
+ QVariantList::const_iterator iterEnd = properties.constEnd();
+ while (iter != iterEnd) {
+ requestCreateBufferView((*iter).toMap());
+ ++iter;
+ }
+}
+
+void CoreBufferViewManager::requestDeleteBufferView(int bufferViewId)
+{
+ deleteBufferViewConfig(bufferViewId);
+}
+
+void CoreBufferViewManager::requestDeleteBufferViews(const QVariantList& bufferViews)
+{
+ foreach (QVariant bufferView, bufferViews) {
+ deleteBufferViewConfig(bufferView.toInt());
+ }
}