- ContextMenuActionProvider(QObject *parent = 0);
- ~ContextMenuActionProvider();
-
- // don't change enums without doublechecking masks etc. in code
- enum ActionType {
- // Network actions
- NetworkMask = 0x0f,
- NetworkConnect = 0x01,
- NetworkDisconnect = 0x02,
-
- // Buffer actions
- BufferMask = 0xf0,
- BufferJoin = 0x10,
- BufferPart = 0x20,
- BufferSwitchTo = 0x30,
- BufferRemove = 0x40,
-
- // Hide actions
- HideMask = 0x0f00,
- HideJoin = 0x0100,
- HidePart = 0x0200,
- HideQuit = 0x0300,
- HideNick = 0x0400,
- HideMode = 0x0500,
- HideDayChange = 0x0600,
- HideUseDefaults = 0xe00,
- HideApplyToAll = 0xf00,
-
- // General actions
- GeneralMask = 0xf000,
- JoinChannel = 0x1000,
- ShowChannelList = 0x2000,
- ShowIgnoreList = 0x3000,
-
- // Nick actions
- NickMask = 0xff0000,
- NickWhois = 0x010000,
- NickQuery = 0x020000,
- NickSwitchTo = 0x030000,
- NickCtcpVersion = 0x040000,
- NickCtcpPing = 0x050000,
- NickCtcpTime = 0x060000,
- NickCtcpFinger = 0x070000,
- NickOp = 0x080000,
- NickDeop = 0x090000,
- NickVoice = 0x0a0000,
- NickDevoice = 0x0b0000,
- NickKick = 0x0c0000,
- NickBan = 0x0d0000,
- NickKickBan = 0x0e0000,
-
- // Actions that are handled externally
- // These emit a signal to the action requester, rather than being handled here
- ExternalMask = 0xff000000,
- HideBufferTemporarily = 0x01000000,
- HideBufferPermanently = 0x02000000
- };
-
- inline Action *action(ActionType type) const;
-
- //! Provide a list of actions applying to the given item
- /**
- * Note that this list ist not persistent, hence it should only be used immediately after
- * calling this function (e.g. in a context menu). Optionally one can provide a QObject and a slot
- * (that should take a QAction * as parameter) that is invoked for actions that require external
- * handling.
- * @param index The item index in the NetworkModel
- * @param receiver The optional object that is notified for actions that need to be handled externally.
- * The action type will be stored in the QAction's data().
- * @param slot The receiving slot name; should be "mySlot" rather than SLOT(mySlot(QAction *))
- * @return A list of actions applying to the given item
- */
- void addActions(QMenu *, const QModelIndex &index, QObject *receiver = 0, const char *slot = 0, bool allowBufferHide = false);
- void addActions(QMenu *, const QList<QModelIndex> &indexList, QObject *receiver = 0, const char *slot = 0, bool allowBufferHide = false);
- void addActions(QMenu *, BufferId id, QObject *receiver = 0, const char *slot = 0);
- void addActions(QMenu *, MessageFilter *filter, BufferId msgBuffer, QObject *receiver = 0, const char *slot = 0);
- void addActions(QMenu *, MessageFilter *filter, BufferId msgBuffer, const QString &chanOrNick, QObject *receiver = 0, const char *slot = 0);
-
-signals:
- void showChannelList(NetworkId);
- void showIgnoreList(NetworkId);
-
-protected:
- inline ActionCollection *actionCollection() const;
-
-protected slots:
- void actionTriggered(QAction *);
+ ContextMenuActionProvider(QObject *parent = 0);
+ virtual ~ContextMenuActionProvider();
+
+ //! Provide a list of actions applying to the given item
+ /**
+ * Note that this list ist not persistent, hence it should only be used immediately after
+ * calling this function (e.g. in a context menu). Optionally one can provide a QObject and a slot
+ * (that should take a QAction * as parameter) that is invoked for actions that require external
+ * handling.
+ * @param index The item index in the NetworkModel
+ * @param receiver The optional object that is notified for actions that need to be handled externally.
+ * The action type will be stored in the QAction's data().
+ * @param slot The receiving slot name; should be "mySlot" rather than SLOT(mySlot(QAction *))
+ * @return A list of actions applying to the given item
+ */
+ void addActions(QMenu *, const QModelIndex &index, QObject *receiver = 0, const char *slot = 0, bool allowBufferHide = false);
+ void addActions(QMenu *, const QList<QModelIndex> &indexList, QObject *receiver = 0, const char *slot = 0, bool allowBufferHide = false);
+ void addActions(QMenu *, BufferId id, QObject *receiver = 0, const char *slot = 0);
+ void addActions(QMenu *, MessageFilter *filter, BufferId msgBuffer, QObject *receiver = 0, const char *slot = 0);
+ void addActions(QMenu *, MessageFilter *filter, BufferId msgBuffer, const QString &chanOrNick, QObject *receiver = 0, const char *slot = 0);