diff options
author | Kai Koehne <kai.koehne@theqtcompany.com> | 2015-01-06 10:56:49 +0100 |
---|---|---|
committer | Kai Koehne <kai.koehne@theqtcompany.com> | 2015-01-08 08:59:06 +0100 |
commit | f87efd7c14e0a332341e58ed1e52d46328e31d03 (patch) | |
tree | 8c5bbf677eb2bdecad92abe60f54acb95fb4e5bf /src/libs/installer/scriptengine_p.h | |
parent | 8d86c06aef110ad6cf6f1dcb6af56b19ddbe7f24 (diff) |
Fix objects returned by gui methods
We need to make sure objects like pageWidgetByObjectName are augmented
too (so that one can access child objects). This is achieved by
a proxy object that augments all raw QObject * and QWidget * return
values.
This fixes e.g. the dynamicpage example.
Task-number: QTIFW-605
Change-Id: If26dc59220946a7445ef0f9ec7caa15e5b04eaa8
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
Diffstat (limited to 'src/libs/installer/scriptengine_p.h')
-rw-r--r-- | src/libs/installer/scriptengine_p.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/libs/installer/scriptengine_p.h b/src/libs/installer/scriptengine_p.h index d207130d7..696073703 100644 --- a/src/libs/installer/scriptengine_p.h +++ b/src/libs/installer/scriptengine_p.h @@ -37,6 +37,7 @@ #include "component.h" #include "packagemanagercore.h" +#include "packagemanagergui.h" #include <QDebug> #include <QDesktopServices> @@ -137,6 +138,50 @@ public slots: }; #endif +class GuiProxy : public QObject +{ + Q_OBJECT + Q_DISABLE_COPY(GuiProxy) + +public: + GuiProxy(ScriptEngine *engine, QObject *parent); + void setPackageManagerGui(PackageManagerGui *gui); + + Q_INVOKABLE QJSValue pageById(int id) const; + Q_INVOKABLE QJSValue pageByObjectName(const QString &name) const; + + Q_INVOKABLE QJSValue currentPageWidget() const; + Q_INVOKABLE QJSValue 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); + + Q_INVOKABLE void showSettingsButton(bool show); + Q_INVOKABLE void setSettingsButtonEnabled(bool enable); + + Q_INVOKABLE QJSValue findChild(QObject *parent, const QString &objectName); + Q_INVOKABLE QList<QJSValue> findChildren(QObject *parent, const QString &objectName); + +signals: + void interrupted(); + void languageChanged(); + void finishButtonClicked(); + void gotRestarted(); + void settingsButtonClicked(); + +public slots: + void cancelButtonClicked(); + void reject(); + void rejectWithoutPrompt(); + void showFinishedPage(); + void setModified(bool value); + +private: + ScriptEngine *m_engine; + PackageManagerGui *m_gui; +}; + } // namespace QInstaller Q_DECLARE_METATYPE(QInstaller::ConsoleProxy*) |