summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorNiels Weber <niels.weber@digia.com>2013-03-19 14:41:17 +0100
committerNiels Weber <niels.weber@digia.com>2013-03-21 13:32:31 +0100
commit44fc5acd5c44da29306558ef5a081afb0ea92304 (patch)
tree40a24e8fad5bcc3ed8968f214263de1bb8947673 /src
parent5eaf779bfa35eb9dd825a802550263af666d58e9 (diff)
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 <karsten.heimrich@digia.com>
Diffstat (limited to 'src')
-rw-r--r--src/libs/installer/packagemanagergui.cpp2
-rw-r--r--src/libs/installer/settings.cpp35
-rw-r--r--src/libs/installer/settings.h3
3 files changed, 34 insertions, 6 deletions
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;