summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKatja Marttila <katja.marttila@qt.io>2020-06-02 15:33:01 +0300
committerKatja Marttila <katja.marttila@qt.io>2020-06-04 10:58:11 +0000
commit3235629a868ace7a1f1f4d79ef7474ca30b2123e (patch)
tree83ebd1bec72f58afba1669fdb96e3ab7685fc9fc
parent25e70dd8e061425be89481caf515591390425cd5 (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.qdoc7
-rw-r--r--src/libs/installer/packagemanagergui.cpp14
-rw-r--r--src/libs/installer/packagemanagergui.h1
-rw-r--r--src/libs/installer/scriptengine.cpp10
-rw-r--r--src/libs/installer/scriptengine_p.h1
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);