diff options
author | mujx <mujx@users.noreply.github.com> | 2017-10-01 12:42:14 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-10-01 12:42:14 +0300 |
commit | 18e9fd6ada3df8fb7e7cbe1b83fbd2a92e4e5d9b (patch) | |
tree | 091b71e20c4cb1b86c993da51da842e925707e7f | |
parent | Don't move scrollbar to the bottom when it's active (diff) | |
parent | Fixes #50. (diff) | |
download | nheko-18e9fd6ada3df8fb7e7cbe1b83fbd2a92e4e5d9b.tar.xz |
Merge pull request #82 from rokups/fix/#50
Fixes #50.
-rw-r--r-- | include/TrayIcon.h | 2 | ||||
-rw-r--r-- | src/TrayIcon.cc | 29 |
2 files changed, 31 insertions, 0 deletions
diff --git a/include/TrayIcon.h b/include/TrayIcon.h index 2c9020c1..dec3063b 100644 --- a/include/TrayIcon.h +++ b/include/TrayIcon.h @@ -32,6 +32,8 @@ public: virtual void paint(QPainter *p, const QRect &rect, QIcon::Mode mode, QIcon::State state); virtual QIconEngine *clone() const; + virtual QList<QSize> availableSizes(QIcon::Mode mode, QIcon::State state) const; + virtual QPixmap pixmap(const QSize& size, QIcon::Mode mode, QIcon::State state); int msgCount = 0; diff --git a/src/TrayIcon.cc b/src/TrayIcon.cc index a9e897d8..8d3dc99f 100644 --- a/src/TrayIcon.cc +++ b/src/TrayIcon.cc @@ -17,6 +17,7 @@ #include <QApplication> #include <QTimer> +#include <QList> #include "TrayIcon.h" @@ -72,6 +73,34 @@ MsgCountComposedIcon::clone() const return new MsgCountComposedIcon(*this); } +QList<QSize> +MsgCountComposedIcon::availableSizes(QIcon::Mode mode, QIcon::State state) const +{ + Q_UNUSED(mode); + Q_UNUSED(state); + QList<QSize> sizes; + sizes.append(QSize(24, 24)); + sizes.append(QSize(32, 32)); + sizes.append(QSize(48, 48)); + sizes.append(QSize(64, 64)); + sizes.append(QSize(128, 128)); + sizes.append(QSize(256, 256)); + return sizes; +} + +QPixmap +MsgCountComposedIcon::pixmap(const QSize& size, QIcon::Mode mode, QIcon::State state) +{ + QImage img(size, QImage::Format_ARGB32); + img.fill(qRgba(0, 0, 0, 0)); + QPixmap result = QPixmap::fromImage(img, Qt::NoFormatConversion); + { + QPainter painter(&result); + paint(&painter, QRect(QPoint(0, 0), size), mode, state); + } + return result; +} + TrayIcon::TrayIcon(const QString &filename, QWidget *parent) : QSystemTrayIcon(parent) { |