Skip to content

Commit f58606e

Browse files
authored
Merge pull request #26 from hjaltisan/EO2891
EO-2891 Installer step reduction
2 parents 40ed232 + 38c2882 commit f58606e

25 files changed

+3455
-188
lines changed

src/libs/installer/constants.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ static const QLatin1String scProductUUID("ProductUUID");
9090
static const QLatin1String scAllUsers("AllUsers");
9191
static const QLatin1String scSupportsModify("SupportsModify");
9292
static const QLatin1String scChinaInstaller("ChinaInstaller");
93+
static const QLatin1String scUninstallerComments("UninstallerComments");
9394
static const QLatin1String scAllowUnstableComponents("AllowUnstableComponents");
9495
static const QLatin1String scSaveDefaultRepositories("SaveDefaultRepositories");
9596
static const QLatin1String scRepositoryCategoryDisplayName("RepositoryCategoryDisplayName");

src/libs/installer/packagemanagercore.cpp

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,8 @@ using namespace QInstaller;
100100
101101
\value Introduction
102102
\l{Introduction Page}
103+
\value CustomIntroduction
104+
\l{Custom Introduction Page}
103105
\value TargetDirectory
104106
\l{Target Directory Page}
105107
\value ComponentSelection
@@ -2588,6 +2590,26 @@ bool PackageManagerCore::isOfflineOnly() const
25882590
return d->isOfflineOnly();
25892591
}
25902592

2593+
/*!
2594+
Returns \c true if using the custom introduction page.
2595+
2596+
\sa {installer::useCustomIntroductionPage}{installer.useCustomIntroductionPage}
2597+
*/
2598+
bool PackageManagerCore::useCustomIntroductionPage() const
2599+
{
2600+
return d->useCustomIntroductionPage();
2601+
}
2602+
2603+
/*!
2604+
Returns \c true if loading packages before showing introduction page.
2605+
2606+
\sa {installer::preloadPackages}{installer.preloadPackages}
2607+
*/
2608+
bool PackageManagerCore::preloadPackages() const
2609+
{
2610+
return d->preloadPackages();
2611+
}
2612+
25912613
/*!
25922614
\sa {installer::setUninstaller}{installer.setUninstaller}
25932615
\sa isUninstaller(), setUpdater(), setPackageManager()

src/libs/installer/packagemanagercore.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ class INSTALLER_EXPORT PackageManagerCore : public QObject
7979

8080
enum WizardPage {
8181
Introduction = 0x1000,
82+
CustomIntroduction = 0x1001,
8283
TargetDirectory = 0x2000,
8384
ComponentSelection = 0x3000,
8485
LicenseCheck = 0x4000,
@@ -222,6 +223,8 @@ class INSTALLER_EXPORT PackageManagerCore : public QObject
222223
// convenience
223224
Q_INVOKABLE bool isInstaller() const;
224225
Q_INVOKABLE bool isOfflineOnly() const;
226+
Q_INVOKABLE bool useCustomIntroductionPage() const;
227+
Q_INVOKABLE bool preloadPackages() const;
225228

226229
Q_INVOKABLE void setUninstaller();
227230
Q_INVOKABLE bool isUninstaller() const;

src/libs/installer/packagemanagercore_p.cpp

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -629,6 +629,18 @@ bool PackageManagerCorePrivate::isOfflineOnly() const
629629
return confInternal.value(QLatin1String("offlineOnly"), false).toBool();
630630
}
631631

632+
bool PackageManagerCorePrivate::useCustomIntroductionPage() const
633+
{
634+
QSettings confInternal(QLatin1String(":/config/config-internal.ini"), QSettings::IniFormat);
635+
return confInternal.value(QLatin1String("customIntroductionPage"), false).toBool();
636+
}
637+
638+
bool PackageManagerCorePrivate::preloadPackages() const
639+
{
640+
QSettings confInternal(QLatin1String(":/config/config-internal.ini"), QSettings::IniFormat);
641+
return confInternal.value(QLatin1String("preloadPackages"), false).toBool();
642+
}
643+
632644
QString PackageManagerCorePrivate::installerBinaryPath() const
633645
{
634646
return qApp->applicationFilePath();
@@ -2040,7 +2052,11 @@ void PackageManagerCorePrivate::registerMaintenanceTool()
20402052
settings.setValue(QLatin1String("DisplayIcon"), maintenanceTool);
20412053
settings.setValue(scPublisher, m_data.value(scPublisher));
20422054
settings.setValue(QLatin1String("UrlInfoAbout"), m_data.value(QLatin1String("Url")));
2043-
settings.setValue(QLatin1String("Comments"), m_data.value(scTitle));
2055+
QString comments = m_data.value(scUninstallerComments).toString();
2056+
if (!comments.isEmpty())
2057+
{
2058+
settings.setValue(QLatin1String("Comments"), comments);
2059+
}
20442060
settings.setValue(QLatin1String("InstallDate"), QDateTime::currentDateTime().toString());
20452061
settings.setValue(QLatin1String("InstallLocation"), QDir::toNativeSeparators(targetDir()));
20462062
settings.setValue(QLatin1String("UninstallString"), maintenanceTool);

src/libs/installer/packagemanagercore_p.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,9 @@ class PackageManagerCorePrivate : public QObject
8686
void initialize(const QHash<QString, QString> &params);
8787
bool isOfflineOnly() const;
8888

89+
bool useCustomIntroductionPage() const;
90+
bool preloadPackages() const;
91+
8992
bool statusCanceledOrFailed() const;
9093
void setStatus(int status, const QString &error = QString());
9194

src/libs/installer/packagemanagercoredata.cpp

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,12 +74,23 @@ PackageManagerCoreData::PackageManagerCoreData(const QHash<QString, QString> &va
7474
m_variables.insert(scTitle, m_settings.title());
7575
m_variables.insert(scPublisher, m_settings.publisher());
7676
m_variables.insert(QLatin1String("Url"), m_settings.url());
77-
m_variables.insert(scStartMenuDir, m_settings.startMenuDir());
7877
m_variables.insert(scTargetConfigurationFile, m_settings.configurationFileName());
7978
m_variables.insert(QLatin1String("LogoPixmap"), m_settings.logo());
8079
m_variables.insert(QLatin1String("WatermarkPixmap"), m_settings.watermark());
8180
m_variables.insert(QLatin1String("BannerPixmap"), m_settings.banner());
8281

82+
// fill in start menu location
83+
QString startMenuPath;
84+
if (m_variables.value(scAllUsers, scFalse) == scTrue)
85+
{
86+
startMenuPath = m_variables.value(QLatin1String("AllUserStartMenuProgramsPath"));
87+
}
88+
else
89+
{
90+
startMenuPath = m_variables.value(QLatin1String("UserStartMenuProgramsPath"));
91+
}
92+
m_variables.insert(scStartMenuDir, startMenuPath + QDir::separator() + m_settings.startMenuDir());
93+
8394
const QString description = m_settings.runProgramDescription();
8495
if (!description.isEmpty())
8596
m_variables.insert(scRunProgramDescription, description);
@@ -150,7 +161,7 @@ void PackageManagerCoreData::setDynamicPredefinedVariables()
150161
.toString();
151162

152163
QString desktop;
153-
if (m_variables.value(QLatin1String("AllUsers")) == scTrue) {
164+
if (m_variables.value(scAllUsers) == scTrue) {
154165
desktop = system.value(QLatin1String("Desktop")).toString();
155166
} else {
156167
desktop = user.value(QLatin1String("Desktop")).toString();

0 commit comments

Comments
 (0)