vcl/inc/jsdialog/jsdialogbuilder.hxx | 10 +++++++ vcl/jsdialog/jsdialogbuilder.cxx | 48 +++++++++++++++++++++++++++++++++-- vcl/source/window/window.cxx | 8 +++++ 3 files changed, 64 insertions(+), 2 deletions(-)
New commits: commit bd5efa2899a3db51c2b6d525d7e518a7a3fbf912 Author: Szymon Kłos <[email protected]> AuthorDate: Fri Mar 24 09:52:28 2023 +0100 Commit: Szymon Kłos <[email protected]> CommitDate: Tue Apr 4 11:22:52 2023 +0200 jsdialog: send full update when shown not when created Change-Id: I02cb63b57960c1d7425fe97c341eaf24f216c3a8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149496 Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-by: Szymon Kłos <[email protected]> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150013 Tested-by: Jenkins diff --git a/vcl/inc/jsdialog/jsdialogbuilder.hxx b/vcl/inc/jsdialog/jsdialogbuilder.hxx index b8ee9fbee7f3..e8cc3451c6bd 100644 --- a/vcl/inc/jsdialog/jsdialogbuilder.hxx +++ b/vcl/inc/jsdialog/jsdialogbuilder.hxx @@ -507,6 +507,11 @@ public: virtual void undo_collapse() override; virtual void response(int response) override; virtual weld::Button* weld_widget_for_response(int response) override; + virtual int run() override; + virtual bool runAsync(std::shared_ptr<weld::DialogController> aOwner, + const std::function<void(sal_Int32)>& rEndDialogFn) override; + virtual bool runAsync(std::shared_ptr<Dialog> const& rxSelf, + const std::function<void(sal_Int32)>& func) override; }; class JSAssistant final : public JSWidget<SalInstanceAssistant, vcl::RoadmapWizard> @@ -519,6 +524,11 @@ public: virtual void set_current_page(const OUString& rIdent) override; virtual void response(int response) override; virtual weld::Button* weld_widget_for_response(int response) override; + virtual int run() override; + virtual bool runAsync(std::shared_ptr<weld::DialogController> aOwner, + const std::function<void(sal_Int32)>& rEndDialogFn) override; + virtual bool runAsync(std::shared_ptr<Dialog> const& rxSelf, + const std::function<void(sal_Int32)>& func) override; }; class JSContainer final : public JSWidget<SalInstanceContainer, vcl::Window> diff --git a/vcl/jsdialog/jsdialogbuilder.cxx b/vcl/jsdialog/jsdialogbuilder.cxx index 7397952ade2c..39da090326e9 100644 --- a/vcl/jsdialog/jsdialogbuilder.cxx +++ b/vcl/jsdialog/jsdialogbuilder.cxx @@ -854,7 +854,6 @@ std::unique_ptr<weld::Dialog> JSInstanceBuilder::weld_dialog(const OUString& id) RememberWidget("__DIALOG__", pRet.get()); initializeSender(GetNotifierWindow(), GetContentWindow(), GetTypeOfJSON()); - sendFullUpdate(); m_bSentInitialUpdate = true; } @@ -883,7 +882,6 @@ std::unique_ptr<weld::Assistant> JSInstanceBuilder::weld_assistant(const OUStrin RememberWidget("__DIALOG__", pRet.get()); initializeSender(GetNotifierWindow(), GetContentWindow(), GetTypeOfJSON()); - sendFullUpdate(); m_bSentInitialUpdate = true; } @@ -1335,6 +1333,52 @@ void JSAssistant::response(int response) SalInstanceAssistant::response(response); } +int JSDialog::run() +{ + sendFullUpdate(true); + int ret = SalInstanceDialog::run(); + return ret; +} + +bool JSDialog::runAsync(std::shared_ptr<weld::DialogController> aOwner, + const std::function<void(sal_Int32)>& rEndDialogFn) +{ + bool ret = SalInstanceDialog::runAsync(aOwner, rEndDialogFn); + sendFullUpdate(); + return ret; +} + +bool JSDialog::runAsync(std::shared_ptr<Dialog> const& rxSelf, + const std::function<void(sal_Int32)>& func) +{ + bool ret = SalInstanceDialog::runAsync(rxSelf, func); + sendFullUpdate(); + return ret; +} + +int JSAssistant::run() +{ + sendFullUpdate(true); + int ret = SalInstanceDialog::run(); + return ret; +} + +bool JSAssistant::runAsync(std::shared_ptr<weld::DialogController> aOwner, + const std::function<void(sal_Int32)>& rEndDialogFn) +{ + bool ret = SalInstanceDialog::runAsync(aOwner, rEndDialogFn); + sendFullUpdate(); + return ret; +} + +bool JSAssistant::runAsync(std::shared_ptr<Dialog> const& rxSelf, + const std::function<void(sal_Int32)>& func) +{ + bool ret = SalInstanceDialog::runAsync(rxSelf, func); + sendFullUpdate(); + return ret; +} + weld::Button* JSDialog::weld_widget_for_response(int nResponse) { PushButton* pButton commit a9872f5ef0bef781df7fec99d0ce98746f01ae9e Author: Szymon Kłos <[email protected]> AuthorDate: Wed Mar 29 15:21:56 2023 +0200 Commit: Szymon Kłos <[email protected]> CommitDate: Tue Apr 4 11:22:45 2023 +0200 jsdialog: dump label relation between widgets Change-Id: I625346049b866d9f231bba461f40b671f4959e4d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149717 Tested-by: Szymon Kłos <[email protected]> Reviewed-by: Szymon Kłos <[email protected]> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150012 diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx index 57e479ceb993..e52ee1b33b47 100644 --- a/vcl/source/window/window.cxx +++ b/vcl/source/window/window.cxx @@ -3398,6 +3398,14 @@ void Window::DumpAsPropertyTree(tools::JsonWriter& rJsonWriter) } } + vcl::Window* pAccLabelFor = getAccessibleRelationLabelFor(); + if (pAccLabelFor) + rJsonWriter.put("labelFor", pAccLabelFor->get_id()); + + vcl::Window* pAccLabelledBy = GetAccessibleRelationLabeledBy(); + if (pAccLabelledBy) + rJsonWriter.put("labelledBy", pAccLabelledBy->get_id()); + mpWindowImpl->maDumpAsPropertyTreeHdl.Call(rJsonWriter); }
