include/vcl/weld.hxx | 75 +++++++++++++++++++++++++++++++---- vcl/inc/jsdialog/jsdialogbuilder.hxx | 10 ++-- vcl/inc/qt5/QtInstanceTreeView.hxx | 16 +++---- vcl/inc/salvtables.hxx | 16 +++---- vcl/jsdialog/jsdialogbuilder.cxx | 12 ++--- vcl/qt5/QtInstanceTreeView.cxx | 16 +++---- vcl/source/app/salvtables.cxx | 32 +++----------- vcl/unx/gtk3/gtkinst.cxx | 16 +++---- 8 files changed, 117 insertions(+), 76 deletions(-)
New commits: commit 0cfe163186820b6f931ed7de1ed0f362e55c07d7 Author: Michael Weghorn <[email protected]> AuthorDate: Sat Oct 18 01:13:52 2025 +0200 Commit: Michael Weghorn <[email protected]> CommitDate: Mon Oct 20 17:07:44 2025 +0200 tdf#130857 weld: Move signal blocking to TreeView::remove 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 methods as well. See the above-mentioned commit for more details/background. Change-Id: I374db5858636e5bb66d1a0463fc28c89ae406fab Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192624 Tested-by: Jenkins Reviewed-by: Michael Weghorn <[email protected]> diff --git a/include/vcl/weld.hxx b/include/vcl/weld.hxx index ef13f917f540..16d0961ae5ad 100644 --- a/include/vcl/weld.hxx +++ b/include/vcl/weld.hxx @@ -1076,7 +1076,9 @@ protected: virtual void do_select(int pos) = 0; virtual void do_unselect(int pos) = 0; + virtual void do_remove(int pos) = 0; virtual void do_scroll_to_row(int row) = 0; + virtual void do_remove(const TreeIter& rIter) = 0; virtual void do_select(const TreeIter& rIter) = 0; virtual void do_unselect(const TreeIter& rIter) = 0; virtual void do_scroll_to_row(const TreeIter& rIter) = 0; @@ -1178,7 +1180,13 @@ public: enable_notify_events(); } - virtual void remove(int pos) = 0; + void remove(int pos) + { + disable_notify_events(); + do_remove(pos); + enable_notify_events(); + } + // col index -1 gets the first text column virtual OUString get_text(int row, int col = -1) const = 0; // col index -1 sets the first text column @@ -1282,7 +1290,13 @@ public: virtual bool iter_has_child(const TreeIter& rIter) const = 0; // returns the number of direct children rIter has virtual int iter_n_children(const TreeIter& rIter) const = 0; - virtual void remove(const TreeIter& rIter) = 0; + + void remove(const TreeIter& rIter) + { + disable_notify_events(); + do_remove(rIter); + enable_notify_events(); + } //Don't select when frozen, select after thaw. Note selection doesn't survive a freeze. void select(const TreeIter& rIter) diff --git a/vcl/inc/jsdialog/jsdialogbuilder.hxx b/vcl/inc/jsdialog/jsdialogbuilder.hxx index 5f07fe497591..6488d95f63c6 100644 --- a/vcl/inc/jsdialog/jsdialogbuilder.hxx +++ b/vcl/inc/jsdialog/jsdialogbuilder.hxx @@ -714,9 +714,9 @@ public: void set_cursor_without_notify(const weld::TreeIter& rIter); virtual void set_cursor(int pos) override; - using SalInstanceTreeView::remove; - virtual void remove(int pos) override; - virtual void remove(const weld::TreeIter& rIter) override; + using SalInstanceTreeView::do_remove; + virtual void do_remove(int pos) override; + virtual void do_remove(const weld::TreeIter& rIter) override; virtual void clear() override; diff --git a/vcl/inc/qt5/QtInstanceTreeView.hxx b/vcl/inc/qt5/QtInstanceTreeView.hxx index a8d3c68f8820..a60715e90911 100644 --- a/vcl/inc/qt5/QtInstanceTreeView.hxx +++ b/vcl/inc/qt5/QtInstanceTreeView.hxx @@ -56,7 +56,7 @@ public: virtual int get_selected_index() const override; virtual void do_select(int nPos) override; virtual void do_unselect(int nPos) override; - virtual void remove(int nPos) override; + virtual void do_remove(int nPos) override; virtual OUString get_text(int nRow, int nCol = -1) const override; virtual void set_text(int nRow, const OUString& rText, int nCol = -1) override; virtual void set_sensitive(int nRow, bool bSensitive, int nCol = -1) override; @@ -102,7 +102,7 @@ public: virtual int iter_compare(const weld::TreeIter& a, const weld::TreeIter& b) const override; virtual bool iter_has_child(const weld::TreeIter& rIter) const override; virtual int iter_n_children(const weld::TreeIter& rIter) const override; - virtual void remove(const weld::TreeIter& rIter) override; + virtual void do_remove(const weld::TreeIter& rIter) override; virtual void do_select(const weld::TreeIter& rIter) override; virtual void do_unselect(const weld::TreeIter& rIter) override; virtual void set_extra_row_indent(const weld::TreeIter& rIter, int nIndentLevel) override; diff --git a/vcl/inc/salvtables.hxx b/vcl/inc/salvtables.hxx index 4ae7a64f3936..7a6f9512c180 100644 --- a/vcl/inc/salvtables.hxx +++ b/vcl/inc/salvtables.hxx @@ -1605,7 +1605,7 @@ public: virtual void set_font_color(const weld::TreeIter& rIter, const Color& rColor) override; - virtual void remove(int pos) override; + virtual void do_remove(int pos) override; virtual int find_text(const OUString& rText) const override; @@ -1755,7 +1755,7 @@ public: virtual bool iter_parent(weld::TreeIter& rIter) const override; - virtual void remove(const weld::TreeIter& rIter) override; + virtual void do_remove(const weld::TreeIter& rIter) override; virtual void do_select(const weld::TreeIter& rIter) override; diff --git a/vcl/jsdialog/jsdialogbuilder.cxx b/vcl/jsdialog/jsdialogbuilder.cxx index 72072dbf3dca..5e19e3906539 100644 --- a/vcl/jsdialog/jsdialogbuilder.cxx +++ b/vcl/jsdialog/jsdialogbuilder.cxx @@ -1803,15 +1803,15 @@ void JSTreeView::set_text(const weld::TreeIter& rIter, const OUString& rStr, int sendUpdate(); } -void JSTreeView::remove(int pos) +void JSTreeView::do_remove(int pos) { - SalInstanceTreeView::remove(pos); + SalInstanceTreeView::do_remove(pos); sendUpdate(); } -void JSTreeView::remove(const weld::TreeIter& rIter) +void JSTreeView::do_remove(const weld::TreeIter& rIter) { - SalInstanceTreeView::remove(rIter); + SalInstanceTreeView::do_remove(rIter); sendUpdate(); } diff --git a/vcl/qt5/QtInstanceTreeView.cxx b/vcl/qt5/QtInstanceTreeView.cxx index ecc39759e3b6..6e41e7d00a97 100644 --- a/vcl/qt5/QtInstanceTreeView.cxx +++ b/vcl/qt5/QtInstanceTreeView.cxx @@ -166,7 +166,7 @@ void QtInstanceTreeView::do_select(int nPos) { do_select(treeIter(nPos)); } void QtInstanceTreeView::do_unselect(int nPos) { do_unselect(treeIter(nPos)); } -void QtInstanceTreeView::remove(int nPos) { remove(treeIter(nPos)); } +void QtInstanceTreeView::do_remove(int nPos) { do_remove(treeIter(nPos)); } OUString QtInstanceTreeView::get_text(int nRow, int nCol) const { @@ -509,7 +509,7 @@ int QtInstanceTreeView::iter_n_children(const weld::TreeIter& rIter) const return m_pModel->rowCount(rQtIter.modelIndex()); } -void QtInstanceTreeView::remove(const weld::TreeIter& rIter) +void QtInstanceTreeView::do_remove(const weld::TreeIter& rIter) { SolarMutexGuard g; diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx index b7f73a4c0109..c5bc65afb5b5 100644 --- a/vcl/source/app/salvtables.cxx +++ b/vcl/source/app/salvtables.cxx @@ -4018,12 +4018,10 @@ void SalInstanceTreeView::set_font_color(const weld::TreeIter& rIter, const Colo set_font_color(rVclIter.iter, rColor); } -void SalInstanceTreeView::remove(int pos) +void SalInstanceTreeView::do_remove(int pos) { - disable_notify_events(); SvTreeListEntry* pEntry = m_xTreeView->GetEntry(nullptr, pos); m_xTreeView->RemoveEntry(pEntry); - enable_notify_events(); } int SalInstanceTreeView::find_text(const OUString& rText) const @@ -4656,12 +4654,10 @@ bool SalInstanceTreeView::iter_parent(weld::TreeIter& rIter) const return rVclIter.iter != nullptr; } -void SalInstanceTreeView::remove(const weld::TreeIter& rIter) +void SalInstanceTreeView::do_remove(const weld::TreeIter& rIter) { - disable_notify_events(); const SalInstanceTreeIter& rVclIter = static_cast<const SalInstanceTreeIter&>(rIter); m_xTreeView->RemoveEntry(rVclIter.iter); - enable_notify_events(); } void SalInstanceTreeView::do_select(const weld::TreeIter& rIter) diff --git a/vcl/unx/gtk3/gtkinst.cxx b/vcl/unx/gtk3/gtkinst.cxx index ecfea163c57a..956d8e836ac4 100644 --- a/vcl/unx/gtk3/gtkinst.cxx +++ b/vcl/unx/gtk3/gtkinst.cxx @@ -15036,7 +15036,7 @@ public: set_font_color(rGtkIter.iter, rColor); } - virtual void remove(int pos) override + virtual void do_remove(int pos) override { disable_notify_events(); GtkTreeIter iter; @@ -15992,7 +15992,7 @@ public: return ret; } - virtual void remove(const weld::TreeIter& rIter) override + virtual void do_remove(const weld::TreeIter& rIter) override { disable_notify_events(); const GtkInstanceTreeIter& rGtkIter = static_cast<const GtkInstanceTreeIter&>(rIter); commit ddbed0a36a268f675566d7856a3a7eb57eb66156 Author: Michael Weghorn <[email protected]> AuthorDate: Sat Oct 18 01:03:13 2025 +0200 Commit: Michael Weghorn <[email protected]> CommitDate: Mon Oct 20 17:07:37 2025 +0200 tdf#130857 weld: Move signal blocking to TreeView::scroll_to_row 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 methods as well. See the above-mentioned commit for more details/background. Change-Id: Ib625aa6ce9e9cdf2ff100ca270ce9ca54599a39e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192623 Tested-by: Jenkins Reviewed-by: Michael Weghorn <[email protected]> diff --git a/include/vcl/weld.hxx b/include/vcl/weld.hxx index 3a788ec0515c..ef13f917f540 100644 --- a/include/vcl/weld.hxx +++ b/include/vcl/weld.hxx @@ -1076,8 +1076,10 @@ protected: virtual void do_select(int pos) = 0; virtual void do_unselect(int pos) = 0; + virtual void do_scroll_to_row(int row) = 0; virtual void do_select(const TreeIter& rIter) = 0; virtual void do_unselect(const TreeIter& rIter) = 0; + virtual void do_scroll_to_row(const TreeIter& rIter) = 0; virtual void do_set_children_on_demand(const TreeIter& rIter, bool bChildrenOnDemand) = 0; virtual void do_remove_selection() = 0; @@ -1203,9 +1205,16 @@ public: virtual void swap(int pos1, int pos2) = 0; virtual std::vector<int> get_selected_rows() const = 0; virtual void set_font_color(int pos, const Color& rColor) = 0; + // scroll to make 'row' visible, this will also expand all parent rows of 'row' as necessary to // make 'row' visible - virtual void scroll_to_row(int row) = 0; + void scroll_to_row(int row) + { + disable_notify_events(); + do_scroll_to_row(row); + enable_notify_events(); + } + virtual bool is_selected(int pos) const = 0; virtual int get_cursor_index() const = 0; virtual void set_cursor(int pos) = 0; @@ -1317,9 +1326,16 @@ public: const css::uno::Reference<css::graphic::XGraphic>& rImage, int col = -1) = 0; virtual void set_font_color(const TreeIter& rIter, const Color& rColor) = 0; + // scroll to make rIter visible, this will also expand all parent rows of rIter as necessary to // make rIter visible - virtual void scroll_to_row(const TreeIter& rIter) = 0; + void scroll_to_row(const TreeIter& rIter) + { + disable_notify_events(); + do_scroll_to_row(rIter); + enable_notify_events(); + } + virtual bool is_selected(const TreeIter& rIter) const = 0; virtual void move_subtree(TreeIter& rNode, const TreeIter* pNewParent, int nIndexInNewParent) diff --git a/vcl/inc/qt5/QtInstanceTreeView.hxx b/vcl/inc/qt5/QtInstanceTreeView.hxx index 6e8e05fa84b0..a8d3c68f8820 100644 --- a/vcl/inc/qt5/QtInstanceTreeView.hxx +++ b/vcl/inc/qt5/QtInstanceTreeView.hxx @@ -74,7 +74,7 @@ public: virtual void swap(int nPos1, int nPos2) override; virtual std::vector<int> get_selected_rows() const override; virtual void set_font_color(int nPos, const Color& rColor) override; - virtual void scroll_to_row(int nRow) override; + virtual void do_scroll_to_row(int nRow) override; virtual bool is_selected(int nPos) const override; virtual int get_cursor_index() const override; virtual void set_cursor(int pos) override; @@ -127,7 +127,7 @@ public: const css::uno::Reference<css::graphic::XGraphic>& rImage, int nCol = -1) override; virtual void set_font_color(const weld::TreeIter& rIter, const Color& rColor) override; - virtual void scroll_to_row(const weld::TreeIter& rIter) override; + virtual void do_scroll_to_row(const weld::TreeIter& rIter) override; virtual bool is_selected(const weld::TreeIter& rIter) const override; virtual void move_subtree(weld::TreeIter& rNode, const weld::TreeIter* pNewParent, diff --git a/vcl/inc/salvtables.hxx b/vcl/inc/salvtables.hxx index 6d303456cd7a..4ae7a64f3936 100644 --- a/vcl/inc/salvtables.hxx +++ b/vcl/inc/salvtables.hxx @@ -1628,7 +1628,7 @@ public: virtual void set_cursor(int pos) override; - virtual void scroll_to_row(int pos) override; + virtual void do_scroll_to_row(int pos) override; virtual bool is_selected(int pos) const override; @@ -1759,7 +1759,7 @@ public: virtual void do_select(const weld::TreeIter& rIter) override; - virtual void scroll_to_row(const weld::TreeIter& rIter) override; + virtual void do_scroll_to_row(const weld::TreeIter& rIter) override; virtual void do_unselect(const weld::TreeIter& rIter) override; diff --git a/vcl/qt5/QtInstanceTreeView.cxx b/vcl/qt5/QtInstanceTreeView.cxx index d96d894f93df..ecc39759e3b6 100644 --- a/vcl/qt5/QtInstanceTreeView.cxx +++ b/vcl/qt5/QtInstanceTreeView.cxx @@ -278,7 +278,7 @@ void QtInstanceTreeView::set_font_color(int nPos, const Color& rColor) set_font_color(treeIter(nPos), rColor); } -void QtInstanceTreeView::scroll_to_row(int nRow) { scroll_to_row(treeIter(nRow)); } +void QtInstanceTreeView::do_scroll_to_row(int nRow) { scroll_to_row(treeIter(nRow)); } bool QtInstanceTreeView::is_selected(int nPos) const { return is_selected(treeIter(nPos)); } @@ -711,7 +711,7 @@ void QtInstanceTreeView::set_font_color(const weld::TreeIter& rIter, const Color }); } -void QtInstanceTreeView::scroll_to_row(const weld::TreeIter& rIter) +void QtInstanceTreeView::do_scroll_to_row(const weld::TreeIter& rIter) { SolarMutexGuard g; diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx index 46cd1e846ca1..b7f73a4c0109 100644 --- a/vcl/source/app/salvtables.cxx +++ b/vcl/source/app/salvtables.cxx @@ -4119,15 +4119,13 @@ void SalInstanceTreeView::set_cursor(int pos) enable_notify_events(); } -void SalInstanceTreeView::scroll_to_row(int pos) +void SalInstanceTreeView::do_scroll_to_row(int pos) { assert(m_xTreeView->IsUpdateMode() && "don't select when frozen, select after thaw. Note selection doesn't survive a " "freeze"); - disable_notify_events(); SvTreeListEntry* pEntry = m_xTreeView->GetEntry(nullptr, pos); m_xTreeView->MakeVisible(pEntry); - enable_notify_events(); } bool SalInstanceTreeView::is_selected(int pos) const @@ -4675,15 +4673,13 @@ void SalInstanceTreeView::do_select(const weld::TreeIter& rIter) m_xTreeView->Select(rVclIter.iter, true); } -void SalInstanceTreeView::scroll_to_row(const weld::TreeIter& rIter) +void SalInstanceTreeView::do_scroll_to_row(const weld::TreeIter& rIter) { assert(m_xTreeView->IsUpdateMode() && "don't select when frozen, select after thaw. Note selection doesn't survive a " "freeze"); - disable_notify_events(); const SalInstanceTreeIter& rVclIter = static_cast<const SalInstanceTreeIter&>(rIter); m_xTreeView->MakeVisible(rVclIter.iter); - enable_notify_events(); } void SalInstanceTreeView::do_unselect(const weld::TreeIter& rIter) diff --git a/vcl/unx/gtk3/gtkinst.cxx b/vcl/unx/gtk3/gtkinst.cxx index 3a179637dcbb..ecfea163c57a 100644 --- a/vcl/unx/gtk3/gtkinst.cxx +++ b/vcl/unx/gtk3/gtkinst.cxx @@ -15265,7 +15265,7 @@ public: enable_notify_events(); } - virtual void scroll_to_row(int pos) override + virtual void do_scroll_to_row(int pos) override { assert(gtk_tree_view_get_model(m_pTreeView) && "don't select when frozen, select after thaw. Note selection doesn't survive a freeze"); disable_notify_events(); @@ -16030,7 +16030,7 @@ public: enable_notify_events(); } - virtual void scroll_to_row(const weld::TreeIter& rIter) override + virtual void do_scroll_to_row(const weld::TreeIter& rIter) override { assert(gtk_tree_view_get_model(m_pTreeView) && "don't select when frozen, select after thaw. Note selection doesn't survive a freeze"); disable_notify_events(); commit 7765c9de847b09d1631b80fa45b9560f2d837772 Author: Michael Weghorn <[email protected]> AuthorDate: Sat Oct 18 00:40:52 2025 +0200 Commit: Michael Weghorn <[email protected]> CommitDate: Mon Oct 20 17:07:30 2025 +0200 tdf#130857 weld: Move signal blocking to TreeView::{,un}select 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 4 methods as well. See the above-mentioned commit for more details/background. Change-Id: Id271f9d224189bbbe14e95d88ddb1901ca7c4edd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192622 Tested-by: Jenkins Reviewed-by: Michael Weghorn <[email protected]> diff --git a/include/vcl/weld.hxx b/include/vcl/weld.hxx index a974e35994f6..3a788ec0515c 100644 --- a/include/vcl/weld.hxx +++ b/include/vcl/weld.hxx @@ -1074,6 +1074,10 @@ protected: return m_aGetSizeHdl.Call(get_size_args(rDevice, rId)); } + virtual void do_select(int pos) = 0; + virtual void do_unselect(int pos) = 0; + virtual void do_select(const TreeIter& rIter) = 0; + virtual void do_unselect(const TreeIter& rIter) = 0; virtual void do_set_children_on_demand(const TreeIter& rIter, bool bChildrenOnDemand) = 0; virtual void do_remove_selection() = 0; @@ -1158,8 +1162,20 @@ public: //by index virtual int get_selected_index() const = 0; //Don't select when frozen, select after thaw. Note selection doesn't survive a freeze. - virtual void select(int pos) = 0; - virtual void unselect(int pos) = 0; + void select(int pos) + { + disable_notify_events(); + do_select(pos); + enable_notify_events(); + } + + void unselect(int pos) + { + disable_notify_events(); + do_unselect(pos); + enable_notify_events(); + } + virtual void remove(int pos) = 0; // col index -1 gets the first text column virtual OUString get_text(int row, int col = -1) const = 0; @@ -1258,9 +1274,22 @@ public: // returns the number of direct children rIter has virtual int iter_n_children(const TreeIter& rIter) const = 0; virtual void remove(const TreeIter& rIter) = 0; + //Don't select when frozen, select after thaw. Note selection doesn't survive a freeze. - virtual void select(const TreeIter& rIter) = 0; - virtual void unselect(const TreeIter& rIter) = 0; + void select(const TreeIter& rIter) + { + disable_notify_events(); + do_select(rIter); + enable_notify_events(); + } + + void unselect(const TreeIter& rIter) + { + disable_notify_events(); + do_unselect(rIter); + enable_notify_events(); + } + //visually indent this row as if it was at get_iter_depth() + nIndentLevel virtual void set_extra_row_indent(const TreeIter& rIter, int nIndentLevel) = 0; // col index -1 sets the first text column diff --git a/vcl/inc/jsdialog/jsdialogbuilder.hxx b/vcl/inc/jsdialog/jsdialogbuilder.hxx index 2767d8a68af5..5f07fe497591 100644 --- a/vcl/inc/jsdialog/jsdialogbuilder.hxx +++ b/vcl/inc/jsdialog/jsdialogbuilder.hxx @@ -692,9 +692,9 @@ public: virtual void set_sensitive(int pos, bool bSensitive, int col = -1) override; virtual void set_sensitive(const weld::TreeIter& rIter, bool bSensitive, int col = -1) override; - using SalInstanceTreeView::select; + using SalInstanceTreeView::do_select; /// pos is used differently here, it defines how many steps of iterator we need to perform to take entry - virtual void select(int pos) override; + virtual void do_select(int pos) override; virtual weld::TreeView* get_drag_source() const override; diff --git a/vcl/inc/qt5/QtInstanceTreeView.hxx b/vcl/inc/qt5/QtInstanceTreeView.hxx index 6e089d97dc1d..6e8e05fa84b0 100644 --- a/vcl/inc/qt5/QtInstanceTreeView.hxx +++ b/vcl/inc/qt5/QtInstanceTreeView.hxx @@ -54,8 +54,8 @@ public: virtual void set_clicks_to_toggle(int nToggleBehavior) override; virtual int get_selected_index() const override; - virtual void select(int nPos) override; - virtual void unselect(int nPos) override; + virtual void do_select(int nPos) override; + virtual void do_unselect(int nPos) override; virtual void remove(int nPos) override; virtual OUString get_text(int nRow, int nCol = -1) const override; virtual void set_text(int nRow, const OUString& rText, int nCol = -1) override; @@ -103,8 +103,8 @@ public: virtual bool iter_has_child(const weld::TreeIter& rIter) const override; virtual int iter_n_children(const weld::TreeIter& rIter) const override; virtual void remove(const weld::TreeIter& rIter) override; - virtual void select(const weld::TreeIter& rIter) override; - virtual void unselect(const weld::TreeIter& rIter) override; + virtual void do_select(const weld::TreeIter& rIter) override; + virtual void do_unselect(const weld::TreeIter& rIter) override; virtual void set_extra_row_indent(const weld::TreeIter& rIter, int nIndentLevel) override; virtual void set_text(const weld::TreeIter& rIter, const OUString& rStr, int nCol = -1) override; diff --git a/vcl/inc/salvtables.hxx b/vcl/inc/salvtables.hxx index 10831bf7114b..6d303456cd7a 100644 --- a/vcl/inc/salvtables.hxx +++ b/vcl/inc/salvtables.hxx @@ -1622,7 +1622,7 @@ public: virtual int iter_n_children(const weld::TreeIter& rIter) const override; - virtual void select(int pos) override; + virtual void do_select(int pos) override; virtual int get_cursor_index() const override; @@ -1632,7 +1632,7 @@ public: virtual bool is_selected(int pos) const override; - virtual void unselect(int pos) override; + virtual void do_unselect(int pos) override; virtual std::vector<int> get_selected_rows() const override; @@ -1757,11 +1757,11 @@ public: virtual void remove(const weld::TreeIter& rIter) override; - virtual void select(const weld::TreeIter& rIter) override; + virtual void do_select(const weld::TreeIter& rIter) override; virtual void scroll_to_row(const weld::TreeIter& rIter) override; - virtual void unselect(const weld::TreeIter& rIter) override; + virtual void do_unselect(const weld::TreeIter& rIter) override; virtual int get_iter_depth(const weld::TreeIter& rIter) const override; diff --git a/vcl/jsdialog/jsdialogbuilder.cxx b/vcl/jsdialog/jsdialogbuilder.cxx index 074e21b7ce97..72072dbf3dca 100644 --- a/vcl/jsdialog/jsdialogbuilder.cxx +++ b/vcl/jsdialog/jsdialogbuilder.cxx @@ -1728,10 +1728,9 @@ void JSTreeView::set_sensitive(const weld::TreeIter& rIter, bool bSensitive, int sendUpdate(); } -void JSTreeView::select(int pos) +void JSTreeView::do_select(int pos) { assert(m_xTreeView->IsUpdateMode() && "don't select when frozen"); - disable_notify_events(); if (pos == -1 || (pos == 0 && n_children() == 0)) m_xTreeView->SelectAll(false); else @@ -1747,7 +1746,6 @@ void JSTreeView::select(int pos) m_xTreeView->MakeVisible(pEntry); } } - enable_notify_events(); std::unique_ptr<jsdialog::ActionDataMap> pMap = std::make_unique<jsdialog::ActionDataMap>(); (*pMap)[ACTION_TYPE ""_ostr] = "select"; diff --git a/vcl/qt5/QtInstanceTreeView.cxx b/vcl/qt5/QtInstanceTreeView.cxx index 4736cd157257..d96d894f93df 100644 --- a/vcl/qt5/QtInstanceTreeView.cxx +++ b/vcl/qt5/QtInstanceTreeView.cxx @@ -162,9 +162,9 @@ int QtInstanceTreeView::get_selected_index() const return nIndex; } -void QtInstanceTreeView::select(int nPos) { select(treeIter(nPos)); } +void QtInstanceTreeView::do_select(int nPos) { do_select(treeIter(nPos)); } -void QtInstanceTreeView::unselect(int nPos) { unselect(treeIter(nPos)); } +void QtInstanceTreeView::do_unselect(int nPos) { do_unselect(treeIter(nPos)); } void QtInstanceTreeView::remove(int nPos) { remove(treeIter(nPos)); } @@ -519,7 +519,7 @@ void QtInstanceTreeView::remove(const weld::TreeIter& rIter) }); } -void QtInstanceTreeView::select(const weld::TreeIter& rIter) +void QtInstanceTreeView::do_select(const weld::TreeIter& rIter) { SolarMutexGuard g; @@ -533,7 +533,7 @@ void QtInstanceTreeView::select(const weld::TreeIter& rIter) }); } -void QtInstanceTreeView::unselect(const weld::TreeIter& rIter) +void QtInstanceTreeView::do_unselect(const weld::TreeIter& rIter) { SolarMutexGuard g; diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx index dfd8de71b092..46cd1e846ca1 100644 --- a/vcl/source/app/salvtables.cxx +++ b/vcl/source/app/salvtables.cxx @@ -4082,12 +4082,11 @@ int SalInstanceTreeView::iter_n_children(const weld::TreeIter& rIter) const return m_xTreeView->GetModel()->GetChildList(rVclIter.iter).size(); } -void SalInstanceTreeView::select(int pos) +void SalInstanceTreeView::do_select(int pos) { assert(m_xTreeView->IsUpdateMode() && "don't select when frozen, select after thaw. Note selection doesn't survive a " "freeze"); - disable_notify_events(); if (pos == -1 || (pos == 0 && n_children() == 0)) m_xTreeView->SelectAll(false); else @@ -4097,7 +4096,6 @@ void SalInstanceTreeView::select(int pos) m_xTreeView->Select(pEntry, true); m_xTreeView->MakeVisible(pEntry); } - enable_notify_events(); } int SalInstanceTreeView::get_cursor_index() const @@ -4138,12 +4136,11 @@ bool SalInstanceTreeView::is_selected(int pos) const return m_xTreeView->IsSelected(pEntry); } -void SalInstanceTreeView::unselect(int pos) +void SalInstanceTreeView::do_unselect(int pos) { assert(m_xTreeView->IsUpdateMode() && "don't select when frozen, select after thaw. Note selection doesn't survive a " "freeze"); - disable_notify_events(); if (pos == -1) m_xTreeView->SelectAll(true); else @@ -4151,7 +4148,6 @@ void SalInstanceTreeView::unselect(int pos) SvTreeListEntry* pEntry = m_xTreeView->GetEntry(nullptr, pos); m_xTreeView->Select(pEntry, false); } - enable_notify_events(); } std::vector<int> SalInstanceTreeView::get_selected_rows() const @@ -4670,15 +4666,13 @@ void SalInstanceTreeView::remove(const weld::TreeIter& rIter) enable_notify_events(); } -void SalInstanceTreeView::select(const weld::TreeIter& rIter) +void SalInstanceTreeView::do_select(const weld::TreeIter& rIter) { assert(m_xTreeView->IsUpdateMode() && "don't select when frozen, select after thaw. Note selection doesn't survive a " "freeze"); - disable_notify_events(); const SalInstanceTreeIter& rVclIter = static_cast<const SalInstanceTreeIter&>(rIter); m_xTreeView->Select(rVclIter.iter, true); - enable_notify_events(); } void SalInstanceTreeView::scroll_to_row(const weld::TreeIter& rIter) @@ -4692,13 +4686,11 @@ void SalInstanceTreeView::scroll_to_row(const weld::TreeIter& rIter) enable_notify_events(); } -void SalInstanceTreeView::unselect(const weld::TreeIter& rIter) +void SalInstanceTreeView::do_unselect(const weld::TreeIter& rIter) { assert(m_xTreeView->IsUpdateMode() && "don't unselect when frozen"); - disable_notify_events(); const SalInstanceTreeIter& rVclIter = static_cast<const SalInstanceTreeIter&>(rIter); m_xTreeView->Select(rVclIter.iter, false); - enable_notify_events(); } int SalInstanceTreeView::get_iter_depth(const weld::TreeIter& rIter) const diff --git a/vcl/unx/gtk3/gtkinst.cxx b/vcl/unx/gtk3/gtkinst.cxx index 73b1b96a6409..3a179637dcbb 100644 --- a/vcl/unx/gtk3/gtkinst.cxx +++ b/vcl/unx/gtk3/gtkinst.cxx @@ -15231,7 +15231,7 @@ public: return gtk_tree_model_iter_n_children(m_pTreeModel, const_cast<GtkTreeIter*>(&rGtkIter.iter)); } - virtual void select(int pos) override + virtual void do_select(int pos) override { assert(gtk_tree_view_get_model(m_pTreeView) && "don't select when frozen, select after thaw. Note selection doesn't survive a freeze"); disable_notify_events(); @@ -15283,7 +15283,7 @@ public: return gtk_tree_selection_iter_is_selected(gtk_tree_view_get_selection(m_pTreeView), &iter); } - virtual void unselect(int pos) override + virtual void do_unselect(int pos) override { assert(gtk_tree_view_get_model(m_pTreeView) && "don't select when frozen, select after thaw. Note selection doesn't survive a freeze"); disable_notify_events(); @@ -16021,7 +16021,7 @@ public: enable_notify_events(); } - virtual void select(const weld::TreeIter& rIter) override + virtual void do_select(const weld::TreeIter& rIter) override { assert(gtk_tree_view_get_model(m_pTreeView) && "don't select when frozen, select after thaw. Note selection doesn't survive a freeze"); disable_notify_events(); @@ -16042,7 +16042,7 @@ public: enable_notify_events(); } - virtual void unselect(const weld::TreeIter& rIter) override + virtual void do_unselect(const weld::TreeIter& rIter) override { assert(gtk_tree_view_get_model(m_pTreeView) && "don't select when frozen, select after thaw. Note selection doesn't survive a freeze"); disable_notify_events();
