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);
 }
 

Reply via email to