diff options
author | Andreas Holzammer <andreas.holzammer.qnx@kdab.com> | 2012-04-25 13:21:12 +0200 |
---|---|---|
committer | Tim Jenssen <tim.jenssen@nokia.com> | 2012-04-25 16:17:08 +0200 |
commit | 84a7443c75ea3c22d06290ec1fa2e6cf193b20f1 (patch) | |
tree | 0515956273f7822aa5b4970b7684824738d7683b /src/libs/installer/packagemanagergui.cpp | |
parent | f691fd7ae2b1c9494174128289f1ade9e5ebdb03 (diff) |
Add possibility to verify custom pages.
Introduce setValidatorForCustomPage, to set a validator
for a custom page.
Change-Id: I24739d9544c20e0b2b1beab1ae90f8b98cc3d542
Reviewed-by: Karsten Heimrich <karsten.heimrich@nokia.com>
Reviewed-by: Tim Jenssen <tim.jenssen@nokia.com>
Diffstat (limited to 'src/libs/installer/packagemanagergui.cpp')
-rw-r--r-- | src/libs/installer/packagemanagergui.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/libs/installer/packagemanagergui.cpp b/src/libs/installer/packagemanagergui.cpp index ad71596bd..2840d3ee2 100644 --- a/src/libs/installer/packagemanagergui.cpp +++ b/src/libs/installer/packagemanagergui.cpp @@ -255,6 +255,9 @@ PackageManagerGui::PackageManagerGui(PackageManagerCore *core, QWidget *parent) connect(m_core, SIGNAL(wizardPageVisibilityChangeRequested(bool, int)), this, SLOT(wizardPageVisibilityChangeRequested(bool, int)), Qt::QueuedConnection); + connect(m_core, SIGNAL(setValidatorForCustomPageRequested(QInstaller::Component*, QString, QString)), + this, SLOT(setValidatorForCustomPageRequested(QInstaller::Component*, QString, QString))); + connect(m_core, SIGNAL(setAutomatedPageSwitchEnabled(bool)), this, SLOT(setAutomatedPageSwitchEnabled(bool))); @@ -295,6 +298,22 @@ void PackageManagerGui::clickButton(int wb, int delay) } } +void PackageManagerGui::setValidatorForCustomPageRequested(Component *component, const QString &name, + const QString &callbackName) +{ + component->setValidatorCallbackName(callbackName); + + const QString componentName = QLatin1String("Dynamic") + name; + const QList<int> ids = pageIds(); + foreach (const int i, ids) { + PackageManagerPage *const p = qobject_cast<PackageManagerPage*> (page(i)); + if (p && p->objectName() == componentName) { + p->setValidatePageComponent(component); + return; + } + } +} + /*! Loads a script to perform the installation non-interactively. @throws QInstaller::Error if the script is not readable/cannot be parsed @@ -629,6 +648,7 @@ PackageManagerPage::PackageManagerPage(PackageManagerCore *core) : m_fresh(true) , m_complete(true) , m_core(core) + , validatorComponent(0) { } @@ -706,6 +726,18 @@ void PackageManagerPage::setComplete(bool complete) emit completeChanged(); } +void PackageManagerPage::setValidatePageComponent(Component *component) +{ + validatorComponent = component; +} + +bool PackageManagerPage::validatePage() +{ + if (validatorComponent) + return validatorComponent->validatePage(); + return true; +} + void PackageManagerPage::insertWidget(QWidget *widget, const QString &siblingName, int offset) { QWidget *sibling = findChild<QWidget *>(siblingName); |