From 6ec6ac70d98195bb41a5ed60e47984bc640066fc Mon Sep 17 00:00:00 2001 From: Katja Marttila Date: Tue, 26 Oct 2021 08:50:07 +0300 Subject: Add click option for product image Product image can now be clicked. It opens either url in Web browser or if file reference is given, then it will be opened with the suitable application. Task-number: QTIFW-2361 Change-Id: I59ed1355e90c23c8d0a5124779725825ca1ee2c8 Reviewed-by: Arttu Tarkiainen --- src/libs/installer/packagemanagergui.cpp | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) (limited to 'src/libs/installer/packagemanagergui.cpp') diff --git a/src/libs/installer/packagemanagergui.cpp b/src/libs/installer/packagemanagergui.cpp index fa46e4720..e49d45879 100644 --- a/src/libs/installer/packagemanagergui.cpp +++ b/src/libs/installer/packagemanagergui.cpp @@ -2698,7 +2698,7 @@ void ReadyForInstallationPage::updatePageListTitle() */ PerformInstallationPage::PerformInstallationPage(PackageManagerCore *core) : PackageManagerPage(core) - , m_performInstallationForm(new PerformInstallationForm(this)) + , m_performInstallationForm(new PerformInstallationForm(core, this)) { setPixmap(QWizard::WatermarkPixmap, QPixmap()); setObjectName(QLatin1String("PerformInstallationPage")); @@ -2836,17 +2836,26 @@ void PerformInstallationPage::setTitleMessage(const QString &title) */ void PerformInstallationPage::changeCurrentImage() { - const QStringList productImages = packageManagerCore()->settings().productImages(); + const QMap productImages = packageManagerCore()->settings().productImages(); if (productImages.isEmpty()) return; - const QString nextImage = (m_currentImage.isEmpty() || m_currentImage == productImages.last()) - ? productImages.first() - : productImages.at(productImages.indexOf(m_currentImage) + 1); + QString nextImage; + QString nextUrl; + if (m_currentImage.isEmpty() || m_currentImage == productImages.lastKey()) { + nextImage = productImages.firstKey(); + nextUrl = productImages.value(nextImage).toString(); + } else { + QMap::const_iterator i = productImages.constFind(m_currentImage); + if (++i != productImages.end()) { + nextImage = i.key(); + nextUrl = i.value().toString(); + } + } // Do not update the pixmap if there was only one image available if (nextImage != m_currentImage) { - m_performInstallationForm->setImageFromFileName(nextImage); + m_performInstallationForm->setImageFromFileName(nextImage, nextUrl); m_currentImage = nextImage; } } -- cgit v1.2.3