summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/packagemanagergui.cpp
diff options
context:
space:
mode:
authorAndreas Holzammer <andreas.holzammer.qnx@kdab.com>2012-04-25 13:21:12 +0200
committerTim Jenssen <tim.jenssen@nokia.com>2012-04-25 16:17:08 +0200
commit84a7443c75ea3c22d06290ec1fa2e6cf193b20f1 (patch)
tree0515956273f7822aa5b4970b7684824738d7683b /src/libs/installer/packagemanagergui.cpp
parentf691fd7ae2b1c9494174128289f1ade9e5ebdb03 (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.cpp32
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);