]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/Action.h
Add missing initialization
[lyx.git] / src / frontends / qt4 / Action.h
index ecefbfe958d56e83f109ae324e7ce77c58edda95..8bc4a71f2442d0e0fce6082a1f5f9ea5dcc59dbd 100644 (file)
@@ -13,6 +13,9 @@
 #define ACTION_H
 
 #include <QAction>
+#include <memory>
+
+class QIcon;
 
 namespace lyx {
 
@@ -20,8 +23,6 @@ class FuncRequest;
 
 namespace frontend {
 
-class GuiViewBase;
-
 /**
  * Action - Qt interface with LyX' FuncRequest.
  *
@@ -32,8 +33,15 @@ class Action : public QAction
        Q_OBJECT
 
 public:
-       Action(GuiViewBase & lyxView, QString const & icon, QString const & text,
-               FuncRequest const & func, QString const & tooltip);
+       // Makes a copy of func
+       Action(FuncRequest func, QIcon const & icon, QString const & text,
+              QString const & tooltip, QObject * parent);
+
+       // Takes shared ownership of func.
+       // Use for perf-sensitive code such as populating menus.
+       Action(std::shared_ptr<FuncRequest const> func,
+              QIcon const & icon, QString const & text,
+              QString const & tooltip, QObject * parent);
 
        void update();
 
@@ -45,8 +53,8 @@ private Q_SLOTS:
        void action();
 
 private:
-       FuncRequest const & func_ ;
-       GuiViewBase & lyxView_;
+       void init(QIcon const & icon, QString const & text, QString const & tooltip);
+       std::shared_ptr<FuncRequest const> func_;
 };