summaryrefslogtreecommitdiffstats
path: root/src/sdk/installerbasecommons.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/sdk/installerbasecommons.cpp')
-rw-r--r--src/sdk/installerbasecommons.cpp28
1 files changed, 23 insertions, 5 deletions
diff --git a/src/sdk/installerbasecommons.cpp b/src/sdk/installerbasecommons.cpp
index 717eb2039..8ba769ece 100644
--- a/src/sdk/installerbasecommons.cpp
+++ b/src/sdk/installerbasecommons.cpp
@@ -36,6 +36,7 @@
#include <scriptengine.h>
#include <packagemanagerpagefactory.h>
#include <productkeycheck.h>
+#include <settings.h>
using namespace QInstaller;
@@ -86,17 +87,24 @@ MaintenanceGui::MaintenanceGui(PackageManagerCore *core)
}
IntroductionPage *intro = new IntroductionPage(core);
- connect(intro, SIGNAL(packageManagerCoreTypeChanged()), this, SLOT(updateRestartPage()));
+ connect(intro, &IntroductionPage::packageManagerCoreTypeChanged,
+ this, &MaintenanceGui::updateRestartPage);
+
+ if (!core->isOfflineOnly() || validRepositoriesAvailable()) {
+ setPage(PackageManagerCore::Introduction, intro);
+ setPage(PackageManagerCore::ComponentSelection, new ComponentSelectionPage(core));
+ setPage(PackageManagerCore::LicenseCheck, new LicenseAgreementPage(core));
+ } else {
+ core->setUninstaller();
+ core->setCompleteUninstallation(true);
+ }
- setPage(PackageManagerCore::Introduction, intro);
- setPage(PackageManagerCore::ComponentSelection, new ComponentSelectionPage(core));
- setPage(PackageManagerCore::LicenseCheck, new LicenseAgreementPage(core));
setPage(PackageManagerCore::ReadyForInstallation, new ReadyForInstallationPage(core));
setPage(PackageManagerCore::PerformInstallation, new PerformInstallationPage(core));
setPage(PackageManagerCore::InstallationFinished, new FinishedPage(core));
RestartPage *p = new RestartPage(core);
- connect(p, SIGNAL(restart()), this, SIGNAL(gotRestarted()));
+ connect(p, &RestartPage::restart, this, &PackageManagerGui::gotRestarted);
setPage(PackageManagerCore::InstallationFinished + 1, p);
if (core->isUninstaller())
@@ -114,3 +122,13 @@ void MaintenanceGui::updateRestartPage()
wizardPageVisibilityChangeRequested((packageManagerCore()->isUninstaller() ? false : true),
PackageManagerCore::InstallationFinished + 1);
}
+
+bool MaintenanceGui::validRepositoriesAvailable() const
+{
+ foreach (const Repository &repo, packageManagerCore()->settings().repositories()) {
+ if (repo.isEnabled() && repo.isValid()) {
+ return true;
+ }
+ }
+ return false;
+}