From 4f9f00307589dfbcf374bab464543b1a20abe96a Mon Sep 17 00:00:00 2001 From: Goffi Date: Fri, 3 May 2019 20:49:27 +0200 Subject: [PATCH] jp (xmlui manager): basic handling of multi-lines text in TextBoxWidget --- sat_frontends/jp/cmd_file.py | 2 +- sat_frontends/jp/xmlui_manager.py | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/sat_frontends/jp/cmd_file.py b/sat_frontends/jp/cmd_file.py index 295987b8..64225c6c 100644 --- a/sat_frontends/jp/cmd_file.py +++ b/sat_frontends/jp/cmd_file.py @@ -756,7 +756,7 @@ class ShareInvite(base.CommandBase): def _FISInviteCb(self): self.disp( - _(u'invitation sent do {entity}').format(entity=self.args.jid) + _(u'invitation sent to {entity}').format(entity=self.args.jid) ) self.host.quit() diff --git a/sat_frontends/jp/xmlui_manager.py b/sat_frontends/jp/xmlui_manager.py index 3c07e3b5..6b1e0cdc 100644 --- a/sat_frontends/jp/xmlui_manager.py +++ b/sat_frontends/jp/xmlui_manager.py @@ -236,6 +236,29 @@ class JidInputWidget(xmlui_base.JidInputWidget, StringWidget): class TextBoxWidget(xmlui_base.TextWidget, StringWidget): type = u"textbox" + # TODO: use a more advanced input method + + def show(self): + self.verboseName() + if self.read_only: + self.disp(self.value) + else: + if self.value: + self.disp(A.color(C.A_HEADER, u"↓ current value ↓\n", A.FG_CYAN, self.value, + "")) + + values = [] + while True: + try: + if not values: + line = raw_input(A.color(C.A_HEADER, u"[Ctrl-D to finish]> ")) + else: + line = raw_input() + values.append(line) + except EOFError: + break + + self.value = u'\n'.join(values).rstrip() class XHTMLBoxWidget(xmlui_base.XHTMLBoxWidget, StringWidget):