$END_LICENSE */
#include "iconutils.h"
+#include <QAction>
QIcon IconUtils::fromTheme(const QString &name) {
const QLatin1String symbolic("-symbolic");
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;
}
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;
}
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));
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);
+}