fixing speed up aftermath
[quassel.git] / src / qtui / qtui.h
index dca9658..9ac3b97 100644 (file)
@@ -1,11 +1,11 @@
 /***************************************************************************
- *   Copyright (C) 2005-07 by The Quassel IRC Development Team             *
+ *   Copyright (C) 2005-08 by the Quassel Project                          *
  *   devel@quassel-irc.org                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
  *   it under the terms of the GNU General Public License as published by  *
  *   the Free Software Foundation; either version 2 of the License, or     *
- *   (at your option) any later version.                                   *
+ *   (at your option) version 3.                                           *
  *                                                                         *
  *   This program is distributed in the hope that it will be useful,       *
  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
 
-#ifndef _QTUI_H_
-#define _QTUI_H_
+#ifndef QTUI_H
+#define QTUI_H
 
 #include "quasselui.h"
+
+class ActionCollection;
 class MainWin;
+class MessageModel;
+class QtUiMessageProcessor;
+class QtUiStyle;
 
 //! This class encapsulates Quassel's Qt-based GUI.
 /** This is basically a wrapper around MainWin, which is necessary because we cannot derive MainWin
@@ -31,18 +36,36 @@ class MainWin;
 class QtUi : public AbstractUi {
   Q_OBJECT
 
-  public:
-    QtUi();
-    ~QtUi();
-    void init();
-    AbstractUiMsg *layoutMsg(const Message &);
+public:
+  QtUi();
+  ~QtUi();
+
+  MessageModel *createMessageModel(QObject *parent);
+  AbstractMessageProcessor *createMessageProcessor(QObject *parent);
+
+  inline static QtUiStyle *style();
 
-  protected slots:
-    void connectedToCore();
-    void disconnectedFromCore();
+  //! Access the global ActionCollection.
+  /** This ActionCollection is associated with the main window, i.e. it contains global
+   *  actions (and thus, shortcuts). Widgets providing application-wide shortcuts should
+   *  create appropriate Action objects using QtUi::actionCollection()->add\<Action\>().
+   */
+  inline static ActionCollection *actionCollection();
 
-  private:
-    MainWin *mainWin;
+public slots:
+  void init();
+
+protected slots:
+  void connectedToCore();
+  void disconnectedFromCore();
+
+private:
+  MainWin *mainWin;
+  static ActionCollection *_actionCollection;
+  static QtUiStyle *_style;
 };
 
+ActionCollection *QtUi::actionCollection() { return _actionCollection; }
+QtUiStyle *QtUi::style() { return _style; }
+
 #endif