From faed111835a0afadd7202da6e3f3e451a2839885 Mon Sep 17 00:00:00 2001 From: Thomas Farstrike Date: Sat, 31 May 2025 23:12:53 +0200 Subject: [PATCH] displaywallet: add CAM button for QR scanning (not functional yet) --- .../assets/displaywallet.py | 23 +++++++++++++++++-- internal_filesystem/lib/mpos/clipboard.py | 9 ++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 internal_filesystem/lib/mpos/clipboard.py diff --git a/internal_filesystem/apps/com.lightningpiggy.displaywallet/assets/displaywallet.py b/internal_filesystem/apps/com.lightningpiggy.displaywallet/assets/displaywallet.py index add31b6a..aac08355 100644 --- a/internal_filesystem/apps/com.lightningpiggy.displaywallet/assets/displaywallet.py +++ b/internal_filesystem/apps/com.lightningpiggy.displaywallet/assets/displaywallet.py @@ -144,6 +144,18 @@ class SettingsScreen(): cb.add_style(style_radio_chk, lv.PART.INDICATOR | lv.STATE.CHECKED) return cb + def cambutton_cb(self, event): + print("cambutton clicked!") + import captureqr + print("after import captureqr") + #while True: this hangs the entire thing - not good... + clip = mpos.clipboard.get() + print(f"clip is: {clip}") + if clip and clip.startsWith("Result:"): + print("Got result from QR code scanner!") + #break + time.sleep(0.25) + def open_edit_popup(self, setting): # Close existing msgbox and keyboard if open if self.msgbox: @@ -158,7 +170,7 @@ class SettingsScreen(): # Create msgbox self.msgbox = lv.msgbox() self.msgbox.add_title(setting["title"]) - self.msgbox.set_width(lv.pct(80)) + self.msgbox.set_width(lv.pct(85)) self.msgbox.center() # Create content container @@ -192,7 +204,14 @@ class SettingsScreen(): self.textarea.add_event_cb(self.show_keyboard, lv.EVENT.CLICKED, None) self.textarea.add_event_cb(self.show_keyboard, lv.EVENT.FOCUSED, None) self.textarea.add_event_cb(self.hide_keyboard, lv.EVENT.DEFOCUSED, None) - + # Camera for text + self.cambutton = lv.button(self.msgbox) + #self.cambutton.align(lv.ALIGN.TOP_RIGHT,0,0) + self.cambuttonlabel = lv.label(self.cambutton) + self.cambuttonlabel.set_text("CAM") + self.cambuttonlabel.center() + self.cambutton.add_event_cb(self.cambutton_cb, lv.EVENT.CLICKED, None) + # Button container btn_cont = lv.obj(content) btn_cont.set_width(lv.pct(100)) diff --git a/internal_filesystem/lib/mpos/clipboard.py b/internal_filesystem/lib/mpos/clipboard.py new file mode 100644 index 00000000..b803e954 --- /dev/null +++ b/internal_filesystem/lib/mpos/clipboard.py @@ -0,0 +1,9 @@ +# simple clipboard + +copied = None + +def add(tocopy): + copied = tocopy + +def get(): + return copied