]> git.lyx.org Git - features.git/blobdiff - src/frontends/qt/Action.cpp
#10571 improved handling of WM's signal when switching from or to full-screen window
[features.git] / src / frontends / qt / Action.cpp
index bd102e6b73a8f987c248ec55dec6e07759ee35c0..cc161908295c7a64566fddbf9b2c964ff47e147e 100644 (file)
@@ -11,6 +11,7 @@
 #include <config.h>
 
 #include "Action.h"
+#include "GuiApplication.h"
 
 // DispatchResult.h is needed by the windows compiler because lyx::dispatch
 // returns a DispatchResult const reference. Gcc does not complain. Weird...
@@ -33,27 +34,25 @@ namespace frontend {
 
 Action::Action(FuncRequest func, QIcon const & icon, QString const & text,
                QString const & tooltip, QObject * parent)
-       : QAction(parent), func_(make_shared<FuncRequest>(move(func)))
+       : QAction(parent), func_(make_shared<FuncRequest>(move(func))), icon_(icon)
 {
-       init(icon, text, tooltip);
+       init(text, tooltip);
 }
 
 
 Action::Action(shared_ptr<FuncRequest const> func,
                QIcon const & icon, QString const & text,
                QString const & tooltip, QObject * parent)
-       : QAction(parent), func_(func)
+       : QAction(parent), func_(func), icon_(icon)
 {
-       init(icon, text, tooltip);
+       init(text, tooltip);
 }
 
 
-void Action::init(QIcon const & icon, QString const & text,
-                  QString const & tooltip)
+void Action::init(QString const & text, QString const & tooltip)
 {
        // only Qt/Mac handles that
        setMenuRole(NoRole);
-       setIcon(icon);
        setText(text);
        setToolTip(tooltip);
        setStatusTip(tooltip);
@@ -76,6 +75,11 @@ void Action::update()
                setCheckable(false);
        }
 
+       if (rtlIcon_.isNull() || !guiApp->rtlContext())
+               setIcon(icon_);
+       else
+               setIcon(rtlIcon_);
+
        setEnabled(status.enabled());
 }