X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fuisupport%2Fgraphicalui.h;h=f1fef7b38e45701a3aa2fd4147a84b8ae15835e8;hp=b4f8669f64801fe67774c9a7cbb404205ce92678;hb=412b5319d090f122ae8c99be6578bc25023c8f24;hpb=429b13a0af3acc0599ceb560fef61feee93b068e diff --git a/src/uisupport/graphicalui.h b/src/uisupport/graphicalui.h index b4f8669f..f1fef7b3 100644 --- a/src/uisupport/graphicalui.h +++ b/src/uisupport/graphicalui.h @@ -23,8 +23,10 @@ #include "abstractui.h" +class ActionCollection; class ContextMenuActionProvider; class ToolBarActionProvider; +class UiStyle; class GraphicalUi : public AbstractUi { Q_OBJECT @@ -32,17 +34,32 @@ class GraphicalUi : public AbstractUi { 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\(). + * @param category The category (default: "General") + */ + static ActionCollection *actionCollection(const QString &category = "General"); + inline static ContextMenuActionProvider *contextMenuActionProvider(); inline static ToolBarActionProvider *toolBarActionProvider(); + inline static UiStyle *uiStyle(); protected: + //! This is the widget we associate global actions with, typically the main window + void setMainWidget(QWidget *); + void setContextMenuActionProvider(ContextMenuActionProvider *); void setToolBarActionProvider(ToolBarActionProvider *); + void setUiStyle(UiStyle *); private: + static QWidget *_mainWidget; + static QHash _actionCollections; static ContextMenuActionProvider *_contextMenuActionProvider; static ToolBarActionProvider *_toolBarActionProvider; - + static UiStyle *_uiStyle; }; ContextMenuActionProvider *GraphicalUi::contextMenuActionProvider() { @@ -53,4 +70,8 @@ ToolBarActionProvider *GraphicalUi::toolBarActionProvider() { return _toolBarActionProvider; } +UiStyle *GraphicalUi::uiStyle() { + return _uiStyle; +} + #endif