diff options
author | Teijo Hakala <teijo.hakala@gmail.com> | 2016-09-19 07:50:09 +0300 |
---|---|---|
committer | Jan Arve Sæther <jan-arve.saether@theqtcompany.com> | 2016-09-27 06:57:41 +0000 |
commit | 99b6eb4382e135815b53b567297be9cd4ecfd96a (patch) | |
tree | 0df92a8c398bb61235aefbfe51b08e6d21e6a814 /src/plugins/platforms/windows/accessible | |
parent | 06bd93c4acf49fc24408a60ebdf7a46caf02f9b3 (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/plugins/platforms/windows/accessible')
-rw-r--r-- | src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.cpp | 17 |
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] |