summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/scriptengine_p.h
diff options
context:
space:
mode:
authorKai Koehne <kai.koehne@theqtcompany.com>2015-01-06 10:56:49 +0100
committerKai Koehne <kai.koehne@theqtcompany.com>2015-01-08 08:59:06 +0100
commitf87efd7c14e0a332341e58ed1e52d46328e31d03 (patch)
tree8c5bbf677eb2bdecad92abe60f54acb95fb4e5bf /src/libs/installer/scriptengine_p.h
parent8d86c06aef110ad6cf6f1dcb6af56b19ddbe7f24 (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.h45
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*)