summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Tomaz Canabrava <tcanabrava@kde.org>2013-12-19 17:16:57 -0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2013-12-20 09:53:04 -0800
commitbdd1b3b5469a045b71343fbf721a512f9cd2b0e8 (patch)
tree1537a0eeb9e50851f7393486f01ca286fad76854
parent9e57dd48260ecc52a1333e9c6298036d7c42f73d (diff)
downloadsubsurface-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.cpp7
-rw-r--r--qt-ui/tagwidget.cpp23
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)