Needed to allow stuff in uisupport to access action collections.
#include "qtui.h"
#include "abstractnotificationbackend.h"
-#include "actioncollection.h"
#include "chatlinemodel.h"
#include "contextmenuactionprovider.h"
#include "mainwin.h"
#include "types.h"
#include "util.h"
-QHash<QString, ActionCollection *> QtUi::_actionCollections;
QPointer<QtUi> QtUi::_instance = 0;
QPointer<MainWin> QtUi::_mainWin = 0;
QList<AbstractNotificationBackend *> QtUi::_notificationBackends;
_mainWin = new MainWin();
_style = new QtUiStyle;
+ setMainWidget(_mainWin);
+
connect(_mainWin, SIGNAL(connectToCore(const QVariantMap &)), this, SIGNAL(connectToCore(const QVariantMap &)));
connect(_mainWin, SIGNAL(disconnectFromCore()), this, SIGNAL(disconnectFromCore()));
}
_mainWin->init();
}
-ActionCollection *QtUi::actionCollection(const QString &category) {
- if(_actionCollections.contains(category))
- return _actionCollections.value(category);
- ActionCollection *coll = new ActionCollection(mainWindow());
- coll->addAssociatedWidget(mainWindow());
- _actionCollections.insert(category, coll);
- return coll;
-}
-
MessageModel *QtUi::createMessageModel(QObject *parent) {
return new ChatLineModel(parent);
}
#include "abstractnotificationbackend.h"
#include "mainwin.h"
-class ActionCollection;
class MainWin;
class MessageModel;
class QtUiMessageProcessor;
inline static QtUiStyle *style();
inline static MainWin *mainWindow();
- //! Access global ActionCollections.
- /** These ActionCollections are associated with the main window, i.e. they contain global
- * actions (and thus, shortcuts). Widgets providing application-wide shortcuts should
- * create appropriate Action objects using QtUi::actionCollection(cat)->add\<Action\>().
- * @param category The category (default: "General")
- */
- static ActionCollection *actionCollection(const QString &category = "General");
/* Notifications */
private:
static QPointer<QtUi> _instance;
static QPointer<MainWin> _mainWin;
- static QHash<QString, ActionCollection *> _actionCollections;
static QtUiStyle *_style;
static QList<AbstractNotificationBackend *> _notificationBackends;
static QList<AbstractNotificationBackend::Notification> _notifications;
#include "graphicalui.h"
+#include "actioncollection.h"
#include "contextmenuactionprovider.h"
+QWidget *GraphicalUi::_mainWidget = 0;
+QHash<QString, ActionCollection *> GraphicalUi::_actionCollections;
ContextMenuActionProvider *GraphicalUi::_contextMenuActionProvider = 0;
ToolBarActionProvider *GraphicalUi::_toolBarActionProvider = 0;
-GraphicalUi::GraphicalUi(QObject *parent) : AbstractUi(parent) {
+GraphicalUi::GraphicalUi(QObject *parent) : AbstractUi(parent)
+{
}
+ActionCollection *GraphicalUi::actionCollection(const QString &category) {
+ if(_actionCollections.contains(category))
+ return _actionCollections.value(category);
+ ActionCollection *coll = new ActionCollection(_mainWidget);
+ if(_mainWidget)
+ coll->addAssociatedWidget(_mainWidget);
+ _actionCollections.insert(category, coll);
+ return coll;
+}
+
+void GraphicalUi::setMainWidget(QWidget *widget) {
+ _mainWidget = widget;
+}
+
void GraphicalUi::setContextMenuActionProvider(ContextMenuActionProvider *provider) {
_contextMenuActionProvider = provider;
}
#include "abstractui.h"
+class ActionCollection;
class ContextMenuActionProvider;
class ToolBarActionProvider;
public:
GraphicalUi(QObject *parent = 0);
+ //! Access global ActionCollections.
+ /** These ActionCollections are associated with the main window, i.e. they contain global
+ * actions (and thus, shortcuts). Widgets providing application-wide shortcuts should
+ * create appropriate Action objects using GraphicalUi::actionCollection(cat)->add\<Action\>().
+ * @param category The category (default: "General")
+ */
+ static ActionCollection *actionCollection(const QString &category = "General");
+
inline static ContextMenuActionProvider *contextMenuActionProvider();
inline static ToolBarActionProvider *toolBarActionProvider();
protected:
+ //! This is the widget we associate global actions with, typically the main window
+ void setMainWidget(QWidget *);
+
void setContextMenuActionProvider(ContextMenuActionProvider *);
void setToolBarActionProvider(ToolBarActionProvider *);
private:
+ static QWidget *_mainWidget;
+ static QHash<QString, ActionCollection *> _actionCollections;
static ContextMenuActionProvider *_contextMenuActionProvider;
static ToolBarActionProvider *_toolBarActionProvider;