diff options
author | Arno <arno@disconnect.de> | 2018-02-03 08:02:05 +0100 |
---|---|---|
committer | Arno <arno@disconnect.de> | 2018-02-03 08:02:05 +0100 |
commit | 8512ed1a06888a98f71367f4ac3da3f6edc945c3 (patch) | |
tree | cd9504d630e25ab1e1db9cb64c01d73dc6877d81 /helper.cpp | |
parent | cbb1974ae94858b101ba1bf92047236dcfa2e5fa (diff) | |
download | ShemovCleaner-8512ed1a06888a98f71367f4ac3da3f6edc945c3.tar.gz ShemovCleaner-8512ed1a06888a98f71367f4ac3da3f6edc945c3.tar.bz2 ShemovCleaner-8512ed1a06888a98f71367f4ac3da3f6edc945c3.zip |
Implement alternating row colors
Once again, surprisingly difficult, as you can see on the number of
changed files.
Coding the configuration options wasn't that difficult, but actually
using them was. As it turned out, the default style on Windows doesn't
use QApplication::palette() at all, though it does honor
setAlternatingRowColors(). It just doesn't use the palette colors, but
style sheets. Took me a while to figure out.
So, there's always another layer of indirection: First, add all
QTreeViews to Globals::views, then create a helper to set the style
sheet.
Diffstat (limited to 'helper.cpp')
-rw-r--r-- | helper.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
@@ -11,8 +11,10 @@ #include <QPainter> #include <QStandardPaths> #include <QDir> +#include <QTreeView> #include "helper.h" +#include "globals.h" namespace Helper { const QString md5Sum(const QString &path){ @@ -155,6 +157,21 @@ namespace Helper { return QIcon(QPixmap::fromImage(img)); } + void setAlternatingRowColors(){ + QSettings s; + bool alternate = s.value("alternatecolors").toBool(); + if(alternate){ + QColor b = s.value("basecolor").value<QColor>(); + QColor a = s.value("altcolor").value<QColor>(); + QString style = QString("background-color: rgb(%1,%2,%3);alternate-background-color: rgb(%4,%5,%6);").arg(b.red()).arg(b.green()).arg(b.blue()).arg(a.red()).arg(a.green()).arg(a.blue()); + QVector<QTreeView*> views = Globals::instance()->views(); + for(QTreeView *v : views){ + v->setAlternatingRowColors(true); + v->setStyleSheet(style); + } + } + } + Duration::Duration() : mHours(0), mMinutes(0), mSeconds(0) {} Duration::Duration(qint64 seconds){ |