From bdd1b3b5469a045b71343fbf721a512f9cd2b0e8 Mon Sep 17 00:00:00 2001 From: Tomaz Canabrava Date: Thu, 19 Dec 2013 17:16:57 -0200 Subject: 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 Signed-off-by: Dirk Hohndel --- qt-ui/groupedlineedit.cpp | 7 ++++++- qt-ui/tagwidget.cpp | 23 +++++++++++++++++++++-- 2 files changed, 27 insertions(+), 3 deletions(-) (limited to 'qt-ui') 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 #include #include +#include +#include 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) -- cgit v1.2.3-70-g09d2