diff options
author | Arno <arno@disconnect.de> | 2017-03-05 05:51:22 +0100 |
---|---|---|
committer | Arno <arno@disconnect.de> | 2017-03-05 05:51:22 +0100 |
commit | 9343fc6c77da8678df98ceb6330c61f43aa48737 (patch) | |
tree | 3bd77d7c874e4d7d31f81339f7623cef0fa33eb9 /helper.cpp | |
parent | 4126723a86bfa09a830c1e41fb1b49e6a114218a (diff) | |
download | BeetPlayer-9343fc6c77da8678df98ceb6330c61f43aa48737.tar.gz BeetPlayer-9343fc6c77da8678df98ceb6330c61f43aa48737.tar.bz2 BeetPlayer-9343fc6c77da8678df98ceb6330c61f43aa48737.zip |
Implement expand and collapse for DB view
Sounds easy, right? It is, if you don't try to create a QIcon from a
QChar. That took me a while...
First, it's not a good idea to fill the QPixmap for the QIcon with
transparency. That gives you a random background. Fill it with palette
color instead.
Then there's QFont's pixelSize(). I have absolutely no idea how it
corresponds to the pixmap's size, but roughly double the width of the
pixmap is a good guess...
Diffstat (limited to 'helper.cpp')
-rw-r--r-- | helper.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/helper.cpp b/helper.cpp new file mode 100644 index 0000000..91e4d7f --- /dev/null +++ b/helper.cpp @@ -0,0 +1,26 @@ +#include <QPainter> +#include <QPalette> +#include <QAction> +#include <QApplication> + +#include "helper.h" + +namespace Helper { + QIcon iconFromQChar(const QChar &c, int pixelSize){ + QPixmap pm(QSize(64,64)); + QPainter p(&pm); + QFont f = p.font(); + f.setPixelSize(pixelSize); + p.setFont(f); + p.fillRect(pm.rect(), qApp->palette().color(QPalette::Window)); + p.setBrush(QBrush(Qt::black)); + p.drawText(pm.rect(), Qt::AlignCenter, c); + return QIcon(pm); + } + + QAction* createSeparator(QObject *parent){ + QAction *a = new QAction(parent); + a->setSeparator(true); + return a; + } +} |