diff options
Diffstat (limited to 'src/sdk/installerbasecommons.cpp')
-rw-r--r-- | src/sdk/installerbasecommons.cpp | 28 |
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; +} |