diff options
author | Tomaz Canabrava <tcanabrava@kde.org> | 2013-12-19 17:16:57 -0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2013-12-20 09:53:04 -0800 |
commit | bdd1b3b5469a045b71343fbf721a512f9cd2b0e8 (patch) | |
tree | 1537a0eeb9e50851f7393486f01ca286fad76854 | |
parent | 9e57dd48260ecc52a1333e9c6298036d7c42f73d (diff) | |
download | subsurface-bdd1b3b5469a045b71343fbf721a512f9cd2b0e8.tar.gz |
Make it possible to use the Tag System in dark themes
The color used on the bright theme was cyan, and it's too bright when the
font is also white.
This patch uses the HSL information of the color to determine if the text
color is light or dark, and adjusting the background color for that.
Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r-- | qt-ui/groupedlineedit.cpp | 7 | ||||
-rw-r--r-- | qt-ui/tagwidget.cpp | 23 |
2 files changed, 27 insertions, 3 deletions
diff --git a/qt-ui/groupedlineedit.cpp b/qt-ui/groupedlineedit.cpp index 72eb59d41..915e4688b 100644 --- a/qt-ui/groupedlineedit.cpp +++ b/qt-ui/groupedlineedit.cpp @@ -207,7 +207,12 @@ void GroupedLineEdit::paintEvent(QPaintEvent *e) i.toFront(); path.addRoundedRect(rectangle, 5.0, 5.0); painter.setPen(i.peekNext()); - painter.setBrush(i.next().lighter(180)); + if (palette().color(QPalette::Text).lightnessF() <= 0.3 ) + painter.setBrush(i.next().lighter()); + else if (palette().color(QPalette::Text).lightnessF() <= 0.6 ) + painter.setBrush(i.next()); + else + painter.setBrush(i.next().darker()); painter.drawPath(path); } #endif diff --git a/qt-ui/tagwidget.cpp b/qt-ui/tagwidget.cpp index 27c191440..494a473d0 100644 --- a/qt-ui/tagwidget.cpp +++ b/qt-ui/tagwidget.cpp @@ -2,14 +2,33 @@ #include <QPair> #include <QDebug> #include <QAbstractItemView> +#include <QSettings> +#include <QFont> TagWidget::TagWidget(QWidget *parent) : GroupedLineEdit(parent), m_completer(NULL) { connect(this, SIGNAL(cursorPositionChanged()), this, SLOT(reparse())); connect(this, SIGNAL(textChanged()), this, SLOT(reparse())); - addColor(QColor(0x00, 0xAE, 0xFF)); - addColor(QColor(0x00, 0x78, 0xB0)); + QColor textColor = palette().color(QPalette::Text); + qreal h, s, l, a; + textColor.getHslF(&h, &s, &l, &a); + // I use dark themes + if (l <= 0.3 ){ // very dark text. get a brigth background + addColor( QColor(Qt::red).lighter(120) ); + addColor( QColor(Qt::green).lighter(120) ); + addColor( QColor(Qt::blue).lighter(120) ); + } + else if ( l <= 0.6 ){ // moderated dark text. get a somewhat brigth background + addColor( QColor(Qt::red).lighter(60) ); + addColor( QColor(Qt::green).lighter(60) ); + addColor( QColor(Qt::blue).lighter(60) ); + } + else{ + addColor( QColor(Qt::red).darker(120) ); + addColor( QColor(Qt::green).darker(120) ); + addColor( QColor(Qt::blue).darker(120) ); + } // light text. get a dark background. } void TagWidget::setCompleter(QCompleter *completer) |