diff --git a/include/wx/qt/textctrl.h b/include/wx/qt/textctrl.h index 5c846a3f6d..7b24c03773 100644 --- a/include/wx/qt/textctrl.h +++ b/include/wx/qt/textctrl.h @@ -76,6 +76,9 @@ public: virtual void EmptyUndoBuffer() override; + virtual bool IsEditable() const override; + virtual void SetEditable(bool editable) override; + virtual wxString DoGetValue() const override; virtual void DoSetValue(const wxString &text, int flags = 0) override; virtual void WriteText(const wxString& text) override; diff --git a/src/qt/textctrl.cpp b/src/qt/textctrl.cpp index 0d69af970b..c1e59da2b5 100644 --- a/src/qt/textctrl.cpp +++ b/src/qt/textctrl.cpp @@ -816,6 +816,24 @@ void wxTextCtrl::EmptyUndoBuffer() m_qtEdit->EmptyUndoBuffer(); } +bool wxTextCtrl::IsEditable() const +{ + return HasFlag(wxTE_READONLY); +} + +void wxTextCtrl::SetEditable(bool editable) +{ + long flags = GetWindowStyle(); + + if ( editable ) + flags &= ~wxTE_READONLY; + else + flags |= wxTE_READONLY; + + SetWindowStyle(flags); + m_qtEdit->SetStyleFlags(flags); +} + void wxTextCtrl::SetInsertionPoint(long pos) { m_qtEdit->SetInsertionPoint(pos);