Load "@2x" images on high-dpi "retina" systems.

Check for the existence of a "@2x" file when adding
an image to QIcon. For example, adding "foo.png" will
also add "foo@2x.png" if that file exists.

Change-Id: If32a3446cf56ca0828de17f6a361091e4c874f26
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
This commit is contained in:
Morten Johan Sørvig 2013-03-07 13:10:49 +01:00 committed by The Qt Project
parent f4c8fb6b39
commit 04ebd8e56f

View File

@ -958,6 +958,17 @@ void QIcon::addFile(const QString &fileName, const QSize &size, Mode mode, State
detach(); detach();
} }
d->engine->addFile(fileName, size, mode, state); d->engine->addFile(fileName, size, mode, state);
// Check if a "@2x" file exists and add it.
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))
d->engine->addFile(at2xfileName, size, mode, state);
}
}
} }
/*! /*!