diff --git a/include/vcl/weld/ComboBox.hxx b/include/vcl/weld/ComboBox.hxx index f7edca1fb97d..cca64c95507b 100644 --- a/include/vcl/weld/ComboBox.hxx +++ b/include/vcl/weld/ComboBox.hxx @@ -88,6 +88,7 @@ protected: = 0; virtual void do_set_active(int pos) = 0; virtual void do_set_active_id(const OUString& rStr) = 0; + virtual void do_set_entry_text(const OUString& rStr) = 0; public: void insert(int pos, const OUString& rStr, const OUString* pId, const OUString* pIconName, @@ -167,7 +168,7 @@ public: //entry related virtual bool has_entry() const = 0; virtual void set_entry_message_type(EntryMessageType eType) = 0; - virtual void set_entry_text(const OUString& rStr) = 0; + void set_entry_text(const OUString& rStr); virtual void set_entry_width_chars(int nChars) = 0; virtual void set_entry_max_length(int nChars) = 0; virtual void select_entry_region(int nStartPos, int nEndPos) = 0; diff --git a/include/vcl/weld/EntryTreeView.hxx b/include/vcl/weld/EntryTreeView.hxx index 7ad86e3f7665..f9918ea7910f 100644 --- a/include/vcl/weld/EntryTreeView.hxx +++ b/include/vcl/weld/EntryTreeView.hxx @@ -36,6 +36,8 @@ protected: m_xTreeView->insert(pos, rStr, pId, pIconName, pImageSurface); } + virtual void do_set_entry_text(const OUString& rStr) override { m_xEntry->set_text(rStr); } + public: EntryTreeView(std::unique_ptr xEntry, std::unique_ptr xTreeView); @@ -88,7 +90,6 @@ public: { m_xEntry->set_message_type(eType); } - virtual void set_entry_text(const OUString& rStr) override { m_xEntry->set_text(rStr); } virtual void set_entry_width_chars(int nChars) override { m_xEntry->set_width_chars(nChars); } virtual void set_entry_max_length(int nChars) override { m_xEntry->set_max_length(nChars); } virtual void select_entry_region(int nStartPos, int nEndPos) override diff --git a/vcl/inc/qt5/QtInstanceComboBox.hxx b/vcl/inc/qt5/QtInstanceComboBox.hxx index 239f2a65dbd3..24332b5b26b8 100644 --- a/vcl/inc/qt5/QtInstanceComboBox.hxx +++ b/vcl/inc/qt5/QtInstanceComboBox.hxx @@ -56,7 +56,7 @@ public: virtual bool has_entry() const override; virtual void set_entry_message_type(weld::EntryMessageType eType) override; - virtual void set_entry_text(const OUString& rStr) override; + virtual void do_set_entry_text(const OUString& rStr) override; virtual void set_entry_width_chars(int nChars) override; virtual void set_entry_max_length(int nChars) override; virtual void select_entry_region(int nStartPos, int nEndPos) override; diff --git a/vcl/inc/salvtables.hxx b/vcl/inc/salvtables.hxx index 4b0402b3a6db..48110a2ab652 100644 --- a/vcl/inc/salvtables.hxx +++ b/vcl/inc/salvtables.hxx @@ -966,7 +966,7 @@ public: virtual void set_entry_message_type(weld::EntryMessageType /*eType*/) override; - virtual void set_entry_text(const OUString& /*rText*/) override; + virtual void do_set_entry_text(const OUString& /*rText*/) override; virtual void select_entry_region(int /*nStartPos*/, int /*nEndPos*/) override; @@ -1039,7 +1039,7 @@ public: virtual void insert_separator(int pos, const OUString& /*rId*/) override; - virtual void set_entry_text(const OUString& rText) override; + virtual void do_set_entry_text(const OUString& rText) override; virtual void set_entry_width_chars(int nChars) override; diff --git a/vcl/qt5/QtInstanceComboBox.cxx b/vcl/qt5/QtInstanceComboBox.cxx index 6a864a7ef73b..ec3acc0bdb49 100644 --- a/vcl/qt5/QtInstanceComboBox.cxx +++ b/vcl/qt5/QtInstanceComboBox.cxx @@ -227,7 +227,7 @@ void QtInstanceComboBox::set_entry_message_type(weld::EntryMessageType eType) QtInstanceEntry::setMessageType(*m_pComboBox->lineEdit(), eType); } -void QtInstanceComboBox::set_entry_text(const OUString& rStr) +void QtInstanceComboBox::do_set_entry_text(const OUString& rStr) { SolarMutexGuard g; GetQtInstance().RunInMainThread([&] { m_pComboBox->setEditText(toQString(rStr)); }); diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx index 0b0371f87009..41ccc6486434 100644 --- a/vcl/source/app/salvtables.cxx +++ b/vcl/source/app/salvtables.cxx @@ -5852,7 +5852,7 @@ void SalInstanceComboBoxWithoutEdit::set_entry_message_type(weld::EntryMessageTy assert(false); } -void SalInstanceComboBoxWithoutEdit::set_entry_text(const OUString& /*rText*/) { assert(false); } +void SalInstanceComboBoxWithoutEdit::do_set_entry_text(const OUString& /*rText*/) { assert(false); } void SalInstanceComboBoxWithoutEdit::select_entry_region(int /*nStartPos*/, int /*nEndPos*/) { @@ -5999,7 +5999,7 @@ void SalInstanceComboBoxWithEdit::insert_separator(int pos, const OUString& /*rI m_xComboBox->AddSeparator(nInsertPos - 1); } -void SalInstanceComboBoxWithEdit::set_entry_text(const OUString& rText) +void SalInstanceComboBoxWithEdit::do_set_entry_text(const OUString& rText) { m_xComboBox->SetText(rText); } diff --git a/vcl/source/weld/ComboBox.cxx b/vcl/source/weld/ComboBox.cxx index 3f6149776ea6..fe90f77a34c6 100644 --- a/vcl/source/weld/ComboBox.cxx +++ b/vcl/source/weld/ComboBox.cxx @@ -33,6 +33,13 @@ void weld::ComboBox::set_active_id(const OUString& rStr) enable_notify_events(); } +void weld::ComboBox::set_entry_text(const OUString& rStr) +{ + disable_notify_events(); + do_set_entry_text(rStr); + enable_notify_events(); +} + bool weld::ComboBox::get_values_changed_from_saved() const { return !m_aSavedValues.empty() diff --git a/vcl/unx/gtk3/gtkinst.cxx b/vcl/unx/gtk3/gtkinst.cxx index 66ee6a50d290..d2fe26d3cb86 100644 --- a/vcl/unx/gtk3/gtkinst.cxx +++ b/vcl/unx/gtk3/gtkinst.cxx @@ -20084,7 +20084,7 @@ public: ::set_entry_message_type(GTK_ENTRY(m_pEntry), eType); } - virtual void set_entry_text(const OUString& rText) override + virtual void do_set_entry_text(const OUString& rText) override { assert(m_pEditable); disable_notify_events(); @@ -22036,7 +22036,7 @@ public: ::set_entry_message_type(GTK_ENTRY(m_pEntry), eType); } - virtual void set_entry_text(const OUString& rText) override + virtual void do_set_entry_text(const OUString& rText) override { assert(m_pEntry); disable_notify_events();