X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt4%2FAction.h;h=8bc4a71f2442d0e0fce6082a1f5f9ea5dcc59dbd;hb=1f10969bb5c5f36017bf5ba8671381b09945cf57;hp=06dbf18898927fa44410d7fa911a08b34164dcfa;hpb=f653a9e979db0da3baea1c4cae76f501ba392f85;p=lyx.git diff --git a/src/frontends/qt4/Action.h b/src/frontends/qt4/Action.h index 06dbf18898..8bc4a71f24 100644 --- a/src/frontends/qt4/Action.h +++ b/src/frontends/qt4/Action.h @@ -12,47 +12,49 @@ #ifndef ACTION_H #define ACTION_H -#include "frontends/LyXView.h" -#include "funcrequest.h" - -#include "support/docstring.h" - #include +#include -//class FuncRequest; - -//class string; +class QIcon; namespace lyx { -namespace frontend { -class GuiView; +class FuncRequest; + +namespace frontend { /** * Action - Qt interface with LyX' FuncRequest. * * Action can be used in LyX menubar and/or toolbars. */ -class Action: public QAction { +class Action : public QAction +{ Q_OBJECT -public: - Action(GuiView & lyxView, lyx::docstring const & text, - FuncRequest const & func, lyx::docstring const & tooltip = lyx::docstring()); +public: + // Makes a copy of func + Action(FuncRequest func, QIcon const & icon, QString const & text, + QString const & tooltip, QObject * parent); - Action(GuiView & lyxView, std::string const & icon, lyx::docstring const & text, - FuncRequest const & func, lyx::docstring const & tooltip = lyx::docstring()); + // Takes shared ownership of func. + // Use for perf-sensitive code such as populating menus. + Action(std::shared_ptr func, + QIcon const & icon, QString const & text, + QString const & tooltip, QObject * parent); void update(); -// void setAction(FuncRequest const & func); +Q_SIGNALS: + /// the current action is triggered + void triggered(QAction *); private Q_SLOTS: void action(); private: - FuncRequest const & func_ ; - GuiView & lyxView_; + void init(QIcon const & icon, QString const & text, QString const & tooltip); + std::shared_ptr func_; };