X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fbufferviewmanager.h;h=c066d77d643bf115072beb2ed9182afb727dbba8;hp=143b400044c13cc154cf9753d4180c0268b747f5;hb=8582c2ad5708a1972c85bea1cf8d81ad3ece4814;hpb=4e0445e459c690cfa6013c5ad574e94f9214827b diff --git a/src/common/bufferviewmanager.h b/src/common/bufferviewmanager.h index 143b4000..c066d77d 100644 --- a/src/common/bufferviewmanager.h +++ b/src/common/bufferviewmanager.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-08 by the Quassel Project * + * Copyright (C) 2005-2018 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -15,11 +15,12 @@ * 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. * ***************************************************************************/ -#ifndef BUFFERVIEWMANAGER_H -#define BUFFERVIEWMANAGER_H +#pragma once + +#include "common-export.h" #include "syncableobject.h" @@ -29,36 +30,45 @@ class BufferViewConfig; class SignalProxy; -class BufferViewManager : public SyncableObject { - Q_OBJECT +class COMMON_EXPORT BufferViewManager : public SyncableObject +{ + Q_OBJECT + SYNCABLE_OBJECT public: - BufferViewManager(SignalProxy *proxy, QObject *parent = 0); + BufferViewManager(SignalProxy *proxy, QObject *parent = nullptr); - inline QList bufferViewConfigs() const { return _bufferViewConfigs.values(); } - BufferViewConfig *bufferViewConfig(int bufferViewId) const; + inline QList bufferViewConfigs() const { return _bufferViewConfigs.values(); } + BufferViewConfig *bufferViewConfig(int bufferViewId) const; public slots: - void addBufferViewConfig(BufferViewConfig *config); - void addBufferViewConfig(int bufferViewConfigId); - inline void newBufferViewConfig(int bufferViewConfigId) { addBufferViewConfig(bufferViewConfigId); } + QVariantList initBufferViewIds() const; + void initSetBufferViewIds(const QVariantList bufferViewIds); - QVariantList initBufferViewIds() const; - void initSetBufferViewIds(const QVariantList bufferViewIds); + void addBufferViewConfig(int bufferViewConfigId); + void deleteBufferViewConfig(int bufferViewConfigId); - virtual inline void requestCreateBufferView(const QString &bufferViewName) { emit createBufferViewRequested(bufferViewName); } + virtual inline void requestCreateBufferView(const QVariantMap &properties) { REQUEST(ARG(properties)) } + virtual inline void requestCreateBufferViews(const QVariantList &properties) { REQUEST(ARG(properties)) } + virtual inline void requestDeleteBufferView(int bufferViewId) { REQUEST(ARG(bufferViewId)) } + virtual inline void requestDeleteBufferViews(const QVariantList &bufferViews) { REQUEST(ARG(bufferViews)) } signals: - void bufferViewConfigAdded(int bufferViewConfigId); - void createBufferViewRequested(const QString &bufferViewName); + void bufferViewConfigAdded(int bufferViewConfigId); + void bufferViewConfigDeleted(int bufferViewConfigId); +// void createBufferViewRequested(const QVariantMap &properties); +// void createBufferViewsRequested(const QVariantList &properties); +// void deleteBufferViewRequested(int bufferViewId); +// void deleteBufferViewsRequested(const QVariantList &bufferViews); protected: - typedef QHash BufferViewConfigHash; - inline const BufferViewConfigHash &bufferViewConfigHash() { return _bufferViewConfigs; } + using BufferViewConfigHash = QHash; + inline const BufferViewConfigHash &bufferViewConfigHash() { return _bufferViewConfigs; } + virtual BufferViewConfig *bufferViewConfigFactory(int bufferViewConfigId); + + void addBufferViewConfig(BufferViewConfig *config); private: - BufferViewConfigHash _bufferViewConfigs; - SignalProxy *_proxy; + BufferViewConfigHash _bufferViewConfigs; + SignalProxy *_proxy; }; - -#endif // BUFFERVIEWMANAGER_H