+
+ void on_collapse(const QModelIndex &index);
+ void on_expand(const QModelIndex &index);
+ void on_configChanged();
+
+private:
+ enum ItemActiveState {
+ InactiveState = 0x01,
+ ActiveState = 0x02
+ };
+
+public:
+ Q_DECLARE_FLAGS(ItemActiveStates, ItemActiveState)
+ QAction showChannelList;
+
+private:
+ QPointer<BufferViewConfig> _config;
+
+ QAction _connectNetAction;
+ QAction _disconnectNetAction;
+ QAction _joinChannelAction;
+
+ QAction _joinBufferAction;
+ QAction _partBufferAction;
+ QAction _hideBufferTemporarilyAction;
+ QAction _hideBufferPermanentlyAction;
+ QAction _removeBufferAction;
+ QAction _ignoreListAction;
+
+ QAction _hideJoinAction;
+ QAction _hidePartAction;
+ QAction _hideKillAction;
+ QAction _hideQuitAction;
+ QAction _hideModeAction;
+
+ QHash<NetworkId, bool> _expandedState;
+
+ void storeExpandedState(NetworkId networkId, bool expanded);
+
+ bool checkRequirements(const QModelIndex &index,
+ ItemActiveStates requiredActiveState = QFlags<ItemActiveState>(ActiveState) | QFlags<ItemActiveState>(InactiveState));
+ void addItemToMenu(QAction &action, QMenu &menu, const QModelIndex &index,
+ ItemActiveStates requiredActiveState = QFlags<ItemActiveState>(ActiveState) | QFlags<ItemActiveState>(InactiveState));
+ void addItemToMenu(QAction &action, QMenu &menu, bool condition = true);
+ void addItemToMenu(QMenu &subMenu, QMenu &menu, const QModelIndex &index,
+ ItemActiveStates requiredActiveState = QFlags<ItemActiveState>(ActiveState) | QFlags<ItemActiveState>(InactiveState));
+ void addSeparatorToMenu(QMenu &menu, const QModelIndex &index,
+ ItemActiveStates requiredActiveState = QFlags<ItemActiveState>(ActiveState) | QFlags<ItemActiveState>(InactiveState));
+ QMenu *createHideEventsSubMenu(QMenu &menu);