Skip to content

Commit

Permalink
Merge pull request #26 from hjaltisan/EO2891
Browse files Browse the repository at this point in the history
EO-2891 Installer step reduction
  • Loading branch information
hjaltisan authored Dec 1, 2020
2 parents 40ed232 + 38c2882 commit f58606e
Show file tree
Hide file tree
Showing 25 changed files with 3,455 additions and 188 deletions.
1 change: 1 addition & 0 deletions src/libs/installer/constants.h
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ static const QLatin1String scProductUUID("ProductUUID");
static const QLatin1String scAllUsers("AllUsers");
static const QLatin1String scSupportsModify("SupportsModify");
static const QLatin1String scChinaInstaller("ChinaInstaller");
static const QLatin1String scUninstallerComments("UninstallerComments");
static const QLatin1String scAllowUnstableComponents("AllowUnstableComponents");
static const QLatin1String scSaveDefaultRepositories("SaveDefaultRepositories");
static const QLatin1String scRepositoryCategoryDisplayName("RepositoryCategoryDisplayName");
Expand Down
22 changes: 22 additions & 0 deletions src/libs/installer/packagemanagercore.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,8 @@ using namespace QInstaller;
\value Introduction
\l{Introduction Page}
\value CustomIntroduction
\l{Custom Introduction Page}
\value TargetDirectory
\l{Target Directory Page}
\value ComponentSelection
Expand Down Expand Up @@ -2588,6 +2590,26 @@ bool PackageManagerCore::isOfflineOnly() const
return d->isOfflineOnly();
}

/*!
Returns \c true if using the custom introduction page.
\sa {installer::useCustomIntroductionPage}{installer.useCustomIntroductionPage}
*/
bool PackageManagerCore::useCustomIntroductionPage() const
{
return d->useCustomIntroductionPage();
}

/*!
Returns \c true if loading packages before showing introduction page.
\sa {installer::preloadPackages}{installer.preloadPackages}
*/
bool PackageManagerCore::preloadPackages() const
{
return d->preloadPackages();
}

/*!
\sa {installer::setUninstaller}{installer.setUninstaller}
\sa isUninstaller(), setUpdater(), setPackageManager()
Expand Down
3 changes: 3 additions & 0 deletions src/libs/installer/packagemanagercore.h
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ class INSTALLER_EXPORT PackageManagerCore : public QObject

enum WizardPage {
Introduction = 0x1000,
CustomIntroduction = 0x1001,
TargetDirectory = 0x2000,
ComponentSelection = 0x3000,
LicenseCheck = 0x4000,
Expand Down Expand Up @@ -222,6 +223,8 @@ class INSTALLER_EXPORT PackageManagerCore : public QObject
// convenience
Q_INVOKABLE bool isInstaller() const;
Q_INVOKABLE bool isOfflineOnly() const;
Q_INVOKABLE bool useCustomIntroductionPage() const;
Q_INVOKABLE bool preloadPackages() const;

Q_INVOKABLE void setUninstaller();
Q_INVOKABLE bool isUninstaller() const;
Expand Down
18 changes: 17 additions & 1 deletion src/libs/installer/packagemanagercore_p.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -629,6 +629,18 @@ bool PackageManagerCorePrivate::isOfflineOnly() const
return confInternal.value(QLatin1String("offlineOnly"), false).toBool();
}

bool PackageManagerCorePrivate::useCustomIntroductionPage() const
{
QSettings confInternal(QLatin1String(":/config/config-internal.ini"), QSettings::IniFormat);
return confInternal.value(QLatin1String("customIntroductionPage"), false).toBool();
}

bool PackageManagerCorePrivate::preloadPackages() const
{
QSettings confInternal(QLatin1String(":/config/config-internal.ini"), QSettings::IniFormat);
return confInternal.value(QLatin1String("preloadPackages"), false).toBool();
}

QString PackageManagerCorePrivate::installerBinaryPath() const
{
return qApp->applicationFilePath();
Expand Down Expand Up @@ -2040,7 +2052,11 @@ void PackageManagerCorePrivate::registerMaintenanceTool()
settings.setValue(QLatin1String("DisplayIcon"), maintenanceTool);
settings.setValue(scPublisher, m_data.value(scPublisher));
settings.setValue(QLatin1String("UrlInfoAbout"), m_data.value(QLatin1String("Url")));
settings.setValue(QLatin1String("Comments"), m_data.value(scTitle));
QString comments = m_data.value(scUninstallerComments).toString();
if (!comments.isEmpty())
{
settings.setValue(QLatin1String("Comments"), comments);
}
settings.setValue(QLatin1String("InstallDate"), QDateTime::currentDateTime().toString());
settings.setValue(QLatin1String("InstallLocation"), QDir::toNativeSeparators(targetDir()));
settings.setValue(QLatin1String("UninstallString"), maintenanceTool);
Expand Down
3 changes: 3 additions & 0 deletions src/libs/installer/packagemanagercore_p.h
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,9 @@ class PackageManagerCorePrivate : public QObject
void initialize(const QHash<QString, QString> &params);
bool isOfflineOnly() const;

bool useCustomIntroductionPage() const;
bool preloadPackages() const;

bool statusCanceledOrFailed() const;
void setStatus(int status, const QString &error = QString());

Expand Down
15 changes: 13 additions & 2 deletions src/libs/installer/packagemanagercoredata.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -74,12 +74,23 @@ PackageManagerCoreData::PackageManagerCoreData(const QHash<QString, QString> &va
m_variables.insert(scTitle, m_settings.title());
m_variables.insert(scPublisher, m_settings.publisher());
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());

// fill in start menu location
QString startMenuPath;
if (m_variables.value(scAllUsers, scFalse) == scTrue)
{
startMenuPath = m_variables.value(QLatin1String("AllUserStartMenuProgramsPath"));
}
else
{
startMenuPath = m_variables.value(QLatin1String("UserStartMenuProgramsPath"));
}
m_variables.insert(scStartMenuDir, startMenuPath + QDir::separator() + m_settings.startMenuDir());

const QString description = m_settings.runProgramDescription();
if (!description.isEmpty())
m_variables.insert(scRunProgramDescription, description);
Expand Down Expand Up @@ -150,7 +161,7 @@ void PackageManagerCoreData::setDynamicPredefinedVariables()
.toString();

QString desktop;
if (m_variables.value(QLatin1String("AllUsers")) == scTrue) {
if (m_variables.value(scAllUsers) == scTrue) {
desktop = system.value(QLatin1String("Desktop")).toString();
} else {
desktop = user.value(QLatin1String("Desktop")).toString();
Expand Down
Loading

0 comments on commit f58606e

Please sign in to comment.