]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/Action.h
Add missing initialization
[lyx.git] / src / frontends / qt4 / Action.h
index 11a862b7887f278149638a74d16dac6c5e7bf0fd..8bc4a71f2442d0e0fce6082a1f5f9ea5dcc59dbd 100644 (file)
@@ -13,6 +13,7 @@
 #define ACTION_H
 
 #include <QAction>
+#include <memory>
 
 class QIcon;
 
@@ -22,8 +23,6 @@ class FuncRequest;
 
 namespace frontend {
 
-class GuiView;
-
 /**
  * Action - Qt interface with LyX' FuncRequest.
  *
@@ -34,8 +33,15 @@ class Action : public QAction
        Q_OBJECT
 
 public:
-       Action(GuiView * lyxView, QIcon const & icon, QString const & text,
-               FuncRequest const & func, QString const & tooltip, QObject * parent);
+       // 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();
 
@@ -47,8 +53,8 @@ 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<FuncRequest const> func_;
 };