vcl/inc/salvtables.hxx | 16 ++++------------ vcl/source/app/salvtables.cxx | 33 +++++++++++---------------------- 2 files changed, 15 insertions(+), 34 deletions(-)
New commits: commit f7b52d3e90256121ab9df5ff5a84b1373bee250e Author: Michael Weghorn <[email protected]> AuthorDate: Wed Jan 21 14:26:52 2026 +0100 Commit: Michael Weghorn <[email protected]> CommitDate: Thu Jan 22 12:27:16 2026 +0100 vcl weld: Deduplicate TextWidget::do_select_region impls The SalInstanceTextView and SalInstanceEntry implementations are equivalent. Deduplicate them by moving the logic to the shared SalInstanceTextWidget base class. Change-Id: I6cc75b0a362d65c1b5ae36fdb4d739bb4142897d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/197748 Tested-by: Jenkins Reviewed-by: Michael Weghorn <[email protected]> diff --git a/vcl/inc/salvtables.hxx b/vcl/inc/salvtables.hxx index 2bfa1dadcfa0..6a1a51a3f25d 100644 --- a/vcl/inc/salvtables.hxx +++ b/vcl/inc/salvtables.hxx @@ -624,6 +624,7 @@ public: protected: virtual void do_set_text(const OUString& rText) override; virtual void do_set_position(int nCursorPos) override; + virtual void do_select_region(int nStartPos, int nEndPos) override; }; class SalInstanceEntry : public SalInstanceTextWidget, public virtual weld::Entry @@ -645,8 +646,6 @@ public: virtual void set_max_length(int nChars) override; - virtual void do_select_region(int nStartPos, int nEndPos) override; - bool get_selection_bounds(int& rStartPos, int& rEndPos) override; virtual void do_replace_selection(const OUString& rText) override; @@ -1440,8 +1439,6 @@ public: bool get_selection_bounds(int& rStartPos, int& rEndPos) override; - virtual void do_select_region(int nStartPos, int nEndPos) override; - virtual void set_editable(bool bEditable) override; virtual bool get_editable() const override; virtual void set_max_length(int nChars) override; diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx index f49b0c805b00..203c923be127 100644 --- a/vcl/source/app/salvtables.cxx +++ b/vcl/source/app/salvtables.cxx @@ -3324,6 +3324,13 @@ void SalInstanceTextWidget::do_set_position(int nCursorPos) int SalInstanceTextWidget::get_position() const { return m_pEntry->GetSelection().Max(); } +void SalInstanceTextWidget::do_select_region(int nStartPos, int nEndPos) +{ + tools::Long nStart = nStartPos < 0 ? SELECTION_MAX : nStartPos; + tools::Long nEnd = nEndPos < 0 ? SELECTION_MAX : nEndPos; + m_pEntry->SetSelection(Selection(nStart, nEnd)); +} + SalInstanceEntry::SalInstanceEntry(Edit* pEntry, SalInstanceBuilder* pBuilder, bool bTakeOwnership) : SalInstanceTextWidget(pEntry, pBuilder, bTakeOwnership) , m_xEntry(pEntry) @@ -3340,13 +3347,6 @@ int SalInstanceEntry::get_width_chars() const { return m_xEntry->GetWidthInChars void SalInstanceEntry::set_max_length(int nChars) { m_xEntry->SetMaxTextLen(nChars); } -void SalInstanceEntry::do_select_region(int nStartPos, int nEndPos) -{ - tools::Long nStart = nStartPos < 0 ? SELECTION_MAX : nStartPos; - tools::Long nEnd = nEndPos < 0 ? SELECTION_MAX : nEndPos; - m_xEntry->SetSelection(Selection(nStart, nEnd)); -} - bool SalInstanceEntry::get_selection_bounds(int& rStartPos, int& rEndPos) { const Selection& rSelection = m_xEntry->GetSelection(); @@ -5635,13 +5635,6 @@ bool SalInstanceTextView::get_selection_bounds(int& rStartPos, int& rEndPos) return rSelection.Len(); } -void SalInstanceTextView::do_select_region(int nStartPos, int nEndPos) -{ - tools::Long nStart = nStartPos < 0 ? SELECTION_MAX : nStartPos; - tools::Long nEnd = nEndPos < 0 ? SELECTION_MAX : nEndPos; - m_xTextView->SetSelection(Selection(nStart, nEnd)); -} - void SalInstanceTextView::set_editable(bool bEditable) { m_xTextView->SetReadOnly(!bEditable); } bool SalInstanceTextView::get_editable() const { return !m_xTextView->IsReadOnly(); } void SalInstanceTextView::set_max_length(int nChars) { m_xTextView->SetMaxTextLen(nChars); } commit 88d7af7b6ab844bd986bc7ec78482d63e6fd8b42 Author: Michael Weghorn <[email protected]> AuthorDate: Wed Jan 21 14:21:52 2026 +0100 Commit: Michael Weghorn <[email protected]> CommitDate: Thu Jan 22 12:27:08 2026 +0100 vcl weld: Deduplicate TextWidget::{g,do_s}et_text impls The SalInstanceTextView and SalInstanceEntry implementations are equivalent. Deduplicate them by moving the logic to the shared SalInstanceTextWidget base class. Change-Id: Ic056be076b0a13fbc0e08dc3e6b87b8349ab6e5c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/197747 Tested-by: Jenkins Reviewed-by: Michael Weghorn <[email protected]> diff --git a/vcl/inc/salvtables.hxx b/vcl/inc/salvtables.hxx index b53458a64be9..2bfa1dadcfa0 100644 --- a/vcl/inc/salvtables.hxx +++ b/vcl/inc/salvtables.hxx @@ -617,9 +617,12 @@ public: virtual void connect_cursor_position(const Link<TextWidget&, void>& rLink) override; + virtual OUString get_text() const override; + virtual int get_position() const override; protected: + virtual void do_set_text(const OUString& rText) override; virtual void do_set_position(int nCursorPos) override; }; @@ -636,10 +639,6 @@ private: public: SalInstanceEntry(::Edit* pEntry, SalInstanceBuilder* pBuilder, bool bTakeOwnership); - virtual void do_set_text(const OUString& rText) override; - - virtual OUString get_text() const override; - virtual void set_width_chars(int nChars) override; virtual int get_width_chars() const override; @@ -1437,12 +1436,8 @@ public: SalInstanceTextView(VclMultiLineEdit* pTextView, SalInstanceBuilder* pBuilder, bool bTakeOwnership); - virtual void do_set_text(const OUString& rText) override; - virtual void do_replace_selection(const OUString& rText) override; - virtual OUString get_text() const override; - bool get_selection_bounds(int& rStartPos, int& rEndPos) override; virtual void do_select_region(int nStartPos, int nEndPos) override; diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx index b415171a9c16..f49b0c805b00 100644 --- a/vcl/source/app/salvtables.cxx +++ b/vcl/source/app/salvtables.cxx @@ -3313,6 +3313,10 @@ void SalInstanceTextWidget::connect_cursor_position(const Link<TextWidget&, void weld::TextWidget::connect_cursor_position(rLink); } +void SalInstanceTextWidget::do_set_text(const OUString& rText) { m_pEntry->SetText(rText); } + +OUString SalInstanceTextWidget::get_text() const { return m_pEntry->GetText(); } + void SalInstanceTextWidget::do_set_position(int nCursorPos) { m_pEntry->SetSelection(Selection(nCursorPos, nCursorPos)); @@ -3330,10 +3334,6 @@ SalInstanceEntry::SalInstanceEntry(Edit* pEntry, SalInstanceBuilder* pBuilder, b m_xEntry->SetTextFilter(&m_aTextFilter); } -void SalInstanceEntry::do_set_text(const OUString& rText) { m_xEntry->SetText(rText); } - -OUString SalInstanceEntry::get_text() const { return m_xEntry->GetText(); } - void SalInstanceEntry::set_width_chars(int nChars) { m_xEntry->SetWidthInChars(nChars); } int SalInstanceEntry::get_width_chars() const { return m_xEntry->GetWidthInChars(); } @@ -5622,15 +5622,11 @@ SalInstanceTextView::SalInstanceTextView(VclMultiLineEdit* pTextView, SalInstanc rVertScrollBar.SetScrollHdl(LINK(this, SalInstanceTextView, VscrollHdl)); } -void SalInstanceTextView::do_set_text(const OUString& rText) { m_xTextView->SetText(rText); } - void SalInstanceTextView::do_replace_selection(const OUString& rText) { m_xTextView->ReplaceSelected(rText); } -OUString SalInstanceTextView::get_text() const { return m_xTextView->GetText(); } - bool SalInstanceTextView::get_selection_bounds(int& rStartPos, int& rEndPos) { const Selection& rSelection = m_xTextView->GetSelection();
