]> git.sur5r.net Git - minitube/blobdiff - src/iconutils.cpp
Imported Upstream version 2.5.1
[minitube] / src / iconutils.cpp
index 75ded5307e5bb7e6fbcd2c932c1d1dacc62ae686..b975411159ff0ef638b3d557c6086363e969c778 100644 (file)
@@ -19,6 +19,7 @@ along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
 $END_LICENSE */
 
 #include "iconutils.h"
+#include <QAction>
 
 QIcon IconUtils::fromTheme(const QString &name) {
     const QLatin1String symbolic("-symbolic");
@@ -32,9 +33,9 @@ QIcon IconUtils::fromTheme(const QString &name) {
 QIcon IconUtils::fromResources(const QString &name) {
     QIcon icon = QIcon(QString(":/images/%1.png").arg(name));
     if (!icon.isNull()) {
-        icon.addPixmap(QString(":/images/%1_active.png").arg(name), QIcon::Active);
-        icon.addPixmap(QString(":/images/%1_selected.png").arg(name), QIcon::Selected);
-        icon.addPixmap(QString(":/images/%1_disabled.png").arg(name), QIcon::Disabled);
+        icon.addPixmap(IconUtils::pixmap(QString(":/images/%1_active.png").arg(name)), QIcon::Active);
+        icon.addPixmap(IconUtils::pixmap(QString(":/images/%1_selected.png").arg(name)), QIcon::Selected);
+        icon.addPixmap(IconUtils::pixmap(QString(":/images/%1_disabled.png").arg(name)), QIcon::Disabled);
     }
     return icon;
 }
@@ -51,7 +52,7 @@ QIcon IconUtils::icon(const QString &name) {
 
 QIcon IconUtils::icon(const QStringList &names) {
     QIcon icon;
-    foreach (QString name, names) {
+    foreach (const QString &name, names) {
         icon = IconUtils::icon(name);
         if (!icon.availableSizes().isEmpty()) break;
     }
@@ -62,7 +63,7 @@ QIcon IconUtils::tintedIcon(const QString &name, const QColor &color, QList<QSiz
     QIcon i = IconUtils::icon(name);
     QIcon t;
     if (sizes.isEmpty()) sizes = i.availableSizes();
-    foreach (QSize size, sizes) {
+    foreach (const QSize &size, sizes) {
         QPixmap pixmap = i.pixmap(size);
         QImage tintedImage = tinted(pixmap.toImage(), color);
         t.addPixmap(QPixmap::fromImage(tintedImage));
@@ -109,3 +110,19 @@ void IconUtils::setupAction(QAction *action) {
                              action->shortcut().toString(QKeySequence::NativeText) +
                              ")");
 }
+
+QPixmap IconUtils::pixmap(const QString &name) {
+    // Check if a "@2x" file exists
+    QString fileName = name;
+    if (qApp->devicePixelRatio() > 1.0) {
+        int dotIndex = fileName.lastIndexOf(QLatin1Char('.'));
+        if (dotIndex != -1) {
+            QString at2xfileName = fileName;
+            at2xfileName.insert(dotIndex, QStringLiteral("@2x"));
+            if (QFile::exists(at2xfileName))
+                fileName = at2xfileName;
+        }
+    }
+
+    return QPixmap(fileName);
+}