]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt/ColorCache.cpp
Fix completion in math when inline completion was not yet shown
[lyx.git] / src / frontends / qt / ColorCache.cpp
index 81ac1387e5d738d8d534d9e119a7467154ff0cac..821494edc1b2113755994f1bc34dd456757c425e 100644 (file)
 
 #include <config.h>
 
+#include "ColorCache.h"
+
 #include "LyXRC.h"
 
-#include "ColorCache.h"
+#include "Color.h"
 #include "ColorSet.h"
 
 namespace lyx {
@@ -21,7 +23,7 @@ namespace{
 
 QPalette::ColorRole role(ColorCode col)
 {
-       switch (ColorCode(col)) {
+       switch (col) {
        case Color_background:
        case Color_commentbg:
        case Color_greyedoutbg:
@@ -60,7 +62,7 @@ QPalette::ColorRole role(ColorCode col)
 void ColorCache::init()
 {
        for (int col = 0; col <= Color_ignore; ++col) {
-               lcolors_[col] = QColor(lcolor.getX11HexName(ColorCode(col)).c_str());
+               lcolors_[col] = QColor(lcolor.getX11HexName(ColorCode(col), isDarkMode()).c_str());
        }
 
        initialized_ = true;
@@ -102,7 +104,7 @@ QColor ColorCache::get(Color const & color, bool syscolors) const
                        (base_color.blue() + merge_color.blue()) / 2);
        }
        // used by branches
-       return QColor(lcolor.getX11HexName(color.baseColor).c_str());
+       return QColor(lcolor.getX11HexName(color.baseColor, isDarkMode()).c_str());
 }
 
 
@@ -117,6 +119,16 @@ bool ColorCache::isSystem(ColorCode const color) const
 }
 
 
+bool ColorCache::isDarkMode() const
+{
+       QPalette palette = QPalette();
+       QColor text_color = palette.color(QPalette::Active, QPalette::WindowText);
+       QColor bg_color = palette.color(QPalette::Active, QPalette::Window);
+       
+       return (text_color.black() < bg_color.black());
+}
+
+
 QColor const rgb2qcolor(RGBColor const & rgb)
 {
        return QColor(rgb.r, rgb.g, rgb.b);