]> git.sur5r.net Git - minitube/blobdiff - src/iconutils.h
New upstream version 3.1
[minitube] / src / iconutils.h
index 2fbe0b2340c891273343020563d34e6be8c59007..52d915c5ecf46339818bc22513a0343ae1fe723f 100644 (file)
@@ -24,26 +24,39 @@ $END_LICENSE */
 #include <QtGui>
 
 class IconUtils {
-
 public:
     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<QSize> sizes = QList<QSize>());
-    static QIcon tintedIcon(const QString &name, const QColor &color, const QSize &size);
-    static void setupAction(QAction *action);
+    static QIcon fromResources(const char *name);
+
+    template <class T> static void setIcon(T *obj, const char *name) {
+        QIcon i = icon(name);
+        obj->setIcon(i);
+        obj->connect(qApp, &QGuiApplication::paletteChanged, obj, [obj, name] {
+            QIcon i = icon(name);
+            obj->setIcon(i);
+        });
+    }
+    static QIcon icon(const char *name);
+    static QIcon icon(const QVector<const char *> &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<QSize> &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 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);
 };