From 44fc5acd5c44da29306558ef5a081afb0ea92304 Mon Sep 17 00:00:00 2001 From: Niels Weber Date: Tue, 19 Mar 2013 14:41:17 +0100 Subject: Deprecate Icon, introduce replacements. InstallerApplicationIcon is used on Mac and Windows for a custom icon of the installer. InstallerWindowIcon is used to set the window icon of the installer on all platforms. Change-Id: I1f555441875b96e4d8e4ca9a808cf18b3a566c3c Reviewed-by: Karsten Heimrich --- src/libs/installer/packagemanagergui.cpp | 2 +- src/libs/installer/settings.cpp | 35 +++++++++++++++++++++++++++----- src/libs/installer/settings.h | 3 +++ 3 files changed, 34 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/libs/installer/packagemanagergui.cpp b/src/libs/installer/packagemanagergui.cpp index d0d67aa7a..49bf546e5 100644 --- a/src/libs/installer/packagemanagergui.cpp +++ b/src/libs/installer/packagemanagergui.cpp @@ -243,7 +243,7 @@ PackageManagerGui::PackageManagerGui(PackageManagerCore *core, QWidget *parent) setWindowTitle(tr("Maintain %1").arg(m_core->value(scTitle))); #ifndef Q_OS_MAC - setWindowIcon(QIcon(m_core->settings().icon())); + setWindowIcon(QIcon(m_core->settings().installerWindowIcon())); #else setPixmap(QWizard::BackgroundPixmap, m_core->settings().background()); #endif diff --git a/src/libs/installer/settings.cpp b/src/libs/installer/settings.cpp index b019b12ba..f08989ff7 100644 --- a/src/libs/installer/settings.cpp +++ b/src/libs/installer/settings.cpp @@ -51,6 +51,8 @@ using namespace QInstaller; static const QLatin1String scIcon("Icon"); +static const QLatin1String scInstallerApplicationIcon("InstallerApplicationIcon"); +static const QLatin1String scInstallerWindowIcon("InstallerWindowIcon"); static const QLatin1String scLogo("Logo"); static const QLatin1String scPages("Pages"); static const QLatin1String scPrefix("Prefix"); @@ -214,7 +216,8 @@ Settings Settings::fromFileAndPrefix(const QString &path, const QString &prefix) QStringList elementList; elementList << scName << scVersion << scTitle << scPublisher << scProductUrl << scTargetDir << scAdminTargetDir - << scIcon << scLogo << scWatermark << scBackground + << scIcon << scInstallerApplicationIcon << scInstallerWindowIcon + << scLogo << scWatermark << scBackground << scStartMenuDir << scUninstallerName << scUninstallerIniFile << scRemoveTargetDir << scRunProgram << scRunProgramArguments << scRunProgramDescription << scDependsOnLocalInstallerBinary @@ -236,6 +239,9 @@ Settings Settings::fromFileAndPrefix(const QString &path, const QString &prefix) if (!reader.attributes().isEmpty()) reader.raiseError(QString::fromLatin1("Unexpected attribute for element '%1'.").arg(name)); + if (name == scIcon) + qWarning() << "Deprecated element 'Icon'."; + if (blackList.contains(name)) { if (name == scRemoteRepositories) s.addDefaultRepositories(readRepositories(reader, true)); @@ -267,6 +273,10 @@ Settings Settings::fromFileAndPrefix(const QString &path, const QString &prefix) // Add some possible missing values if (!s.d->m_data.contains(scIcon)) s.d->m_data.insert(scIcon, QLatin1String(":/installer")); + if (!s.d->m_data.contains(scInstallerApplicationIcon)) + s.d->m_data.insert(scInstallerApplicationIcon, s.d->m_data.value(scIcon)); + if (!s.d->m_data.contains(scInstallerWindowIcon)) + s.d->m_data.insert(scInstallerWindowIcon, s.d->m_data.value(scIcon).toString() + s.systemIconSuffix()); if (!s.d->m_data.contains(scRemoveTargetDir)) s.d->m_data.insert(scRemoveTargetDir, scTrue); if (!s.d->m_data.contains(scUninstallerName)) @@ -325,15 +335,30 @@ QString Settings::background() const QString Settings::icon() const { - const QString icon = d->makeAbsolutePath(d->m_data.value(scIcon).toString()); + return d->makeAbsolutePath(d->m_data.value(scIcon).toString() + systemIconSuffix()); +} + +QString Settings::installerApplicationIcon() const +{ + return d->makeAbsolutePath(d->m_data.value(scInstallerApplicationIcon).toString() + systemIconSuffix()); +} + +QString Settings::installerWindowIcon() const +{ + return d->makeAbsolutePath(d->m_data.value(scInstallerWindowIcon).toString()); +} + +QString Settings::systemIconSuffix() const +{ #if defined(Q_OS_MAC) - return icon + QLatin1String(".icns"); + return QLatin1String(".icns"); #elif defined(Q_OS_WIN) - return icon + QLatin1String(".ico"); + return QLatin1String(".ico"); #endif - return icon + QLatin1String(".png"); + return QLatin1String(".png"); } + QString Settings::removeTargetDir() const { return d->m_data.value(scRemoveTargetDir).toString(); diff --git a/src/libs/installer/settings.h b/src/libs/installer/settings.h index 35a61a841..a6893d973 100644 --- a/src/libs/installer/settings.h +++ b/src/libs/installer/settings.h @@ -89,6 +89,9 @@ public: QString watermark() const; QString background() const; QString icon() const; + QString installerApplicationIcon() const; + QString installerWindowIcon() const; + QString systemIconSuffix() const; QString applicationName() const; QString applicationVersion() const; -- cgit v1.2.3