From 83c68142e0523d1bf9e66ba5cb8fa677acc4e459 Mon Sep 17 00:00:00 2001 From: ThomasV Date: Mon, 15 Feb 2016 09:14:27 +0100 Subject: [PATCH] kivy wizard: add space button --- gui/kivy/uix/dialogs/create_restore.py | 22 ++++++++++++++++------ gui/kivy/uix/dialogs/installwizard.py | 2 +- lib/mnemonic.py | 2 +- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/gui/kivy/uix/dialogs/create_restore.py b/gui/kivy/uix/dialogs/create_restore.py index b4dc72bf4..86f34890f 100644 --- a/gui/kivy/uix/dialogs/create_restore.py +++ b/gui/kivy/uix/dialogs/create_restore.py @@ -259,9 +259,10 @@ Builder.load_string(''' text: 'N' MButton: text: 'M' + MButton: + text: ' ' MButton: text: '<' - size_hint: 2, None GridLayout: rows: 1 @@ -405,7 +406,7 @@ class RestoreSeedDialog(WizardDialog): self.mnemonic = Mnemonic('en') def on_text(self, dt): - text = self.get_seed_text() + text = self.ids.text_input_seed.text self.ids.next.disabled = not bool(self._test(text)) if not text: @@ -415,20 +416,29 @@ class RestoreSeedDialog(WizardDialog): else: last_word = text.split(' ')[-1] + enable_space = False self.ids.suggestions.clear_widgets() suggestions = [x for x in self.mnemonic.get_suggestions(last_word)] if suggestions and len(suggestions) < 10: for w in suggestions: - b = WordButton(text=w) - self.ids.suggestions.add_widget(b) + if w == last_word: + enable_space = True + else: + b = WordButton(text=w) + self.ids.suggestions.add_widget(b) i = len(last_word) - p = set([x[i] for x in suggestions]) + p = set() + for x in suggestions: + if len(x)>i: p.add(x[i]) + for line in [self.ids.line1, self.ids.line2, self.ids.line3]: for c in line.children: if isinstance(c, Button): if c.text in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ': - c.disabled = (c.text.lower() not in p) and p + c.disabled = (c.text.lower() not in p) and last_word + elif c.text == ' ': + c.disabled = not enable_space def on_word(self, w): text = self.get_seed_text() diff --git a/gui/kivy/uix/dialogs/installwizard.py b/gui/kivy/uix/dialogs/installwizard.py index a090d4bc9..a573e2e94 100644 --- a/gui/kivy/uix/dialogs/installwizard.py +++ b/gui/kivy/uix/dialogs/installwizard.py @@ -98,7 +98,7 @@ class InstallWizard(Widget): else: self.run('add_seed', (text, None)) # fixme: sync - msg = _('You may use the camera to scan your seed. Scan a master public key to create a watching-only wallet') + msg = _('You may use the camera to scan your seed. To create a watching-only wallet, scan your master public key.') RestoreSeedDialog(test=Wallet.is_any, message=msg, on_release=on_seed).open() def add_seed(self, text, password): diff --git a/lib/mnemonic.py b/lib/mnemonic.py index 1c650f818..cbfb00c72 100644 --- a/lib/mnemonic.py +++ b/lib/mnemonic.py @@ -134,7 +134,7 @@ class Mnemonic(object): def get_suggestions(self, prefix): for w in self.wordlist: - if w.startswith(prefix) and w!=prefix: + if w.startswith(prefix): yield w def mnemonic_decode(self, seed):