Don't show migration warnings if we don't have old settings to migrate
[quassel.git] / src / client / quasselui.h
index dac64be..a1b45c7 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-08 by the Quassel Project                          *
+ *   Copyright (C) 2005-09 by the Quassel Project                          *
  *   devel@quassel-irc.org                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
 #include <QObject>
 #include "message.h"
 
+class MessageFilter;
 class MessageModel;
 class AbstractMessageProcessor;
+class AbstractActionProvider;
+
+class QAction;
+class QMenu;
 
 class AbstractUi : public QObject {
   Q_OBJECT
 
   public:
+    AbstractUi();
+    virtual ~AbstractUi() {};
     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; }
+    inline static bool isVisible() { return _visible; }
+    inline static void setVisible(bool visible) { _visible = visible; }
 
   protected slots:
     virtual void connectedToCore() {}
@@ -46,8 +54,28 @@ class AbstractUi : public QObject {
     void connectToCore(const QVariantMap &connInfo);
     void disconnectFromCore();
 
-private:
-  static bool _visible;
+  private:
+    static AbstractUi *_instance;
+    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 *slot = 0, bool allowBufferHide = false) = 0;
+    virtual void addActions(QMenu *, const QList<QModelIndex> &indexList, QObject *receiver = 0, const char *slot = 0, bool allowBufferHide = false) = 0;
+    virtual void addActions(QMenu *, BufferId id, QObject *receiver = 0, const char *slot = 0) = 0;
+    virtual void addActions(QMenu *, MessageFilter *filter, BufferId msgBuffer, QObject *receiver = 0, const char *slot = 0) = 0;
+    virtual void addActions(QMenu *, MessageFilter *filter, BufferId msgBuffer, const QString &chanOrNick, QObject *receiver = 0, const char *slot = 0) = 0;
+
+  signals:
+    void showChannelList(NetworkId);
+    void showIgnoreList(NetworkId);
+
 };
 
 #endif