comparison libgui/graphics/EditControl.cc @ 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 f0e61a67ad9f
children 76c72314d905
comparison
equal deleted inserted replaced
20045:b08c13ed4a8c 20046:2535b9ffa2fc
80 80
81 connect (edit, SIGNAL (textEdited (const QString&)), 81 connect (edit, SIGNAL (textEdited (const QString&)),
82 SLOT (textChanged (void))); 82 SLOT (textChanged (void)));
83 connect (edit, SIGNAL (editingFinished (void)), 83 connect (edit, SIGNAL (editingFinished (void)),
84 SLOT (editingFinished (void))); 84 SLOT (editingFinished (void)));
85 connect (edit, SIGNAL (returnPressed (void)),
86 SLOT (returnPressed (void)));
85 } 87 }
86 88
87 EditControl::EditControl (const graphics_object& go, TextEdit* edit) 89 EditControl::EditControl (const graphics_object& go, TextEdit* edit)
88 : BaseControl (go, edit), m_multiLine (true), m_textChanged (false) 90 : BaseControl (go, edit), m_multiLine (true), m_textChanged (false)
89 { 91 {
107 109
108 connect (edit, SIGNAL (textChanged (void)), 110 connect (edit, SIGNAL (textChanged (void)),
109 SLOT (textChanged (void))); 111 SLOT (textChanged (void)));
110 connect (edit, SIGNAL (editingFinished (void)), 112 connect (edit, SIGNAL (editingFinished (void)),
111 SLOT (editingFinished (void))); 113 SLOT (editingFinished (void)));
114 connect (edit, SIGNAL (returnPressed (void)),
115 SLOT (returnPressed (void)));
112 } 116 }
113 117
114 EditControl::~EditControl (void) 118 EditControl::~EditControl (void)
115 { 119 {
116 } 120 }
212 EditControl::textChanged (void) 216 EditControl::textChanged (void)
213 { 217 {
214 m_textChanged = true; 218 m_textChanged = true;
215 } 219 }
216 220
221 void
222 EditControl::returnPressed (void)
223 {
224 QString txt = (m_multiLine
225 ? qWidget<TextEdit> ()->toPlainText ()
226 : qWidget<QLineEdit> ()->text ());
227
228 if (m_textChanged)
229 {
230 gh_manager::post_set (m_handle, "string", Utils::toStdString (txt), false);
231
232 m_textChanged = false;
233 }
234
235 if (txt.length () > 0)
236 gh_manager::post_callback (m_handle, "callback");
237 }
238
217 void 239 void
218 EditControl::editingFinished (void) 240 EditControl::editingFinished (void)
219 { 241 {
220 if (m_textChanged) 242 if (m_textChanged)
221 { 243 {