X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fquasselui.h;fp=src%2Fclient%2Fquasselui.h;h=e6e38591b1438c94c1eb5efb62d15b1842a0efa5;hp=0a855fc2e3242eacee7180cb8a6727cfb18dce1f;hb=4fc9a40ac1c6f34116cea134d4bfee8569e01c25;hpb=a680b6fd6d62e39f9bc197ad856d9b438f179ba4 diff --git a/src/client/quasselui.h b/src/client/quasselui.h index 0a855fc2..e6e38591 100644 --- a/src/client/quasselui.h +++ b/src/client/quasselui.h @@ -24,8 +24,13 @@ #include #include "message.h" +class MessageFilter; class MessageModel; class AbstractMessageProcessor; +class AbstractActionProvider; + +class QAction; +class QMenu; class AbstractUi : public QObject { Q_OBJECT @@ -36,6 +41,7 @@ class AbstractUi : public QObject { virtual void init() {}; // called after the client is initialized virtual MessageModel *createMessageModel(QObject *parent) = 0; virtual AbstractMessageProcessor *createMessageProcessor(QObject *parent) = 0; + virtual AbstractActionProvider *actionProvider() const = 0; inline static bool isVisible() { return _visible; } inline static void setVisible(bool visible) { _visible = visible; } @@ -53,4 +59,22 @@ class AbstractUi : public QObject { static bool _visible; }; +class AbstractActionProvider : public QObject { + Q_OBJECT + + public: + AbstractActionProvider(QObject *parent = 0) : QObject(parent) {} + virtual ~AbstractActionProvider() {} + + virtual void addActions(QMenu *, const QModelIndex &index, QObject *receiver = 0, const char *method = 0, bool allowBufferHide = false) = 0; + virtual void addActions(QMenu *, const QList &indexList, QObject *receiver = 0, const char *method = 0, bool allowBufferHide = false) = 0; + virtual void addActions(QMenu *, BufferId id, QObject *receiver = 0, const char *method = 0) = 0; + virtual void addActions(QMenu *, MessageFilter *filter, QObject *receiver = 0, const char *method = 0) = 0; + + signals: + void showChannelList(NetworkId); + void showIgnoreList(NetworkId); + +}; + #endif