include/vcl/weld.hxx | 27 ++++++++++++++++++++++++--- vcl/inc/jsdialog/jsdialogbuilder.hxx | 4 ++-- vcl/inc/qt5/QtInstanceAssistant.hxx | 6 +++--- vcl/inc/salvtables.hxx | 6 +++--- vcl/jsdialog/jsdialogbuilder.cxx | 8 ++++---- vcl/qt5/QtInstanceAssistant.cxx | 8 ++++---- vcl/source/app/salvtables.cxx | 15 ++++----------- vcl/unx/gtk3/gtkinst.cxx | 8 ++++---- 8 files changed, 48 insertions(+), 34 deletions(-)
New commits: commit 093aca316021f508f41c409726622b484c52891c Author: Michael Weghorn <[email protected]> AuthorDate: Sat Oct 18 02:22:25 2025 +0200 Commit: Michael Weghorn <[email protected]> CommitDate: Mon Oct 20 17:09:01 2025 +0200 tdf#130857 weld: Move signal blocking to Assistant::set_current_page Apply the changes as described in Change-Id: If5fba408cc6638441e9856238b19659fed6d7e01 Author: Michael Weghorn <[email protected]> Date: Fri Oct 17 22:11:02 2025 +0200 tdf#130857 weld: Move signal blocking to TextView::select_region for these method as well. See the above-mentioned commit for more details/background. For this case, one of the SalInstanceAssistant::set_current_page variants was calling the other, so only the latter had the signal (un)blocking logic. Change-Id: Ia038e1a82089c97bb759b44020d8331ece5b688b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192635 Reviewed-by: Michael Weghorn <[email protected]> Tested-by: Jenkins diff --git a/include/vcl/weld.hxx b/include/vcl/weld.hxx index 1aac1a8754e9..893890d1268c 100644 --- a/include/vcl/weld.hxx +++ b/include/vcl/weld.hxx @@ -698,6 +698,8 @@ protected: return m_aJumpPageHdl.Call(rIdent); } + virtual void do_set_current_page(int nPage) = 0; + virtual void do_set_current_page(const OUString& rIdent) = 0; virtual void do_set_page_index(const OUString& rIdent, int nIndex) = 0; virtual void do_set_page_title(const OUString& rIdent, const OUString& rTitle) = 0; virtual void do_set_page_sensitive(const OUString& rIdent, bool bSensitive) = 0; @@ -707,8 +709,20 @@ public: virtual int get_n_pages() const = 0; virtual OUString get_page_ident(int nPage) const = 0; virtual OUString get_current_page_ident() const = 0; - virtual void set_current_page(int nPage) = 0; - virtual void set_current_page(const OUString& rIdent) = 0; + + void set_current_page(int nPage) + { + disable_notify_events(); + do_set_current_page(nPage); + enable_notify_events(); + } + + void set_current_page(const OUString& rIdent) + { + disable_notify_events(); + do_set_current_page(rIdent); + enable_notify_events(); + } // move the page rIdent to position nIndex void set_page_index(const OUString& rIdent, int nIndex) diff --git a/vcl/inc/jsdialog/jsdialogbuilder.hxx b/vcl/inc/jsdialog/jsdialogbuilder.hxx index 102459e9ae8c..4499f096d78e 100644 --- a/vcl/inc/jsdialog/jsdialogbuilder.hxx +++ b/vcl/inc/jsdialog/jsdialogbuilder.hxx @@ -431,8 +431,8 @@ public: JSAssistant(JSDialogSender* pSender, vcl::RoadmapWizard* pDialog, SalInstanceBuilder* pBuilder, bool bTakeOwnership); - virtual void set_current_page(int nPage) override; - virtual void set_current_page(const OUString& rIdent) override; + void do_set_current_page(int nPage) override; + virtual void do_set_current_page(const OUString& rIdent) override; virtual void response(int response) override; virtual std::unique_ptr<weld::Button> weld_button_for_response(int response) override; virtual int run() override; diff --git a/vcl/inc/qt5/QtInstanceAssistant.hxx b/vcl/inc/qt5/QtInstanceAssistant.hxx index 23a0bab0c6ae..7002dc543b6f 100644 --- a/vcl/inc/qt5/QtInstanceAssistant.hxx +++ b/vcl/inc/qt5/QtInstanceAssistant.hxx @@ -44,8 +44,8 @@ public: virtual int get_n_pages() const override; virtual OUString get_page_ident(int nPage) const override; virtual OUString get_current_page_ident() const override; - virtual void set_current_page(int nPage) override; - virtual void set_current_page(const OUString& rIdent) override; + virtual void do_set_current_page(int nPage) override; + virtual void do_set_current_page(const OUString& rIdent) override; virtual void do_set_page_index(const OUString& rIdent, int nIndex) override; virtual void do_set_page_title(const OUString& rIdent, const OUString& rTitle) override; virtual OUString get_page_title(const OUString& rIdent) const override; diff --git a/vcl/inc/salvtables.hxx b/vcl/inc/salvtables.hxx index 88579c26a13b..5330bd06e674 100644 --- a/vcl/inc/salvtables.hxx +++ b/vcl/inc/salvtables.hxx @@ -569,8 +569,8 @@ public: virtual int get_n_pages() const override; virtual OUString get_page_ident(int nPage) const override; virtual OUString get_current_page_ident() const override; - virtual void set_current_page(int nPage) override; - virtual void set_current_page(const OUString& rIdent) override; + virtual void do_set_current_page(int nPage) override; + virtual void do_set_current_page(const OUString& rIdent) override; virtual void do_set_page_index(const OUString& rIdent, int nNewIndex) override; virtual weld::Container* append_page(const OUString& rIdent) override; virtual OUString get_page_title(const OUString& rIdent) const override; diff --git a/vcl/jsdialog/jsdialogbuilder.cxx b/vcl/jsdialog/jsdialogbuilder.cxx index 6295989285aa..f09a7a6d0ac2 100644 --- a/vcl/jsdialog/jsdialogbuilder.cxx +++ b/vcl/jsdialog/jsdialogbuilder.cxx @@ -1092,15 +1092,15 @@ JSAssistant::JSAssistant(JSDialogSender* pSender, vcl::RoadmapWizard* pDialog, { } -void JSAssistant::set_current_page(int nPage) +void JSAssistant::do_set_current_page(int nPage) { - SalInstanceAssistant::set_current_page(nPage); + SalInstanceAssistant::do_set_current_page(nPage); sendFullUpdate(); } -void JSAssistant::set_current_page(const OUString& rIdent) +void JSAssistant::do_set_current_page(const OUString& rIdent) { - SalInstanceAssistant::set_current_page(rIdent); + SalInstanceAssistant::do_set_current_page(rIdent); sendFullUpdate(); } diff --git a/vcl/qt5/QtInstanceAssistant.cxx b/vcl/qt5/QtInstanceAssistant.cxx index 8855b806a54e..b12fca73d8f6 100644 --- a/vcl/qt5/QtInstanceAssistant.cxx +++ b/vcl/qt5/QtInstanceAssistant.cxx @@ -73,7 +73,7 @@ OUString QtInstanceAssistant::get_current_page_ident() const return sId; } -void QtInstanceAssistant::set_current_page(int nPage) +void QtInstanceAssistant::do_set_current_page(int nPage) { SolarMutexGuard g; @@ -101,7 +101,7 @@ void QtInstanceAssistant::set_current_page(int nPage) }); } -void QtInstanceAssistant::set_current_page(const OUString& rIdent) +void QtInstanceAssistant::do_set_current_page(const OUString& rIdent) { SolarMutexGuard g; @@ -112,7 +112,7 @@ void QtInstanceAssistant::set_current_page(const OUString& rIdent) QWizardPage* pPage = m_pWizard->page(nPageId); if (pPage && pPage->objectName() == toQString(rIdent)) { - set_current_page(nPageId); + do_set_current_page(nPageId); break; } } diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx index d425a99fda97..f11c3824e0dd 100644 --- a/vcl/source/app/salvtables.cxx +++ b/vcl/source/app/salvtables.cxx @@ -2090,10 +2090,8 @@ OUString SalInstanceAssistant::get_current_page_ident() const return get_page_ident(get_current_page()); } -void SalInstanceAssistant::set_current_page(int nPage) +void SalInstanceAssistant::do_set_current_page(int nPage) { - disable_notify_events(); - // take the first shown page as the size for all pages if (m_xWizard->GetPageSizePixel().Width() == 0) { @@ -2112,15 +2110,14 @@ void SalInstanceAssistant::set_current_page(int nPage) } m_xWizard->ShowPage(m_aIds[nPage]); - enable_notify_events(); } -void SalInstanceAssistant::set_current_page(const OUString& rIdent) +void SalInstanceAssistant::do_set_current_page(const OUString& rIdent) { int nIndex = find_page(rIdent); if (nIndex == -1) return; - set_current_page(nIndex); + do_set_current_page(nIndex); } void SalInstanceAssistant::do_set_page_index(const OUString& rIdent, int nNewIndex) diff --git a/vcl/unx/gtk3/gtkinst.cxx b/vcl/unx/gtk3/gtkinst.cxx index 88faae016873..18897581caec 100644 --- a/vcl/unx/gtk3/gtkinst.cxx +++ b/vcl/unx/gtk3/gtkinst.cxx @@ -7739,7 +7739,7 @@ public: return get_page_ident(get_current_page()); } - virtual void set_current_page(int nPage) override + virtual void do_set_current_page(int nPage) override { OString sDialogTitle(gtk_window_get_title(GTK_WINDOW(m_pAssistant))); @@ -7752,12 +7752,12 @@ public: gtk_window_set_title(GTK_WINDOW(m_pAssistant), sDialogTitle.getStr()); } - virtual void set_current_page(const OUString& rIdent) override + virtual void do_set_current_page(const OUString& rIdent) override { int nPage = find_page(rIdent); if (nPage == -1) return; - set_current_page(nPage); + do_set_current_page(nPage); } virtual void do_set_page_title(const OUString& rIdent, const OUString& rTitle) override commit efda5be8f9caf0fcff456ef6ac1549ebd5b2faf0 Author: Michael Weghorn <[email protected]> AuthorDate: Sat Oct 18 02:13:53 2025 +0200 Commit: Michael Weghorn <[email protected]> CommitDate: Mon Oct 20 17:08:54 2025 +0200 tdf#130857 weld: Move signal blocking to Assistant::set_page_index Apply the changes as described in Change-Id: If5fba408cc6638441e9856238b19659fed6d7e01 Author: Michael Weghorn <[email protected]> Date: Fri Oct 17 22:11:02 2025 +0200 tdf#130857 weld: Move signal blocking to TextView::select_region for this method as well. See the above-mentioned commit for more details/background. Change-Id: I6624c29865be93c7c9568a271b10958d10533a02 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192634 Tested-by: Jenkins Reviewed-by: Michael Weghorn <[email protected]> diff --git a/include/vcl/weld.hxx b/include/vcl/weld.hxx index 0188a945f662..1aac1a8754e9 100644 --- a/include/vcl/weld.hxx +++ b/include/vcl/weld.hxx @@ -698,6 +698,7 @@ protected: return m_aJumpPageHdl.Call(rIdent); } + virtual void do_set_page_index(const OUString& rIdent, int nIndex) = 0; virtual void do_set_page_title(const OUString& rIdent, const OUString& rTitle) = 0; virtual void do_set_page_sensitive(const OUString& rIdent, bool bSensitive) = 0; @@ -708,8 +709,14 @@ public: virtual OUString get_current_page_ident() const = 0; virtual void set_current_page(int nPage) = 0; virtual void set_current_page(const OUString& rIdent) = 0; + // move the page rIdent to position nIndex - virtual void set_page_index(const OUString& rIdent, int nIndex) = 0; + void set_page_index(const OUString& rIdent, int nIndex) + { + disable_notify_events(); + do_set_page_index(rIdent, nIndex); + enable_notify_events(); + } void set_page_title(const OUString& rIdent, const OUString& rTitle) { diff --git a/vcl/inc/qt5/QtInstanceAssistant.hxx b/vcl/inc/qt5/QtInstanceAssistant.hxx index 741ddeeed660..23a0bab0c6ae 100644 --- a/vcl/inc/qt5/QtInstanceAssistant.hxx +++ b/vcl/inc/qt5/QtInstanceAssistant.hxx @@ -46,7 +46,7 @@ public: virtual OUString get_current_page_ident() const override; virtual void set_current_page(int nPage) override; virtual void set_current_page(const OUString& rIdent) override; - virtual void set_page_index(const OUString& rIdent, int nIndex) override; + virtual void do_set_page_index(const OUString& rIdent, int nIndex) override; virtual void do_set_page_title(const OUString& rIdent, const OUString& rTitle) override; virtual OUString get_page_title(const OUString& rIdent) const override; virtual void do_set_page_sensitive(const OUString& rIdent, bool bSensitive) override; diff --git a/vcl/inc/salvtables.hxx b/vcl/inc/salvtables.hxx index 2ce1d38c1c3f..88579c26a13b 100644 --- a/vcl/inc/salvtables.hxx +++ b/vcl/inc/salvtables.hxx @@ -571,7 +571,7 @@ public: virtual OUString get_current_page_ident() const override; virtual void set_current_page(int nPage) override; virtual void set_current_page(const OUString& rIdent) override; - virtual void set_page_index(const OUString& rIdent, int nNewIndex) override; + virtual void do_set_page_index(const OUString& rIdent, int nNewIndex) override; virtual weld::Container* append_page(const OUString& rIdent) override; virtual OUString get_page_title(const OUString& rIdent) const override; virtual void do_set_page_title(const OUString& rIdent, const OUString& rTitle) override; diff --git a/vcl/qt5/QtInstanceAssistant.cxx b/vcl/qt5/QtInstanceAssistant.cxx index 8e0db3905706..8855b806a54e 100644 --- a/vcl/qt5/QtInstanceAssistant.cxx +++ b/vcl/qt5/QtInstanceAssistant.cxx @@ -119,7 +119,7 @@ void QtInstanceAssistant::set_current_page(const OUString& rIdent) }); } -void QtInstanceAssistant::set_page_index(const OUString& rIdent, int nIndex) +void QtInstanceAssistant::do_set_page_index(const OUString& rIdent, int nIndex) { SolarMutexGuard g; diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx index 09db1d193b5c..d425a99fda97 100644 --- a/vcl/source/app/salvtables.cxx +++ b/vcl/source/app/salvtables.cxx @@ -2123,7 +2123,7 @@ void SalInstanceAssistant::set_current_page(const OUString& rIdent) set_current_page(nIndex); } -void SalInstanceAssistant::set_page_index(const OUString& rIdent, int nNewIndex) +void SalInstanceAssistant::do_set_page_index(const OUString& rIdent, int nNewIndex) { int nOldIndex = find_page(rIdent); @@ -2133,8 +2133,6 @@ void SalInstanceAssistant::set_page_index(const OUString& rIdent, int nNewIndex) if (nOldIndex == nNewIndex) return; - disable_notify_events(); - auto entry = std::move(m_aAddedPages[nOldIndex]); m_aAddedPages.erase(m_aAddedPages.begin() + nOldIndex); m_aAddedPages.insert(m_aAddedPages.begin() + nNewIndex, std::move(entry)); @@ -2144,8 +2142,6 @@ void SalInstanceAssistant::set_page_index(const OUString& rIdent, int nNewIndex) m_aIds.insert(m_aIds.begin() + nNewIndex, nId); m_aUpdateRoadmapIdle.Start(); - - enable_notify_events(); } weld::Container* SalInstanceAssistant::append_page(const OUString& rIdent) diff --git a/vcl/unx/gtk3/gtkinst.cxx b/vcl/unx/gtk3/gtkinst.cxx index 9bc449626177..88faae016873 100644 --- a/vcl/unx/gtk3/gtkinst.cxx +++ b/vcl/unx/gtk3/gtkinst.cxx @@ -7788,7 +7788,7 @@ public: m_aNotClickable[rIdent] = !bSensitive; } - virtual void set_page_index(const OUString& rIdent, int nNewIndex) override + virtual void do_set_page_index(const OUString& rIdent, int nNewIndex) override { int nOldIndex = find_page(rIdent); if (nOldIndex == -1)
