fixing widgets

decryption-error-fix
quadrismegistus 4 years ago
parent 109e58e173
commit 020021c5d0

Binary file not shown.

After

Width:  |  Height:  |  Size: 591 KiB

@ -128,11 +128,11 @@ class MessagePopup(MDDialog2):
pass
class MessagePopupCard(MDDialog2):
def __init__(self,*x,**y):
# y['color_bg']=rgb(*COLOR_CARD)
y['color_bg']=rgb(*COLOR_BG)
y['type']='custom'
y['overlay_color']=(0,0,0,0)
y['overlay_color']=rgb(*COLOR_BG)
self.color_bg=rgb(*COLOR_BG)
super().__init__(*x,**y)
# self.color_bg=rgb(*COLOR_CARD)
self.ok_to_continue=False
def on_dismiss(self):
@ -491,6 +491,41 @@ class MainApp(MDApp, Logger):
if not userd: return
self.username = userd.get('username','')
def clear_widget_tree(self,widget_type,widget=None):
if not widget: widget=self.root
for widg in widget.children:
if hasattr(widg,'children') and widg.children:
self.clear_widget_tree(widget_type,widget=widg)
self.log(widg,type(widg),widget_type,issubclass(type(widg),widget_type))
if issubclass(type(widg),widget_type):
self.remove_widget(widg)
@ -658,6 +693,7 @@ class MainApp(MDApp, Logger):
self.msg_dialog = MessagePopupCard()
# self.root.add_widget(self.msg_dialog)
# self.msg_dialog.ids.msg_label.text=msg
self.msg_dialog.card = postcard = PostCardPopup({
@ -687,8 +723,10 @@ class MainApp(MDApp, Logger):
await asyncio.sleep(0.1)
# logger.info(str(postcard), postcard.ok_to_continue,'??')
# self.msg_dialog.dismiss()
# self.msg_dialog.remove_widget(postcard)
# self.msg_dialog.card = postcard = self.msg_dialog = None
self.msg_dialog.remove_widget(postcard)
# self.root.remove_widget(self.msg_dialog)
# self.root.clear_widgets()
self.msg_dialog.card = postcard = self.msg_dialog = None
await asyncio.sleep(0.1)
return {'success':True, 'status':'Delivered popup message'}
@ -708,6 +746,7 @@ class MainApp(MDApp, Logger):
if hasattr(self,'msg_dialog'):
self.msg_dialog.remove_widget(self.msg_dialog.card)
self.msg_dialog.dismiss()
self.remove_widget(self.msg_dialog)

@ -107,14 +107,14 @@
type: "custom"
size_hint: None,None
size: ('300dp','300dp')
# md_bg_color: rgb(*COLOR_CARD)
md_bg_color: rgb(*COLOR_BG)
MDBoxLayout:
id: msg_popup_box_layout
size_hint:(1,1)
orientation: 'vertical'
cols:1
md_bg_color: rgb(*COLOR_CARD)
md_bg_color: rgb(*COLOR_BG)
spacing:'0dp'
padding:'0dp'
pos_hint: {'center_x':0.5, 'center_y':0.5}
@ -123,7 +123,7 @@
border_radius:20
canvas:
Color:
rgba: rgb(*COLOR_CARD_BORDER,a=0.5)
rgba: rgb(*COLOR_BG,a=1)
Line:
width: 1
rounded_rectangle: (self.x, self.y, self.width, self.height, 20, 20, 20, 20)

@ -100,8 +100,15 @@ Builder.load_string(
origin: self.center
x: root._scale_x
y: root._scale_y
Color:
rgba: root.color_bg #root.theme_cls.bg_dark
canvas:
Color:
rgba: root.color_bg #root.theme_cls.bg_dark
canvas.after:
PopMatrix
Color:
rgba: root.color_bg #root.theme_cls.bg_dark
<MDDialog2>

@ -208,7 +208,7 @@ class PostCard(MDCard):
#log('img_src ' + str(bool(self.img_src)))
if self.img_src: self.add_widget(image_layout)
def estimate_height(minlen=100,maxlen=300):
def estimate_height(minlen=100,maxlen=600):
num_chars = len(self.content)
# num_lines = num_chars
height = num_chars*1.1

@ -256,6 +256,9 @@ class LoginScreen(BaseScreen):
await logfunc(f'Welcome, Komrade @{name}. To help us communicate safely, I have cut for you a matching pair of encryption keys.',pause=True,clear=True,komrade_name='Keymaker')
self.app.clear_widget_tree(MDDialog)
self.app.clear_widget_tree(MDDialog2)
# ## 2) Make pub public/private keys
from komrade.backend.keymaker import KomradeAsymmetricKey
from komrade.cli.artcode import ART_KEY_PAIR
@ -310,8 +313,7 @@ class LoginScreen(BaseScreen):
kommie._keychain['privkey_encr']=privkey_encr_obj
self.log('My keychain now looks like v2:',dict_format(kommie.keychain()))
await logfunc(f'With this scrambled password we can encrypt your super-sensitive private key, from this:\n{privkey.discreet}',pause=True,clear=False)
await logfunc(f'To this:\n{privkey_encr_obj.discreet}',pause=True,clear=False)
await logfunc(f'With this scrambled password we can encrypt your super-sensitive private key, from this:\n{privkey.discreet}to this:\n{privkey_encr_obj.discreet}',pause=True,clear=False)
# ### PUBLIC KEY
await logfunc('You must also register your username and public key with Komrade @Operator on the remote server',pause=False,clear=False)
@ -352,10 +354,9 @@ class LoginScreen(BaseScreen):
sec_login = resp_msg_d.get('secret_login')
# stop
await logfunc(f'''Saving keys to device:''',pause=True)
await logfunc(f'''(1) {pubkey}''',pause=True,use_prefix=False)
await logfunc(f'''(2) {privkey_encr_obj}''',pause=True,use_prefix=False)
await logfunc(f'''(3) [Shared Login Secret with @Operator]\n({make_key_discreet(sec_login)})''',pause=True,use_prefix=False)
# await logfunc(f'''Saving keys to device:\n(1) {pubkey}\n(2) {privkey_encr_obj}\n(3) [Shared Login Secret with @Operator]\n({make_key_discreet(sec_login)}''',pause=True)
# await logfunc(f'''Saving keys to device''',pause=True)
# print()
kommie.crypt_keys.set(name, pubkey_b, prefix='/pubkey/')
kommie.crypt_keys.set(uri_id, name, prefix='/name/')
@ -369,11 +370,15 @@ class LoginScreen(BaseScreen):
# save qr too:
_fnfn=kommie.save_uri_as_qrcode(uri_id)
await logfunc(f'Also saving public key as QR code to: {_fnfn}.',pause=True,clear=False,use_prefix=False)
await logfunc(f'Saving public key, encrypted private key, and login secret to hardware-only database. Also saving public key as QR code to: {_fnfn}.',pause=True,clear=False,use_prefix=False)
# done!
await logfunc(f'Congratulations. Welcome, {kommie}.',pause=True,clear=True)
# remove all dialogs!!!!!!!!
self.app.clear_widget_tree(MDDialog)
self.app.clear_widget_tree(MDDialog2)
# last minute: get posts
if 'res_posts' in resp_msg_d and resp_msg_d['res_posts'].get('success'):
id2post=resp_msg_d.get('res_posts').get('posts',{})

@ -280,7 +280,7 @@ class TheOperator(Operator):
'pubkey':pubkey_b,
'secret_login':shared_secret,
'name':name,
'status':f'Name @{name} was successfully registered.\n\nIt has been permanently linked to the following public key:\n\n{uri_id.decode()}',
'status':f'Name @{name} was successfully registered.\nIt has been permanently linked to the following public key:\n{uri_id.decode()}',
'res_posts':self.get_posts(msg_obj)
}
# res_safe = {

Loading…
Cancel
Save