diff options
author | Katja Marttila <katja.marttila@qt.io> | 2021-01-13 16:05:14 +0200 |
---|---|---|
committer | Katja Marttila <katja.marttila@qt.io> | 2021-01-14 22:40:19 +0200 |
commit | e8614d752b334373e9db3060a9bf02fce212f2d2 (patch) | |
tree | eea4e5a39c98f4b630e89e0188de592336d8a023 /src/libs/installer/packagemanagergui.cpp | |
parent | 4d9620977c81401f88212196b1d1a1094fc19699 (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/packagemanagergui.cpp')
-rw-r--r-- | src/libs/installer/packagemanagergui.cpp | 66 |
1 files changed, 27 insertions, 39 deletions
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; } /*! |