summaryrefslogtreecommitdiffstats
path: root/src/libs/installer
diff options
context:
space:
mode:
authorKatja Marttila <katja.marttila@qt.io>2021-01-13 16:05:14 +0200
committerKatja Marttila <katja.marttila@qt.io>2021-01-14 22:40:19 +0200
commite8614d752b334373e9db3060a9bf02fce212f2d2 (patch)
treeeea4e5a39c98f4b630e89e0188de592336d8a023 /src/libs/installer
parent4d9620977c81401f88212196b1d1a1094fc19699 (diff)
Add highdpi support for watermark, banner, background and pagelistpixmaps
Task-number: QTIFW-2084 Change-Id: I4047457aae9709819f1a19ec9c74c5a88e9b7e7c Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
Diffstat (limited to 'src/libs/installer')
-rw-r--r--src/libs/installer/constants.h6
-rw-r--r--src/libs/installer/packagemanagercoredata.cpp8
-rw-r--r--src/libs/installer/packagemanagergui.cpp66
-rw-r--r--src/libs/installer/packagemanagergui.h4
-rw-r--r--src/libs/installer/settings.cpp5
5 files changed, 37 insertions, 52 deletions
diff --git a/src/libs/installer/constants.h b/src/libs/installer/constants.h
index be42426fb..7ecdf2b89 100644
--- a/src/libs/installer/constants.h
+++ b/src/libs/installer/constants.h
@@ -100,7 +100,11 @@ static const QLatin1String scAllowUnstableComponents("AllowUnstableComponents");
static const QLatin1String scSaveDefaultRepositories("SaveDefaultRepositories");
static const QLatin1String scRepositoryCategoryDisplayName("RepositoryCategoryDisplayName");
static const QLatin1String scHighDpi("@2x.");
-
+static const QLatin1String scWatermark("Watermark");
+static const QLatin1String scBanner("Banner");
+static const QLatin1String scLogo("Logo");
+static const QLatin1String scBackground("Background");
+static const QLatin1String scPageListPixmap("PageListPixmap");
const char scRelocatable[] = "@RELOCATABLE_PATH@";
}
diff --git a/src/libs/installer/packagemanagercoredata.cpp b/src/libs/installer/packagemanagercoredata.cpp
index 14f9cff47..9f8ec7014 100644
--- a/src/libs/installer/packagemanagercoredata.cpp
+++ b/src/libs/installer/packagemanagercoredata.cpp
@@ -81,10 +81,10 @@ PackageManagerCoreData::PackageManagerCoreData(const QHash<QString, QString> &va
m_variables.insert(QLatin1String("Url"), m_settings.url());
m_variables.insert(scStartMenuDir, m_settings.startMenuDir());
m_variables.insert(scTargetConfigurationFile, m_settings.configurationFileName());
- m_variables.insert(QLatin1String("LogoPixmap"), m_settings.logo());
- m_variables.insert(QLatin1String("WatermarkPixmap"), m_settings.watermark());
- m_variables.insert(QLatin1String("BannerPixmap"), m_settings.banner());
- m_variables.insert(QLatin1String("PageListPixmap"), m_settings.pageListPixmap());
+ m_variables.insert(scLogo, m_settings.logo());
+ m_variables.insert(scWatermark, m_settings.watermark());
+ m_variables.insert(scBanner, m_settings.banner());
+ m_variables.insert(scPageListPixmap, m_settings.pageListPixmap());
const QString description = m_settings.runProgramDescription();
if (!description.isEmpty())
diff --git a/src/libs/installer/packagemanagergui.cpp b/src/libs/installer/packagemanagergui.cpp
index 4a454e781..277e1873a 100644
--- a/src/libs/installer/packagemanagergui.cpp
+++ b/src/libs/installer/packagemanagergui.cpp
@@ -300,8 +300,11 @@ PackageManagerGui::PackageManagerGui(PackageManagerCore *core, QWidget *parent)
#ifndef Q_OS_MACOS
setWindowIcon(QIcon(m_core->settings().installerWindowIcon()));
#endif
- if (!m_core->settings().wizardShowPageList())
- setPixmap(QWizard::BackgroundPixmap, m_core->settings().background());
+ if (!m_core->settings().wizardShowPageList()) {
+ QString pixmapStr = m_core->settings().background();
+ QInstaller::replaceHighDpiImage(pixmapStr);
+ setPixmap(QWizard::BackgroundPixmap, pixmapStr);
+ }
#ifdef Q_OS_LINUX
setWizardStyle(QWizard::ModernStyle);
setSizeGripEnabled(true);
@@ -347,8 +350,9 @@ PackageManagerGui::PackageManagerGui(PackageManagerCore *core, QWidget *parent)
QVBoxLayout *sideWidgetLayout = new QVBoxLayout(sideWidget);
- const QString pageListPixmap = m_core->settings().pageListPixmap();
+ QString pageListPixmap = m_core->settings().pageListPixmap();
if (!pageListPixmap.isEmpty()) {
+ QInstaller::replaceHighDpiImage(pageListPixmap);
QLabel *pageListPixmapLabel = new QLabel(sideWidget);
pageListPixmapLabel->setObjectName(QLatin1String("PageListPixmapLabel"));
pageListPixmapLabel->setPixmap(pageListPixmap);
@@ -1188,10 +1192,10 @@ PackageManagerPage::PackageManagerPage(PackageManagerCore *core)
m_titleColor = m_core->settings().titleColor();
if (!m_core->settings().wizardShowPageList())
- setPixmap(QWizard::WatermarkPixmap, watermarkPixmap());
+ setPixmap(QWizard::WatermarkPixmap, wizardPixmap(scWatermark));
- setPixmap(QWizard::BannerPixmap, bannerPixmap());
- setPixmap(QWizard::LogoPixmap, logoPixmap());
+ setPixmap(QWizard::BannerPixmap, wizardPixmap(scBanner));
+ setPixmap(QWizard::LogoPixmap, wizardPixmap(scLogo));
// Can't use PackageManagerPage::gui() here as the page is not set yet
if (PackageManagerGui *gui = qobject_cast<PackageManagerGui *>(core->guiObject())) {
@@ -1209,42 +1213,26 @@ PackageManagerCore *PackageManagerPage::packageManagerCore() const
}
/*!
- Returns the watermark pixmap specified in the \c <Watermark> element of the package information
- file.
+ Returns the pixmap specified by \a pixmapType. \a pixmapType can be \c <Banner>,
+ \c <Logo> or \c <Watermark> element of the package information file. If @2x image
+ is provided, returns that instead for high DPI displays.
*/
-QPixmap PackageManagerPage::watermarkPixmap() const
+QPixmap PackageManagerPage::wizardPixmap(const QString &pixmapType) const
{
- return QPixmap(m_core->value(QLatin1String("WatermarkPixmap")));
-}
-
-/*!
- Returns the banner pixmap specified in the \c <Banner> element of the package information file.
- Only used by the modern UI style.
-*/
-QPixmap PackageManagerPage::bannerPixmap() const
-{
- QPixmap banner(m_core->value(QLatin1String("BannerPixmap")));
-
- if (!banner.isNull()) {
- int width;
- if (m_core->settings().containsValue(QLatin1String("WizardDefaultWidth")) )
- width = m_core->settings().wizardDefaultWidth();
- else
- width = size().width();
- banner = banner.scaledToWidth(width, Qt::SmoothTransformation);
+ QString pixmapStr = m_core->value(pixmapType);
+ QInstaller::replaceHighDpiImage(pixmapStr);
+ QPixmap pixmap(pixmapStr);
+ if (pixmapType == scBanner) {
+ if (!pixmap.isNull()) {
+ int width;
+ if (m_core->settings().containsValue(QLatin1String("WizardDefaultWidth")) )
+ width = m_core->settings().wizardDefaultWidth();
+ else
+ width = size().width();
+ pixmap = pixmap.scaledToWidth(width, Qt::SmoothTransformation);
+ }
}
- return banner;
-}
-
-/*!
- Returns the logo pixmap specified in the \c <Logo> element of the package information file.
- If @2x image is provided, returns that instead for high DPI displays.
-*/
-QPixmap PackageManagerPage::logoPixmap() const
-{
- QString logoPixmap = m_core->value(QLatin1String("LogoPixmap"));
- QInstaller::replaceHighDpiImage(logoPixmap);
- return QPixmap(logoPixmap);
+ return pixmap;
}
/*!
diff --git a/src/libs/installer/packagemanagergui.h b/src/libs/installer/packagemanagergui.h
index 9cb5ea316..9013c6fe8 100644
--- a/src/libs/installer/packagemanagergui.h
+++ b/src/libs/installer/packagemanagergui.h
@@ -152,10 +152,8 @@ public:
explicit PackageManagerPage(PackageManagerCore *core);
virtual ~PackageManagerPage() {}
- virtual QPixmap logoPixmap() const;
virtual QString productName() const;
- virtual QPixmap watermarkPixmap() const;
- virtual QPixmap bannerPixmap() const;
+ virtual QPixmap wizardPixmap(const QString &pixmapType) const;
void setColoredTitle(const QString &title);
void setColoredSubTitle(const QString &subTitle);
diff --git a/src/libs/installer/settings.cpp b/src/libs/installer/settings.cpp
index 8b921213b..5d8bde36a 100644
--- a/src/libs/installer/settings.cpp
+++ b/src/libs/installer/settings.cpp
@@ -59,13 +59,8 @@ using namespace QInstaller;
static const QLatin1String scInstallerApplicationIcon("InstallerApplicationIcon");
static const QLatin1String scInstallerWindowIcon("InstallerWindowIcon");
-static const QLatin1String scLogo("Logo");
static const QLatin1String scPrefix("Prefix");
-static const QLatin1String scWatermark("Watermark");
-static const QLatin1String scBanner("Banner");
static const QLatin1String scProductUrl("ProductUrl");
-static const QLatin1String scBackground("Background");
-static const QLatin1String scPageListPixmap("PageListPixmap");
static const QLatin1String scAdminTargetDir("AdminTargetDir");
static const QLatin1String scMaintenanceToolName("MaintenanceToolName");
static const QLatin1String scUserRepositories("UserRepositories");