diff options
author | kh1 <karsten.heimrich@digia.com> | 2014-03-31 13:14:01 +0200 |
---|---|---|
committer | Karsten Heimrich <karsten.heimrich@digia.com> | 2014-04-24 20:07:58 +0200 |
commit | c9d5b84a9487b6a2a944d224ceab3ddf0c5814d8 (patch) | |
tree | 60813f7d8962001fc6b90d00f2e86306f4d7c97d /src/libs | |
parent | b3112e61685eff103de9b33b38dff1e4b7b802ec (diff) |
Provide an API to get all wizard pages from java script.
Task-number: QTIFW-477
Change-Id: Ic83df19d20ce310e3e295de929020182e1878273
Reviewed-by: Niels Weber <niels.weber@digia.com>
Diffstat (limited to 'src/libs')
-rw-r--r-- | src/libs/installer/packagemanagergui.cpp | 39 | ||||
-rw-r--r-- | src/libs/installer/packagemanagergui.h | 7 |
2 files changed, 33 insertions, 13 deletions
diff --git a/src/libs/installer/packagemanagergui.cpp b/src/libs/installer/packagemanagergui.cpp index b4fc797d4..14388776a 100644 --- a/src/libs/installer/packagemanagergui.cpp +++ b/src/libs/installer/packagemanagergui.cpp @@ -116,6 +116,8 @@ TRANSLATOR QInstaller::FinishedPage class DynamicInstallerPage : public PackageManagerPage { + Q_OBJECT + public: explicit DynamicInstallerPage(QWidget *widget, PackageManagerCore *core = 0) : PackageManagerPage(core) @@ -124,13 +126,17 @@ public: setObjectName(QLatin1String("Dynamic") + widget->objectName()); setPixmap(QWizard::WatermarkPixmap, QPixmap()); - setLayout(new QVBoxLayout); setColoredSubTitle(QLatin1String(" ")); setColoredTitle(widget->windowTitle()); m_widget->setProperty("complete", true); m_widget->setProperty("final", false); + m_widget->setProperty("commit", false); widget->installEventFilter(this); + + setLayout(new QVBoxLayout); layout()->addWidget(widget); + layout()->setContentsMargins(0, 0, 0, 0); + layout()->addItem(new QSpacerItem(20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding)); } QWidget *widget() const @@ -156,6 +162,8 @@ protected: emit completeChanged(); if (m_widget->property("final").toBool() != isFinalPage()) setFinalPage(m_widget->property("final").toBool()); + if (m_widget->property("commit").toBool() != isCommitPage()) + setFinalPage(m_widget->property("commit").toBool()); break; default: @@ -505,25 +513,20 @@ void PackageManagerGui::wizardPageVisibilityChangeRequested(bool visible, int p) } } -PackageManagerPage *PackageManagerGui::page(int pageId) const +QWidget *PackageManagerGui::pageById(int id) const { - return qobject_cast<PackageManagerPage*> (QWizard::page(pageId)); + return page(id); } -QWidget *PackageManagerGui::pageWidgetByObjectName(const QString &name) const +QWidget *PackageManagerGui::pageByObjectName(const QString &name) const { const QList<int> ids = pageIds(); foreach (const int i, ids) { PackageManagerPage *const p = qobject_cast<PackageManagerPage*> (page(i)); - if (p && p->objectName() == name) { - // For dynamic pages, return the contained widget (as read from the UI file), not the - // wrapper page - if (DynamicInstallerPage *dp = dynamic_cast<DynamicInstallerPage*>(p)) - return dp->widget(); + if (p && p->objectName() == name) return p; - } } - qDebug() << "No page found for object name" << name; + qWarning() << "No page found for object name" << name; return 0; } @@ -532,6 +535,20 @@ QWidget *PackageManagerGui::currentPageWidget() const return currentPage(); } +QWidget *PackageManagerGui::pageWidgetByObjectName(const QString &name) const +{ + QWidget *const widget = pageByObjectName(name); + if (PackageManagerPage *const p = qobject_cast<PackageManagerPage*> (widget)) { + // For dynamic pages, return the contained widget (as read from the UI file), not the + // wrapper page + if (DynamicInstallerPage *dp = qobject_cast<DynamicInstallerPage *>(p)) + return dp->widget(); + return p; + } + qWarning() << "No page found for object name" << name; + return 0; +} + void PackageManagerGui::cancelButtonClicked() { const int id = currentId(); diff --git a/src/libs/installer/packagemanagergui.h b/src/libs/installer/packagemanagergui.h index 948fb346a..906f3530d 100644 --- a/src/libs/installer/packagemanagergui.h +++ b/src/libs/installer/packagemanagergui.h @@ -83,9 +83,12 @@ public: void loadControlScript(const QString& scriptPath); void callControlScriptMethod(const QString& methodName); - Q_INVOKABLE PackageManagerPage* page(int pageId) const; - Q_INVOKABLE QWidget* pageWidgetByObjectName(const QString& name) const; + Q_INVOKABLE QWidget *pageById(int id) const; + Q_INVOKABLE QWidget *pageByObjectName(const QString &name) const; + Q_INVOKABLE QWidget* currentPageWidget() const; + Q_INVOKABLE QWidget* pageWidgetByObjectName(const QString &name) const; + Q_INVOKABLE QString defaultButtonText(int wizardButton) const; Q_INVOKABLE void clickButton(int wizardButton, int delayInMs = 0); Q_INVOKABLE bool isButtonEnabled(int wizardButton); |