changeset 728a7ebbd9ca in /home/hg/repos/gajim
details:http://hg.gajim.org/gajim?cmd=changeset;node=728a7ebbd9ca
description: ability to validate dataform widget by pressing enter. Fixes #6032
diffstat:
src/dataforms_widget.py | 19 +++++++++++++++++++
src/groupchat_control.py | 8 +++++---
2 files changed, 24 insertions(+), 3 deletions(-)
diffs (82 lines):
diff -r 811fd151a511 -r 728a7ebbd9ca src/dataforms_widget.py
--- a/src/dataforms_widget.py Tue Nov 16 20:24:42 2010 +0100
+++ b/src/dataforms_widget.py Sun Nov 14 21:21:39 2010 +0100
@@ -43,6 +43,10 @@
Data Form widget. Use like any other widget
"""
+ __gsignals__ = dict(
+ validated = (gobject.SIGNAL_RUN_LAST | gobject.SIGNAL_ACTION, None, ())
+ )
+
def __init__(self, dataformnode=None):
''' Create a widget. '''
gtk.Alignment.__init__(self, xscale=1.0, yscale=1.0)
@@ -68,6 +72,9 @@
selection.connect('changed', self.on_records_selection_changed)
selection.set_mode(gtk.SELECTION_MULTIPLE)
+ def on_data_form_vbox_key_press_event(self, widget, event):
+ print 'key pressed'
+
def set_data_form(self, dataform):
"""
Set the data form (xmpp.DataForm) displayed in widget
@@ -141,6 +148,9 @@
self.clean_data_form()
self.singleform = SingleForm(self._data_form)
+ def _on_validated(widget):
+ self.emit('validated')
+ self.singleform.connect('validated', _on_validated)
self.singleform.show()
self.single_form_viewport.add(self.singleform)
self.data_form_types_notebook.set_current_page(
@@ -299,6 +309,10 @@
forms, it is in another class
"""
+ __gsignals__ = dict(
+ validated = (gobject.SIGNAL_RUN_LAST | gobject.SIGNAL_ACTION, None, ())
+ )
+
def __init__(self, dataform):
assert isinstance(dataform, dataforms.SimpleDataForm)
@@ -506,6 +520,11 @@
commonlabelcenter = True
if readwrite:
widget = gtk.Entry()
+ def kpe(widget, event):
+ if event.keyval == gtk.keysyms.Return or \
+ event.keyval == gtk.keysyms.KP_Enter:
+ self.emit('validated')
+ widget.connect('key-press-event', kpe)
widget.connect('changed',
self.on_text_single_entry_changed,
field)
widget.set_sensitive(readwrite)
diff -r 811fd151a511 -r 728a7ebbd9ca src/groupchat_control.py
--- a/src/groupchat_control.py Tue Nov 16 20:24:42 2010 +0100
+++ b/src/groupchat_control.py Sun Nov 14 21:21:39 2010 +0100
@@ -799,9 +799,6 @@
self.btn_box.destroy()
dataform = dataforms.ExtendForm(node=captcha)
self.form_widget = dataforms_widget.DataFormWidget(dataform)
- self.form_widget.show_all()
- vbox = self.xml.get_object('gc_textviews_vbox')
- vbox.pack_start(self.form_widget, expand=False, fill=False)
def on_send_dataform_clicked(widget):
if not self.form_widget:
@@ -816,6 +813,11 @@
self.form_widget = None
del self.btn_box
+ self.form_widget.connect('validated', on_send_dataform_clicked)
+ self.form_widget.show_all()
+ vbox = self.xml.get_object('gc_textviews_vbox')
+ vbox.pack_start(self.form_widget, expand=False, fill=False)
+
valid_button = gtk.Button(stock=gtk.STOCK_OK)
valid_button.connect('clicked', on_send_dataform_clicked)
self.btn_box = gtk.HButtonBox()
_______________________________________________
Commits mailing list
[email protected]
http://lists.gajim.org/cgi-bin/listinfo/commits