Fabian Deutsch has uploaded a new change for review. Change subject: builder: Fix Table selection ......................................................................
builder: Fix Table selection Previously it wasn't possible to hit ENTER on an entry in a Table without doing an up-down-cycle. Change-Id: Ie5c7ea82b293c364ce8d787b612029c30568af4b Signed-off-by: Fabian Deutsch <[email protected]> --- M scripts/tui/src/ovirt/node/ui/__init__.py M scripts/tui/src/ovirt/node/ui/builder.py M scripts/tui/src/ovirt/node/ui/widgets.py 3 files changed, 19 insertions(+), 10 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-node refs/changes/16/9916/1 diff --git a/scripts/tui/src/ovirt/node/ui/__init__.py b/scripts/tui/src/ovirt/node/ui/__init__.py index aac852c..84fa56e 100644 --- a/scripts/tui/src/ovirt/node/ui/__init__.py +++ b/scripts/tui/src/ovirt/node/ui/__init__.py @@ -294,3 +294,9 @@ self.header = header self.items = items self.height = height + + @Element.signal_change + def select(self, selected=None): + if selected in dict(self.items).keys(): + self._selected = selected + return self._selected diff --git a/scripts/tui/src/ovirt/node/ui/builder.py b/scripts/tui/src/ovirt/node/ui/builder.py index 38f74e1..41d9b27 100644 --- a/scripts/tui/src/ovirt/node/ui/builder.py +++ b/scripts/tui/src/ovirt/node/ui/builder.py @@ -247,8 +247,10 @@ children.append(c) widget = ovirt.node.ui.widgets.TableWidget(item.header, children, item.height) - urwid.connect_signal(widget, "changed", - lambda w: plugin._on_ui_change({path: w._key})) + def on_change_cb(w, d=None): + plugin._on_ui_change({path: w._key}) + item.select(w._key) + urwid.connect_signal(widget, "changed", on_change_cb) return widget @@ -257,9 +259,10 @@ c = ovirt.node.ui.widgets.TableEntryWidget(label) c._key = key - def on_click_cb(widget, data): + def on_activate_cb(w, data): + plugin._on_ui_change({path: w._key}) parse_plugin_result(tui, plugin, plugin._on_ui_save()) - urwid.connect_signal(c, "click", on_click_cb) + urwid.connect_signal(c, "activate", on_activate_cb) return c diff --git a/scripts/tui/src/ovirt/node/ui/widgets.py b/scripts/tui/src/ovirt/node/ui/widgets.py index 2affe1e..5a7dced 100644 --- a/scripts/tui/src/ovirt/node/ui/widgets.py +++ b/scripts/tui/src/ovirt/node/ui/widgets.py @@ -42,7 +42,7 @@ """ _text = None - signals = ["click"] + signals = ["activate"] def __init__(self, title): self._text = SelectableText(title) @@ -53,15 +53,15 @@ 'table.entry:focus') def keypress(self, size, key): - if self._command_map[key] != 'activate': - return key - self._emit('click', None) + if urwid.Button._command_map[key] == 'activate': + self._emit('activate', None) + return key def mouse_event(self, size, event, button, x, y, focus): if button != 1 or not urwid.util.is_mouse_press(event): return False - self._emit('click', self) + self._emit('activate', self) return True @@ -238,7 +238,7 @@ class Entry(urwid.WidgetWrap): - signals = ['change'] + signals = ['change', 'click'] notice = property(lambda self: self._notice.get_text(), \ lambda self, v: self._notice.set_text(v)) -- To view, visit http://gerrit.ovirt.org/9916 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ie5c7ea82b293c364ce8d787b612029c30568af4b Gerrit-PatchSet: 1 Gerrit-Project: ovirt-node Gerrit-Branch: master Gerrit-Owner: Fabian Deutsch <[email protected]> _______________________________________________ node-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/node-patches
