diff options
-rw-r--r-- | grc/src/grc_gnuradio/wxgui/callback_controls.py | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/grc/src/grc_gnuradio/wxgui/callback_controls.py b/grc/src/grc_gnuradio/wxgui/callback_controls.py index a8e7a9320..8027a580c 100644 --- a/grc/src/grc_gnuradio/wxgui/callback_controls.py +++ b/grc/src/grc_gnuradio/wxgui/callback_controls.py @@ -263,6 +263,8 @@ class text_box_control(_control_base): for obj in (label_text, text_box): #fill the container with label and text entry box label_text_sizer.Add(obj, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL) self.Add(label_text_sizer, 0, wx.ALIGN_CENTER) + #set the value, detect string mode + self._string_mode = isinstance(value, str) self.text_box.SetValue(str(value)) def get_value(self): @@ -276,8 +278,13 @@ class text_box_control(_control_base): """ An enter key was pressed. Read the text box, call the callback. If the text cannot be evaluated, do not try callback. + Do not evaluate the text box value in string mode. """ - try: self._value = eval(self.text_box.GetValue()) - except: return + if self._string_mode: self._value = self.text_box.GetValue() + else: + try: self._value = eval(self.text_box.GetValue()) + except Exception, e: + print >> sys.stderr, 'Error in evaluate value from handle enter.\n', e + return try: self.call() except Exception, e: print >> sys.stderr, 'Error in exec callback from handle enter.\n', e |