Mercurial > octave-nkf
changeset 20046:2535b9ffa2fc
Qt EditControl: do callback always on return pressed (Bug #44690)
* libgui/graphics/TextEdit.h
(returnPressed): new signal
* libgui/graphics/TextEdit.cpp
(TextEdit::keyPressEvent): emit returnPressed instread of editingFinished
* libgui/graphics/EditControl.cc
(EditControl::returnPressed): new function
(EditControl::EditControl): connect edit control returnPressed to our returnPressed.
author | John Donoghue |
---|---|
date | Wed, 01 Apr 2015 16:00:35 -0400 |
parents | b08c13ed4a8c |
children | b66ab1af5a3b |
files | libgui/graphics/EditControl.cc libgui/graphics/EditControl.h libgui/graphics/TextEdit.cc libgui/graphics/TextEdit.h |
diffstat | 4 files changed, 25 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/libgui/graphics/EditControl.cc Wed Apr 01 15:16:14 2015 -0400 +++ b/libgui/graphics/EditControl.cc Wed Apr 01 16:00:35 2015 -0400 @@ -82,6 +82,8 @@ SLOT (textChanged (void))); connect (edit, SIGNAL (editingFinished (void)), SLOT (editingFinished (void))); + connect (edit, SIGNAL (returnPressed (void)), + SLOT (returnPressed (void))); } EditControl::EditControl (const graphics_object& go, TextEdit* edit) @@ -109,6 +111,8 @@ SLOT (textChanged (void))); connect (edit, SIGNAL (editingFinished (void)), SLOT (editingFinished (void))); + connect (edit, SIGNAL (returnPressed (void)), + SLOT (returnPressed (void))); } EditControl::~EditControl (void) @@ -214,6 +218,24 @@ m_textChanged = true; } +void +EditControl::returnPressed (void) +{ + QString txt = (m_multiLine + ? qWidget<TextEdit> ()->toPlainText () + : qWidget<QLineEdit> ()->text ()); + + if (m_textChanged) + { + gh_manager::post_set (m_handle, "string", Utils::toStdString (txt), false); + + m_textChanged = false; + } + + if (txt.length () > 0) + gh_manager::post_callback (m_handle, "callback"); +} + void EditControl::editingFinished (void) {
--- a/libgui/graphics/EditControl.h Wed Apr 01 15:16:14 2015 -0400 +++ b/libgui/graphics/EditControl.h Wed Apr 01 16:00:35 2015 -0400 @@ -57,6 +57,7 @@ private slots: void textChanged (void); void editingFinished (void); + void returnPressed (void); private: bool m_multiLine;
--- a/libgui/graphics/TextEdit.cc Wed Apr 01 15:16:14 2015 -0400 +++ b/libgui/graphics/TextEdit.cc Wed Apr 01 16:00:35 2015 -0400 @@ -47,7 +47,7 @@ if ((xevent->key () == Qt::Key_Return || xevent->key () == Qt::Key_Enter) && xevent->modifiers () == Qt::ControlModifier) - emit editingFinished (); + emit returnPressed (); } }; // namespace QtHandles