From 4a493fe3d38eb099564bbdda11c2b9b79c3dfef1 Mon Sep 17 00:00:00 2001 From: quadrismegistus Date: Sat, 22 Aug 2020 20:39:56 +0100 Subject: [PATCH] fixes --- app/misc.py | 10 +++++-- app/screens/base.py | 23 ++++++++++++++++ app/screens/feed/feed.py | 4 ++- app/screens/post/post.kv | 47 ++++++++++++++++++++++++++++----- app/screens/post/post.py | 57 +++++++++++++++++++++++++++++----------- 5 files changed, 116 insertions(+), 25 deletions(-) diff --git a/app/misc.py b/app/misc.py index 67ae959..b62ef8c 100644 --- a/app/misc.py +++ b/app/misc.py @@ -259,6 +259,7 @@ Builder.load_string(''' : readonly: False multiline: False + size_hint:1,None : @@ -324,13 +325,18 @@ class SelectableLabel(RecycleDataViewBehavior, Label): # raise Exception(str([is_selected, rv.data[index]])) newval=rv.data[index]['text'] try: - pcard=self.parent.parent.parent.parent.parent + pcard=self.parent.parent.parent.parent except AttributeError: return + pcard.recipient=newval[1:] + pcard.parent.recipient=newval[1:] + pcard.parent.close_author_option() + alabel=pcard.author_label alabel.text=f'@{pcard.author}\n[size=14sp]to @{pcard.recipient}[/size]' - pcard.author_section_layout.remove_widget(pcard.parent.to_whom_btn) + + #pcard.remove_widget(pcard.parent.to_whom_btn) # pcard.author_section_layout.remove_widget(pcard.author_section_layout.children[2]) # pcard.remove_widget(pcard.parent.to_whom_btn) # pcard.remove_widget(self.parent.parent.parent) diff --git a/app/screens/base.py b/app/screens/base.py index b726142..69a1dc7 100644 --- a/app/screens/base.py +++ b/app/screens/base.py @@ -26,6 +26,29 @@ class BaseScreen(MDScreen): def channel(self): return self.app.channel + def open_dialog(self,msg): + from screens.post.post import MessagePopup,ProgressPopup + if not hasattr(self,'dialog') or not self.dialog: + self.dialog = ProgressPopup() + self.dialog.ids.progress_label.text=msg + self.dialog.open() + + def open_msg_dialog(self,msg): + from screens.post.post import MessagePopup,ProgressPopup + if not hasattr(self,'msg_dialog') or not self.msg_dialog: + self.msg_dialog = MessagePopup() + self.msg_dialog.ids.msg_label.text=msg + self.msg_dialog.open() + + def close_dialog(self): + if hasattr(self,'dialog'): + self.dialog.dismiss() + + def close_msg_dialog(self): + if hasattr(self,'msg_dialog'): + self.msg_dialog.dismiss() + + class ProtectedScreen(BaseScreen): pass # def on_pre_enter(self): # if not self.channel in self.app.api.keys: diff --git a/app/screens/feed/feed.py b/app/screens/feed/feed.py index 04168bf..f3f6e5f 100644 --- a/app/screens/feed/feed.py +++ b/app/screens/feed/feed.py @@ -132,7 +132,9 @@ class PostCard(MDCard): self.author_label = author_label = PostAuthorLabel(text='@'+self.author) self.author_label.font_name='assets/overpass-mono-semibold.otf' if self.recipient: - self.author_label.text+='\n[size=14sp]to @'+self.recipient+'[/size]' + recip=self.recipient + recip='@'+recip if recip and recip[0].isalpha() else recip + self.author_label.text+='\n[size=14sp]to '+recip+'[/size]' self.author_label.markup=True self.author_label.font_size = '18sp' self.author_avatar = author_avatar = PostAuthorAvatar(source='assets/avatar.jpg') #self.img_src) diff --git a/app/screens/post/post.kv b/app/screens/post/post.kv index 0d23d0a..537170b 100644 --- a/app/screens/post/post.kv +++ b/app/screens/post/post.kv @@ -68,8 +68,8 @@ on_release: self.screen.post() #self.post_content_input.text, file_chooser_button.selection) theme_text_color: "Custom" text_color: rgb(*COLOR_TEXT) - md_bg_color: 0,0,0,1 - font_size: '28sp' + # md_bg_color: 0,0,0,1 + # font_size: '28sp' # fill:rgb(*COLOR_TEXT) font_name: 'assets/overpass-mono-regular.otf' @@ -89,14 +89,14 @@ type: "custom" size_hint: (None, None) size: ('200dp','200dp') - md_bg_color: 0,0,0,1 + # md_bg_color: 0,0,0,1 MDBoxLayout: id: popup_box_layout size_hint:(1,1) orientation: 'vertical' cols:1 - md_bg_color: 0,0,0,1 + md_bg_color: rgb(*COLOR_ACCENT) spacing:'0dp' padding:'0dp' # radius:[20,] @@ -134,7 +134,7 @@ type: "custom" size_hint: None,None size: ('300dp','300dp') - md_bg_color: 0,0,0,1 + # md_bg_color: 0,0,0,1 MDBoxLayout: id: msg_popup_box_layout @@ -259,4 +259,39 @@ # MDFlatButton: # text: "ALERT DIALOG" # pos_hint: {'center_x': .5, 'center_y': .5} -# on_release: app.show_simple_dialog() \ No newline at end of file +# on_release: app.show_simple_dialog() + + + + + + +: + type: "custom" + size_hint: None,None + size: ('300dp','300dp') + md_bg_color: 0,0,0,1 + + MDBoxLayout: + id: msg_popup_box_layout + size_hint:(1,1) + orientation: 'vertical' + cols:1 + md_bg_color: 0,0,0,1 + spacing:'0dp' + padding:'0dp' + pos_hint: {'center_x':0.5, 'center_y':0.5} + # radius:[20,] + # border_radius:20 + + MDLabel: + # size_hint:(None,None) + id: msg_label + text: '' + halign: 'center' + # valign: 'middle' + theme_text_color: 'Custom' + text_color: rgb(*COLOR_TEXT) + font_size: '18dp' + font_name: 'assets/overpass-mono-regular.otf' + pos_hint: {'center_x': .5, 'y': 0} diff --git a/app/screens/post/post.py b/app/screens/post/post.py index 4399eb1..f89f26f 100644 --- a/app/screens/post/post.py +++ b/app/screens/post/post.py @@ -84,10 +84,16 @@ class PostScreen(ProtectedScreen): post_id = ObjectProperty() def open_author_option(self): - self.to_whom_btn.height='100dp' - self.to_whom_btn.size_hint_y=None + import kivy + try: + self.post_card.add_widget(self.to_whom_btn,1) + self.to_whom_btn.height='100dp' + self.to_whom_btn.size_hint_y=None + except kivy.uix.widget.WidgetException: + return def close_author_option(self): + self.post_card.remove_widget(self.to_whom_btn) self.to_whom_btn.height='0dp' self.to_whom_btn.size_hint_y=None @@ -103,7 +109,7 @@ class PostScreen(ProtectedScreen): post_json = {'author':self.app.username, 'timestamp':time.time()} key=list(self.app.keys.keys())[0] - # post_json['to_name']=key + post_json['to_name']='...?' self.post_card = post = PostCard(post_json) self.post_card.add_widget(get_separator('15sp'),1) @@ -121,18 +127,27 @@ class PostScreen(ProtectedScreen): ) inp_towhom = self.to_whom_btn.ids.txt_input inp_towhom.size_hint=(None,None) - # inp_towhom.width = '100sp' + inp_towhom.width = '100sp' + inp_towhom.font_name='assets/font.otf' # inp_towhom.height = '75sp' inp_towhom.adaptive_height=True inp_towhom.md_bg_color=rgb(*COLOR_CARD) # self.post_card.author_section_layout.md_bg_color=1,0,0,1 self.to_whom_layo = MDBoxLayout() self.to_whom_layo.cols=1 - self.to_whom_layo.size_hint=(None,None) - # self.to_whom_layo.width='200sp' - # self.to_whom_layo.md_bg_color=1,1,0,1 + # self.to_whom_layo.size_hint=(None,None) + self.to_whom_layo.width='300sp' + self.to_whom_layo.height='2000sp' + self.to_whom_layo.md_bg_color=1,1,0,1 # self.post_card.author_section_layout.add_widget(MDLabel(text='-->'),1) - self.post_card.author_section_layout.add_widget(self.to_whom_btn,1) + # self.post_card.author_section_layout.add_widget(self.to_whom_btn) + + + # self.to_whom_layo.add_widget(self.to_whom_btn) + # self.tmp_msg = MDLabel(text='-->') + self.post_card.add_widget(self.to_whom_btn,1) + + self.to_whom_btn.ids.txt_input.text = '@' #self.to_whom_btn.adaptive_height = True self.to_whom_btn.ids.txt_input.word_list = ['@'+k for k in self.app.keys if k != self.app.username] @@ -141,7 +156,10 @@ class PostScreen(ProtectedScreen): #self.post_card.author_section_layout.add_widget(self.to_whom_btn,3) # close for now - self.close_author_option() + # self.close_author_option() + # self.post_card.remove_widget(self.to_whom_btn) + # self.to_whom_btn.height='0dp' + # self.to_whom_btn.size_hint_y=None # remove content, add text input post.scroller.remove_widget(post.post_content) @@ -164,11 +182,14 @@ class PostScreen(ProtectedScreen): self.button_layout.add_widget(self.upload_button) self.button_layout.add_widget(self.post_button) + + self.upload_button.font_size='12sp' + self.post_button.font_size='12sp' - self.post_button.md_bg_color=(0,0,0,1) - self.upload_button.md_bg_color=(0,0,0,1) - self.post_status.md_bg_color=(0,0,0,1) + self.post_button.md_bg_color=rgb(*COLOR_ACTIVE) + self.upload_button.md_bg_color=rgb(*COLOR_ACTIVE) + self.post_status.md_bg_color=rgb(*COLOR_CARD) self.add_widget(self.button_layout) # self.add_widget(self.post_status) @@ -264,11 +285,12 @@ class PostScreen(ProtectedScreen): self.open_msg_dialog(f'Text is currently {lencontent} words long, which is {lendiff} over the maximum text length of {maxlen} words.\n\n({lencontent}/{maxlen})') return - channels = [k[1:] for k,v in self.to_channels.items() if v] - if not channels: - self.log('no place was selected') + #channels = [k[1:] for k,v in self.to_channels.items() if v] + if not hasattr(self,'recipient') or not self.recipient or self.app.username==self.recipient: + self.log('no recipient was selected') # self.='No place was selected' return + channels = [self.recipient] # log('?????????????????'+self.media_uid) # if not hasattr(self,'img_id') and self.upload_button.selection: @@ -290,4 +312,7 @@ class PostScreen(ProtectedScreen): def get_random_id(): import uuid - return uuid.uuid4().hex \ No newline at end of file + return uuid.uuid4().hex + + +class MessagePopup(MDDialog): pass \ No newline at end of file