X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt%2FColorCache.cpp;h=821494edc1b2113755994f1bc34dd456757c425e;hb=b4211ef206827f85378b9392472fdc14e1e9f6c4;hp=81ac1387e5d738d8d534d9e119a7467154ff0cac;hpb=8415041b1f4d7a2e436e3f407bccd9a7e6bcdd87;p=lyx.git diff --git a/src/frontends/qt/ColorCache.cpp b/src/frontends/qt/ColorCache.cpp index 81ac1387e5..821494edc1 100644 --- a/src/frontends/qt/ColorCache.cpp +++ b/src/frontends/qt/ColorCache.cpp @@ -10,9 +10,11 @@ #include +#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);