Quassel IRC  Pre-Release
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros
corebufferviewmanager.cpp
Go to the documentation of this file.
1 /***************************************************************************
2  * Copyright (C) 2005-2015 by the Quassel Project *
3  * devel@quassel-irc.org *
4  * *
5  * This program is free software; you can redistribute it and/or modify *
6  * it under the terms of the GNU General Public License as published by *
7  * the Free Software Foundation; either version 2 of the License, or *
8  * (at your option) version 3. *
9  * *
10  * This program is distributed in the hope that it will be useful, *
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13  * GNU General Public License for more details. *
14  * *
15  * You should have received a copy of the GNU General Public License *
16  * along with this program; if not, write to the *
17  * Free Software Foundation, Inc., *
18  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
19  ***************************************************************************/
20 
21 #include "corebufferviewmanager.h"
22 
23 #include "corebufferviewconfig.h"
24 
25 #include "core.h"
26 #include "coresession.h"
27 
30  : BufferViewManager(proxy, parent),
31  _coreSession(parent)
32 {
33  QVariantMap views = Core::getUserSetting(_coreSession->user(), "BufferViews").toMap();
34  QVariantMap::iterator iter = views.begin();
35  QVariantMap::iterator iterEnd = views.end();
36  CoreBufferViewConfig *config = 0;
37  while (iter != iterEnd) {
38  config = new CoreBufferViewConfig(iter.key().toInt(), iter.value().toMap(), this);
39  addBufferViewConfig(config);
40  iter++;
41  }
42 }
43 
44 
46 {
47  QVariantMap views;
48 
49  BufferViewConfigHash::const_iterator iter = bufferViewConfigHash().constBegin();
50  BufferViewConfigHash::const_iterator iterEnd = bufferViewConfigHash().constEnd();
51  while (iter != iterEnd) {
52  views[QString::number((*iter)->bufferViewId())] = (*iter)->toVariantMap();
53  iter++;
54  }
55 
56  Core::setUserSetting(_coreSession->user(), "BufferViews", views);
57 }
58 
59 
60 void CoreBufferViewManager::requestCreateBufferView(const QVariantMap &properties)
61 {
62  QString bufferViewName = properties["bufferViewName"].toString();
63  int maxId = -1;
64  BufferViewConfigHash::const_iterator iter = bufferViewConfigHash().constBegin();
65  BufferViewConfigHash::const_iterator iterEnd = bufferViewConfigHash().constEnd();
66  while (iter != iterEnd) {
67  if ((*iter)->bufferViewName() == bufferViewName)
68  return;
69 
70  if ((*iter)->bufferViewId() > maxId)
71  maxId = (*iter)->bufferViewId();
72 
73  iter++;
74  }
75  maxId++;
76 
77  CoreBufferViewConfig *config = new CoreBufferViewConfig(maxId, properties);
78  addBufferViewConfig(config);
79 }
80 
81 
82 void CoreBufferViewManager::requestCreateBufferViews(const QVariantList &properties)
83 {
84  QVariantList::const_iterator iter = properties.constBegin();
85  QVariantList::const_iterator iterEnd = properties.constEnd();
86  while (iter != iterEnd) {
87  requestCreateBufferView((*iter).toMap());
88  iter++;
89  }
90 }
91 
92 
94 {
95  deleteBufferViewConfig(bufferViewId);
96 }
97 
98 
99 void CoreBufferViewManager::requestDeleteBufferViews(const QVariantList &bufferViews)
100 {
101  foreach(QVariant bufferView, bufferViews) {
102  deleteBufferViewConfig(bufferView.toInt());
103  }
104 }