diff options
author | Katja Marttila <katja.marttila@qt.io> | 2020-06-02 15:33:01 +0300 |
---|---|---|
committer | Katja Marttila <katja.marttila@qt.io> | 2020-06-04 10:58:11 +0000 |
commit | 3235629a868ace7a1f1f4d79ef7474ca30b2123e (patch) | |
tree | 83ebd1bec72f58afba1669fdb96e3ab7685fc9fc | |
parent | 25e70dd8e061425be89481caf515591390425cd5 (diff) |
Add function to enable button click with objectname
Task-number: QTIFW-1707
Change-Id: I8574ef96df6a00e577549342d4a4336207dcd9ec
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
-rw-r--r-- | doc/scripting-api/gui.qdoc | 7 | ||||
-rw-r--r-- | src/libs/installer/packagemanagergui.cpp | 14 | ||||
-rw-r--r-- | src/libs/installer/packagemanagergui.h | 1 | ||||
-rw-r--r-- | src/libs/installer/scriptengine.cpp | 10 | ||||
-rw-r--r-- | src/libs/installer/scriptengine_p.h | 1 |
5 files changed, 33 insertions, 0 deletions
diff --git a/doc/scripting-api/gui.qdoc b/doc/scripting-api/gui.qdoc index de8e2a663..35539c6be 100644 --- a/doc/scripting-api/gui.qdoc +++ b/doc/scripting-api/gui.qdoc @@ -104,6 +104,13 @@ */ /*! + \qmlmethod void gui::clickButton(string objectName, int delayInMs) + + Automatically clicks the button specified by \a objectName after a delay + in milliseconds specified by \a delayInMs. +*/ + +/*! \qmlmethod boolean gui::isButtonEnabled(int wizardButton) Returns \c true if the button specified by \a wizardButton is enabled. diff --git a/src/libs/installer/packagemanagergui.cpp b/src/libs/installer/packagemanagergui.cpp index d80709416..751076f9a 100644 --- a/src/libs/installer/packagemanagergui.cpp +++ b/src/libs/installer/packagemanagergui.cpp @@ -530,6 +530,20 @@ void PackageManagerGui::clickButton(int wb, int delay) } /*! + Clicks the button specified by \a objectName after the delay specified by \a delay. + + \sa {gui::clickButton}{gui.clickButton} +*/ +void PackageManagerGui::clickButton(const QString &objectName, int delay) const +{ + QPushButton *button = findChild<QPushButton *>(objectName); + if (button) + QTimer::singleShot(delay, button, &QAbstractButton::click); + else + qCWarning(QInstaller::lcInstallerInstallLog) << "Button with objectname: " << objectName << "not found!"; +} + +/*! Returns \c true if the button specified by \a wb is enabled. Returns \c false if a button of the specified type is not found. diff --git a/src/libs/installer/packagemanagergui.h b/src/libs/installer/packagemanagergui.h index e08b366cd..70ec43aca 100644 --- a/src/libs/installer/packagemanagergui.h +++ b/src/libs/installer/packagemanagergui.h @@ -80,6 +80,7 @@ public: QString defaultButtonText(int wizardButton) const; void clickButton(int wizardButton, int delayInMs = 0); + void clickButton(const QString &objectName, int delayInMs = 0) const; bool isButtonEnabled(int wizardButton); void showSettingsButton(bool show); diff --git a/src/libs/installer/scriptengine.cpp b/src/libs/installer/scriptengine.cpp index accd54957..55940df61 100644 --- a/src/libs/installer/scriptengine.cpp +++ b/src/libs/installer/scriptengine.cpp @@ -178,6 +178,16 @@ void GuiProxy::clickButton(int wizardButton, int delayInMs) m_gui->clickButton(wizardButton, delayInMs); } +/*! + Automatically clicks the button specified by \a objectName after a delay + in milliseconds specified by \a delayInMs. +*/ +void GuiProxy::clickButton(const QString &objectName, int delayInMs) const +{ + if (m_gui) + m_gui->clickButton(objectName, delayInMs); +} + bool GuiProxy::isButtonEnabled(int wizardButton) { if (!m_gui) diff --git a/src/libs/installer/scriptengine_p.h b/src/libs/installer/scriptengine_p.h index 0fc963bf9..bf8240d98 100644 --- a/src/libs/installer/scriptengine_p.h +++ b/src/libs/installer/scriptengine_p.h @@ -160,6 +160,7 @@ public: Q_INVOKABLE QString defaultButtonText(int wizardButton) const; Q_INVOKABLE void clickButton(int wizardButton, int delayInMs = 0); + Q_INVOKABLE void clickButton(const QString &objectName, int delayInMs = 0) const; Q_INVOKABLE bool isButtonEnabled(int wizardButton); Q_INVOKABLE void showSettingsButton(bool show); |