diff options
Diffstat (limited to 'src/libs/installer/packagemanagergui.cpp')
-rw-r--r-- | src/libs/installer/packagemanagergui.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/libs/installer/packagemanagergui.cpp b/src/libs/installer/packagemanagergui.cpp index 2715155ff..f7c500811 100644 --- a/src/libs/installer/packagemanagergui.cpp +++ b/src/libs/installer/packagemanagergui.cpp @@ -2227,6 +2227,24 @@ void ComponentSelectionPage::showEvent(QShowEvent *event) QWizardPage::showEvent(event); } +bool ComponentSelectionPage::validatePage() +{ + PackageManagerCore *core = packageManagerCore(); + try { + core->loadComponentScripts(core->orderedComponentsToInstall(), true); + } catch (const Error &error) { + // As component script loading failed, there is error in the script and component is + // marked as unselected. Recalculate so that unselected component is removed from install. + // User is then able to select other components for install. + core->clearComponentsToInstallCalculated(); + core->calculateComponentsToInstall(); + MessageBoxHandler::critical(MessageBoxHandler::currentBestSuitParent(), QLatin1String("Error"), + tr("Error"), error.message()); + return false; + } + return true; +} + /*! Selects all components in the component tree. */ |