X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=src%2Ficonutils.h;h=00e764eda4d8186dc75ddcdf8a5ee50fce205977;hb=HEAD;hp=851841268c65a413fc4cd0c822d8b2f495a325c6;hpb=29f9a13b38a0547b70236d24300668385e1dbf6e;p=minitube diff --git a/src/iconutils.h b/src/iconutils.h index 8518412..4db2ed3 100644 --- a/src/iconutils.h +++ b/src/iconutils.h @@ -24,25 +24,43 @@ $END_LICENSE */ #include class IconUtils { - public: + static void setSizes(const QVector &value); + static QIcon fromTheme(const QString &name); - static QIcon fromResources(const QString &name); - static QIcon icon(const QString &name); - static QIcon icon(const QStringList &names); - static QIcon tintedIcon(const QString &name, const QColor &color, - QList sizes = QList()); - static QIcon tintedIcon(const QString &name, const QColor &color, const QSize &size); - static void setupAction(QAction *action); + static QIcon fromResources(const char *name); + + template static void setIcon(T *obj, const char *name) { + QIcon i = icon(name); + obj->setIcon(i); + obj->connect(qApp, &QGuiApplication::paletteChanged, obj, [obj, name] { + qDebug() << "Updating icon" << name; + QIcon i = icon(name); + obj->setIcon(i); + }); + } + static QIcon icon(const char *name); + static QIcon icon(const QVector &names); + + static QPixmap + iconPixmap(const char *name, int size, const QColor &background, const qreal pixelRatio); + + static QIcon tintedIcon(const char *name, const QColor &color, const QVector &sizes); + static QIcon tintedIcon(const char *name, const QColor &color, const QSize &size); // HiDPI stuff - static QPixmap pixmap(const QString &name); - static qreal maxSupportedPixelRatio() { return 2.0; } + static QPixmap pixmap(const char *name, const qreal pixelRatio); + static QPixmap pixmap(const QString &filename, const qreal pixelRatio); + + static void tint(QPixmap &pixmap, + const QColor &color, + QPainter::CompositionMode mode = QPainter::CompositionMode_SourceIn); private: - IconUtils() { } + IconUtils() {} static QImage grayscaled(const QImage &image); - static QImage tinted(const QImage &image, const QColor &color, + static QImage tinted(const QImage &image, + const QColor &color, QPainter::CompositionMode mode = QPainter::CompositionMode_Screen); };