summaryrefslogtreecommitdiffstats
path: root/src/libs
diff options
context:
space:
mode:
authorkh1 <karsten.heimrich@digia.com>2014-03-31 13:14:01 +0200
committerKarsten Heimrich <karsten.heimrich@digia.com>2014-04-24 20:07:58 +0200
commitc9d5b84a9487b6a2a944d224ceab3ddf0c5814d8 (patch)
tree60813f7d8962001fc6b90d00f2e86306f4d7c97d /src/libs
parentb3112e61685eff103de9b33b38dff1e4b7b802ec (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.cpp39
-rw-r--r--src/libs/installer/packagemanagergui.h7
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);