summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTeijo Hakala <teijo.hakala@gmail.com>2016-09-19 07:50:09 +0300
committerJan Arve Sæther <jan-arve.saether@theqtcompany.com>2016-09-27 06:57:41 +0000
commit99b6eb4382e135815b53b567297be9cd4ecfd96a (patch)
tree0df92a8c398bb61235aefbfe51b08e6d21e6a814 /src
parent06bd93c4acf49fc24408a60ebdf7a46caf02f9b3 (diff)
Implement QWindowsMsaaAccessible::put_accValue
Implement QWindowsMsaaAccessible::put_accValue so automated UI tests which utilize Accessibility API (at least WinLDTP https://github.com/ldtp/cobra) can set values of QSliders, QSpinBoxes, etc... Task-number: QTBUG-55546 Change-Id: I0f3f21000fbf1468c35e322eff3f7224da746a0c Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io> Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.cpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.cpp b/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.cpp
index ff115a2249..5d4afe8fb2 100644
--- a/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.cpp
+++ b/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.cpp
@@ -1053,11 +1053,24 @@ HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::get_accValue(VARIANT varID, BS
return S_FALSE;
}
-HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::put_accValue(VARIANT, BSTR)
+HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::put_accValue(VARIANT, BSTR value)
{
QAccessibleInterface *accessible = accessibleInterface();
accessibleDebugClientCalls(accessible);
- return DISP_E_MEMBERNOTFOUND;
+
+ if (!accessible || !accessible->isValid()) {
+ return E_FAIL;
+ }
+
+ QString qstrValue = QString::fromWCharArray(value);
+
+ if (accessible->valueInterface()) {
+ accessible->valueInterface()->setCurrentValue(qstrValue);
+ } else {
+ accessible->setText(QAccessible::Value, qstrValue);
+ }
+
+ return S_OK;
}
// moz: [important]