summaryrefslogtreecommitdiffstats
path: root/src/libs
diff options
context:
space:
mode:
authorArttu Tarkiainen <arttu.tarkiainen@qt.io>2020-09-08 10:56:15 +0300
committerArttu Tarkiainen <arttu.tarkiainen@qt.io>2020-09-11 12:04:24 +0300
commit88991ee63437788cce465f2a89f9e4c8c9199554 (patch)
tree80c0d82d7d727b051a48979479ebc2b6b6adfb4c /src/libs
parentd23abd3b1e408dcbeba8fd17e15743b2b47ebaa0 (diff)
Page list widget enhancements
- Add support for a configurable image shown on top of the page list. - Add missing object names for easier object reference, for example when using stylesheets. - Remove the vertical line separating side widget as this looks particularly ugly on custom styles. Task-number: QTIFW-1939 Change-Id: I16e17e72163068381f54491f7fbe965eb4c5295d Reviewed-by: Katja Marttila <katja.marttila@qt.io>
Diffstat (limited to 'src/libs')
-rw-r--r--src/libs/installer/packagemanagercoredata.cpp1
-rw-r--r--src/libs/installer/packagemanagergui.cpp16
-rw-r--r--src/libs/installer/settings.cpp8
-rw-r--r--src/libs/installer/settings.h1
4 files changed, 20 insertions, 6 deletions
diff --git a/src/libs/installer/packagemanagercoredata.cpp b/src/libs/installer/packagemanagercoredata.cpp
index 667e2f577..47c511c12 100644
--- a/src/libs/installer/packagemanagercoredata.cpp
+++ b/src/libs/installer/packagemanagercoredata.cpp
@@ -78,6 +78,7 @@ PackageManagerCoreData::PackageManagerCoreData(const QHash<QString, QString> &va
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());
const QString description = m_settings.runProgramDescription();
if (!description.isEmpty())
diff --git a/src/libs/installer/packagemanagergui.cpp b/src/libs/installer/packagemanagergui.cpp
index 9c59987cc..d79c1762e 100644
--- a/src/libs/installer/packagemanagergui.cpp
+++ b/src/libs/installer/packagemanagergui.cpp
@@ -341,8 +341,10 @@ PackageManagerGui::PackageManagerGui(PackageManagerCore *core, QWidget *parent)
if (m_core->settings().wizardShowPageList()) {
QWidget *sideWidget = new QWidget(this);
+ sideWidget->setObjectName(QLatin1String("SideWidget"));
m_pageListWidget = new QListWidget(sideWidget);
+ m_pageListWidget->setObjectName(QLatin1String("PageListWidget"));
m_pageListWidget->viewport()->setAutoFillBackground(false);
m_pageListWidget->setFrameShape(QFrame::NoFrame);
m_pageListWidget->setMinimumWidth(200);
@@ -354,13 +356,17 @@ PackageManagerGui::PackageManagerGui(PackageManagerCore *core, QWidget *parent)
m_pageListWidget->setSelectionMode(QAbstractItemView::NoSelection);
m_pageListWidget->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
- QFrame *verticalLine = new QFrame(sideWidget);
- verticalLine->setFrameShape(QFrame::VLine);
- verticalLine->setFrameShadow(QFrame::Sunken);
+ QVBoxLayout *sideWidgetLayout = new QVBoxLayout(sideWidget);
- QHBoxLayout *sideWidgetLayout = new QHBoxLayout(sideWidget);
+ const QString pageListPixmap = m_core->settings().pageListPixmap();
+ if (!pageListPixmap.isEmpty()) {
+ QLabel *pageListPixmapLabel = new QLabel(sideWidget);
+ pageListPixmapLabel->setObjectName(QLatin1String("PageListPixmapLabel"));
+ pageListPixmapLabel->setPixmap(pageListPixmap);
+ pageListPixmapLabel->setMinimumWidth(QPixmap(pageListPixmap).width());
+ sideWidgetLayout->addWidget(pageListPixmapLabel);
+ }
sideWidgetLayout->addWidget(m_pageListWidget);
- sideWidgetLayout->addWidget(verticalLine);
sideWidget->setLayout(sideWidgetLayout);
setSideWidget(sideWidget);
diff --git a/src/libs/installer/settings.cpp b/src/libs/installer/settings.cpp
index 347449dcc..66fad88e5 100644
--- a/src/libs/installer/settings.cpp
+++ b/src/libs/installer/settings.cpp
@@ -51,6 +51,7 @@ 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");
@@ -284,7 +285,7 @@ Settings Settings::fromFileAndPrefix(const QString &path, const QString &prefix,
elementList << scName << scVersion << scTitle << scPublisher << scProductUrl
<< scTargetDir << scAdminTargetDir
<< scInstallerApplicationIcon << scInstallerWindowIcon
- << scLogo << scWatermark << scBanner << scBackground
+ << scLogo << scWatermark << scBanner << scBackground << scPageListPixmap
<< scStartMenuDir << scMaintenanceToolName << scMaintenanceToolIniFile << scRemoveTargetDir
<< scRunProgram << scRunProgramArguments << scRunProgramDescription
<< scDependsOnLocalInstallerBinary
@@ -423,6 +424,11 @@ QString Settings::background() const
return d->absolutePathFromKey(scBackground);
}
+QString Settings::pageListPixmap() const
+{
+ return d->absolutePathFromKey(scPageListPixmap);
+}
+
QString Settings::wizardStyle() const
{
return d->m_data.value(scWizardStyle).toString();
diff --git a/src/libs/installer/settings.h b/src/libs/installer/settings.h
index 6927c54a0..4227ae957 100644
--- a/src/libs/installer/settings.h
+++ b/src/libs/installer/settings.h
@@ -80,6 +80,7 @@ public:
QString watermark() const;
QString banner() const;
QString background() const;
+ QString pageListPixmap() const;
QString installerApplicationIcon() const;
QString installerWindowIcon() const;
QString systemIconSuffix() const;