commit 627d5738caac92c00b21ab3e2d984a1dd83d8e9a
Author: Jürgen Spitzmüller <[email protected]>
Date:   Wed Apr 30 14:10:07 2025 +0200

    Consider dark mode in MenuButtonBase (#13182)
---
 src/frontends/qt/GuiApplication.cpp | 6 +++---
 src/frontends/qt/GuiApplication.h   | 2 ++
 src/frontends/qt/GuiToolbar.cpp     | 9 ++++++++-
 3 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/src/frontends/qt/GuiApplication.cpp 
b/src/frontends/qt/GuiApplication.cpp
index 16fd275bf2..7ce46a7d16 100644
--- a/src/frontends/qt/GuiApplication.cpp
+++ b/src/frontends/qt/GuiApplication.cpp
@@ -637,7 +637,7 @@ IconInfo iconInfo(FuncRequest const & f, bool unknown, bool 
rtl)
 }
 
 
-QPixmap prepareForDarkMode(QPixmap pixmap)
+QPixmap GuiApplication::prepareForDarkMode(QPixmap pixmap) const
 {
        // guess whether we are in dark mode
        if (!theGuiApp()->isInDarkMode())
@@ -688,7 +688,7 @@ QPixmap getPixmap(QString const & path, QString const & 
name, QString const & ex
        if (pixmap.load(fpath)) {
                if (fpath.contains("math") || fpath.contains("ipa")
                    || fpath.contains("bullets"))
-                       return prepareForDarkMode(pixmap);
+                       return guiApp->prepareForDarkMode(pixmap);
                return pixmap;
        }
 
@@ -728,7 +728,7 @@ QIcon getIcon(FuncRequest const & f, bool unknown, bool rtl)
        }
 
        if (icondata.invert)
-               pixmap = prepareForDarkMode(pixmap);
+               pixmap = guiApp->prepareForDarkMode(pixmap);
 
        if (icondata.swap)
                return QIcon(pixmap.transformed(QTransform().scale(-1, 1)));
diff --git a/src/frontends/qt/GuiApplication.h 
b/src/frontends/qt/GuiApplication.h
index 06f57c4918..df21ccfcd8 100644
--- a/src/frontends/qt/GuiApplication.h
+++ b/src/frontends/qt/GuiApplication.h
@@ -96,6 +96,8 @@ public:
 
        /// Scale Pixmaps properly (also for HiDPI)
        QPixmap getScaledPixmap(QString imagedir, QString name) const;
+    ///
+    QPixmap prepareForDarkMode(QPixmap pixmap) const;
 
        ///
        Clipboard & clipboard();
diff --git a/src/frontends/qt/GuiToolbar.cpp b/src/frontends/qt/GuiToolbar.cpp
index 76b6853d4a..39069dd112 100644
--- a/src/frontends/qt/GuiToolbar.cpp
+++ b/src/frontends/qt/GuiToolbar.cpp
@@ -250,7 +250,14 @@ MenuButtonBase::MenuButtonBase(GuiToolbar * bar, 
ToolbarItem const & item)
                FileName const fname = imageLibFileSearch(imagedir, name, 
"svgz,png",
                        theGuiApp()->imageSearchMode(), 
theGuiApp()->isInDarkMode());
                if (fname.exists()) {
-                       setIcon(QIcon(toqstr(fname.absFileName())));
+                       QString const fpath = toqstr(fname.absFileName());
+                       QPixmap pixmap;
+                       if (pixmap.load(fpath)) {
+                               if (fpath.contains("math") || 
fpath.contains("ipa")
+                                       || fpath.contains("bullets"))
+                               pixmap = guiApp->prepareForDarkMode(pixmap);
+                       }
+                       setIcon(QIcon(pixmap));
                        break;
                }
        }
-- 
lyx-cvs mailing list
[email protected]
https://lists.lyx.org/mailman/listinfo/lyx-cvs

Reply via email to