/***************************************************************************
- * Copyright (C) 2005-08 by the Quassel Project *
+ * Copyright (C) 2005-2019 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. *
***************************************************************************/
-#ifndef BUFFERVIEWCONFIG_H
-#define BUFFERVIEWCONFIG_H
+#pragma once
-#include "syncableobject.h"
+#include "common-export.h"
+#include "bufferinfo.h"
+#include "syncableobject.h"
#include "types.h"
-class BufferViewConfig : public SyncableObject {
- Q_OBJECT
- Q_PROPERTY(QString bufferViewName READ bufferViewName WRITE setBufferViewName)
- Q_PROPERTY(NetworkId networkId READ networkId WRITE setNetworkId)
- Q_PROPERTY(bool addNewBuffersAutomatically READ addNewBuffersAutomatically WRITE setAddNewBuffersAutomatically)
- Q_PROPERTY(bool sortAlphabetically READ sortAlphabetically WRITE setSortAlphabetically)
- Q_PROPERTY(bool hideInactiveBuffers READ hideInactiveBuffers WRITE setHideInactiveBuffers)
- Q_PROPERTY(int allowedBufferTypes READ allowedBufferTypes WRITE setAllowedBufferTypes)
- Q_PROPERTY(int minimumActivity READ minimumActivity WRITE setMinimumActivity)
+class COMMON_EXPORT BufferViewConfig : public SyncableObject
+{
+ Q_OBJECT
+ SYNCABLE_OBJECT
+
+ Q_PROPERTY(QString bufferViewName READ bufferViewName WRITE setBufferViewName)
+ Q_PROPERTY(NetworkId networkId READ networkId WRITE setNetworkId)
+ Q_PROPERTY(bool addNewBuffersAutomatically READ addNewBuffersAutomatically WRITE setAddNewBuffersAutomatically)
+ Q_PROPERTY(bool sortAlphabetically READ sortAlphabetically WRITE setSortAlphabetically)
+ Q_PROPERTY(bool hideInactiveBuffers READ hideInactiveBuffers WRITE setHideInactiveBuffers)
+ Q_PROPERTY(bool hideInactiveNetworks READ hideInactiveNetworks WRITE setHideInactiveNetworks)
+ Q_PROPERTY(bool disableDecoration READ disableDecoration WRITE setDisableDecoration)
+ Q_PROPERTY(int allowedBufferTypes READ allowedBufferTypes WRITE setAllowedBufferTypes)
+ Q_PROPERTY(int minimumActivity READ minimumActivity WRITE setMinimumActivity)
+ Q_PROPERTY(bool showSearch READ showSearch WRITE setShowSearch)
public:
- BufferViewConfig(int bufferViewId, QObject *parent = 0);
- BufferViewConfig(int bufferViewId, const QVariantMap &properties, QObject *parent = 0);
+ BufferViewConfig(int bufferViewId, QObject* parent = nullptr);
+ BufferViewConfig(int bufferViewId, const QVariantMap& properties, QObject* parent = nullptr);
+public:
+ int bufferViewId() const;
+ QString bufferViewName() const;
+ NetworkId networkId() const;
+ bool addNewBuffersAutomatically() const;
+ bool sortAlphabetically() const;
+ bool disableDecoration() const;
+ int allowedBufferTypes() const;
+ int minimumActivity() const;
+ bool hideInactiveBuffers() const;
+ bool hideInactiveNetworks() const;
+ bool showSearch() const;
+
+ QList<BufferId> bufferList() const;
+ QSet<BufferId> removedBuffers() const;
+ QSet<BufferId> temporarilyRemovedBuffers() const;
public slots:
- inline int bufferViewId() const { return _bufferViewId; }
-
- inline const QString &bufferViewName() const { return _bufferViewName; }
- void setBufferViewName(const QString &bufferViewName);
-
- inline const NetworkId &networkId() const { return _networkId; }
- void setNetworkId(const NetworkId &networkId);
-
- inline bool addNewBuffersAutomatically() const { return _addNewBuffersAutomatically; }
- void setAddNewBuffersAutomatically(bool addNewBuffersAutomatically);
+ QVariantList initBufferList() const;
+ void initSetBufferList(const QVariantList& buffers);
+
+ QVariantList initRemovedBuffers() const;
+ void initSetRemovedBuffers(const QVariantList& buffers);
+
+ QVariantList initTemporarilyRemovedBuffers() const;
+ void initSetTemporarilyRemovedBuffers(const QVariantList& buffers);
+
+ void setBufferViewName(const QString& bufferViewName);
+ void setNetworkId(const NetworkId& networkId);
+ void setAddNewBuffersAutomatically(bool addNewBuffersAutomatically);
+ void setSortAlphabetically(bool sortAlphabetically);
+ void setDisableDecoration(bool disableDecoration);
+ void setAllowedBufferTypes(int bufferTypes);
+ void setMinimumActivity(int activity);
+ void setHideInactiveBuffers(bool hideInactiveBuffers);
+ void setHideInactiveNetworks(bool hideInactiveNetworks);
+ void setShowSearch(bool showSearch);
+
+ void setBufferList(const QList<BufferId>& buffers);
+
+ void addBuffer(const BufferId& bufferId, int pos);
+ void moveBuffer(const BufferId& bufferId, int pos);
+ void removeBuffer(const BufferId& bufferId);
+ void removeBufferPermanently(const BufferId& bufferId);
+
+ virtual void requestSetBufferViewName(const QString& bufferViewName);
+ virtual void requestAddBuffer(const BufferId& bufferId, int pos);
+ virtual void requestMoveBuffer(const BufferId& bufferId, int pos);
+ virtual void requestRemoveBuffer(const BufferId& bufferId);
+ virtual void requestRemoveBufferPermanently(const BufferId& bufferId);
- inline bool sortAlphabetically() const { return _sortAlphabetically; }
- void setSortAlphabetically(bool sortAlphabetically);
-
- inline int allowedBufferTypes() const { return _allowedBufferTypes; }
- void setAllowedBufferTypes(int bufferTypes);
-
- inline int minimumActivity() const { return _minimumActivity; }
- void setMinimumActivity(int activity);
-
- inline bool hideInactiveBuffers() const { return _hideInactiveBuffers; }
- void setHideInactiveBuffers(bool hideInactiveBuffers);
-
- virtual inline void requestSetBufferViewName(const QString &bufferViewName) { emit setBufferViewNameRequested(bufferViewName); }
+signals:
+ void configChanged();
- const QList<BufferId> &bufferList() const { return _buffers; }
- QVariantList initBufferList() const;
- void initSetBufferList(const QVariantList &buffers);
- void initSetBufferList(const QList<BufferId> &buffers);
+ void bufferViewNameSet(const QString& bufferViewName);
+ void networkIdSet(const NetworkId& networkId);
+ void bufferListSet();
- void addBuffer(const BufferId &bufferId, int pos);
- virtual inline void requestAddBuffer(const BufferId &bufferId, int pos) { emit addBufferRequested(bufferId, pos); }
- void moveBuffer(const BufferId &bufferId, int pos);
- virtual inline void requestMoveBuffer(const BufferId &bufferId, int pos) { emit moveBufferRequested(bufferId, pos); }
- void removeBuffer(const BufferId &bufferId);
- virtual inline void requestRemoveBuffer(const BufferId &bufferId) { emit removeBufferRequested(bufferId); }
-
-signals:
- void bufferViewNameSet(const QString &bufferViewName);
- void networkIdSet(const NetworkId &networkId);
- void addNewBuffersAutomaticallySet(bool addNewBuffersAutomatically);
- void sortAlphabeticallySet(bool sortAlphabetically);
- void allowedBufferTypesSet(int allowedBufferTypes);
- void minimumActivitySet(int activity);
- void hideInactiveBuffersSet(bool hideInactiveBuffers);
- void bufferListSet();
-
- void bufferAdded(const BufferId &bufferId, int pos);
- void addBufferRequested(const BufferId &bufferId, int pos);
- void bufferMoved(const BufferId &bufferId, int pos);
- void moveBufferRequested(const BufferId &bufferId, int pos);
- void bufferRemoved(const BufferId &bufferId);
- void removeBufferRequested(const BufferId &bufferId);
-
- void setBufferViewNameRequested(const QString &bufferViewName);
+ void bufferAdded(const BufferId& bufferId, int pos);
+ void bufferMoved(const BufferId& bufferId, int pos);
+ void bufferRemoved(const BufferId& bufferId);
+ void bufferPermanentlyRemoved(const BufferId& bufferId);
private:
- int _bufferViewId;
- QString _bufferViewName;
- NetworkId _networkId;
- bool _addNewBuffersAutomatically;
- bool _sortAlphabetically;
- bool _hideInactiveBuffers;
- int _allowedBufferTypes;
- int _minimumActivity;
- QList<BufferId> _buffers;
+ int _bufferViewId = 0; ///< ID of the associated BufferView
+ QString _bufferViewName = {}; ///< Display name of the associated BufferView
+ NetworkId _networkId = {}; ///< Network ID this buffer belongs to
+
+ bool _addNewBuffersAutomatically = true; ///< Automatically add new buffers when created
+ bool _sortAlphabetically = true; ///< Sort buffers alphabetically
+ bool _hideInactiveBuffers = false; ///< Hide buffers without activity
+ bool _hideInactiveNetworks = false; ///< Hide networks without activity
+ bool _disableDecoration = false; ///< Disable buffer decoration (not fully implemented)
+ /// Buffer types allowed within this view
+ int _allowedBufferTypes = (BufferInfo::StatusBuffer | BufferInfo::ChannelBuffer | BufferInfo::QueryBuffer | BufferInfo::GroupBuffer);
+ int _minimumActivity = 0; ///< Minimum activity for a buffer to show
+ bool _showSearch = false; ///< Persistently show the buffer search UI
+
+ QList<BufferId> _buffers;
+ QSet<BufferId> _removedBuffers;
+ QSet<BufferId> _temporarilyRemovedBuffers;
};
-
-#endif // BUFFERVIEWCONFIG_H