diff --git a/comrad/app/main.py b/comrad/app/main.py index 2be62a0..f4afc51 100644 --- a/comrad/app/main.py +++ b/comrad/app/main.py @@ -75,6 +75,8 @@ class MyLayout(MDBoxLayout): scr_mngr = ObjectProperty(None) post_id = ObjectProperty() + def log(self,*x,**y): return self.app.log(*x,**y) + @property def app(self): if not hasattr(self,'_app'): @@ -87,6 +89,21 @@ class MyLayout(MDBoxLayout): def change_screen(self, screen, *args): self.scr_mngr.current = screen + self.app.screen = screen + + # toolbar + toolbar=self.ids.toolbar + action_items = toolbar.ids.right_actions.children + for item in action_items: + # this the screen? + self.log('ITEM!!',item, item.icon) + if item.icon == SCREEN_TO_ICON[screen]: + item.text_color=rgb(*COLOR_ACCENT) + else: + item.text_color=rgb(*COLOR_ICON) + pass + + def change_screen_from_uri(self,uri,*args): self.app.uri=uri @@ -413,6 +430,7 @@ class MainApp(MDApp, Logger): login_expiry = 60 * 60 * 24 * 7 # once a week texture = ObjectProperty() uri='/do/login' + screen='login' def rgb(self,*_): return rgb(*_) @@ -461,7 +479,10 @@ class MainApp(MDApp, Logger): logo.pos_hint={'center_y':0.43} logo.text_color=root.rgb(*COLOR_LOGO) - self.root.change_screen_from_uri(self.uri if self.uri else DEFAULT_URI) + action_items = toolbar.ids.right_actions.children + + + # build the walker self.walker=MazeWalker(callbacks=self.callbacks) @@ -475,6 +496,15 @@ class MainApp(MDApp, Logger): from comrad.app.screens.map import MapWidget self.map = MapWidget() + self.change_screen(self.screen) + + for item in action_items: + if item.icon == SCREEN_TO_ICON['login']: + item.text_color=rgb(*COLOR_ACCENT) + else: + item.text_color=rgb(*COLOR_ICON) + + return self.root # def boot(self,username): diff --git a/comrad/app/root.kv b/comrad/app/root.kv index 4e9c2b4..4885ea9 100644 --- a/comrad/app/root.kv +++ b/comrad/app/root.kv @@ -18,6 +18,8 @@ #:import BG_IMG main.BG_IMG #:import COLOR_TEXT main.COLOR_TEXT #:import COLOR_CARD main.COLOR_CARD +#:import SCREEN_TO_ICON main.SCREEN_TO_ICON + ## CLASS DEFS @@ -236,7 +238,7 @@ MyLayout: theme_text_color:'Custom' background_hue: '500' # right_action_items: [['account-circle-outline', partial(root.change_screen, 'profile')],['card-text', partial(root.change_screen, 'feed')],['message-outline', partial(root.change_screen, 'messages')],['pencil-plus-outline', partial(root.change_screen, 'post')],['exit-run', partial(root.change_screen, 'login')]] - right_action_items: [['home-outline', partial(root.change_screen, 'feed')],['message-outline', partial(root.change_screen, 'messages')],['pencil-plus-outline', partial(root.change_screen, 'post')],['account-circle-outline', partial(root.change_screen, 'profile')],['refresh', root.refresh],['exit-run', partial(root.change_screen, 'login')]] + right_action_items: [[SCREEN_TO_ICON['feed'], partial(root.change_screen, 'feed')],[SCREEN_TO_ICON['messages'], partial(root.change_screen, 'messages')],[SCREEN_TO_ICON['post'], partial(root.change_screen, 'post')],[SCREEN_TO_ICON['profile'], partial(root.change_screen, 'profile')],[SCREEN_TO_ICON['refresh'], partial(root.change_sreen, 'refresh')],[SCREEN_TO_ICON['login'], partial(root.change_screen, 'login')]] #left_action_items: [[f"assets/fist2.png", partial(root.change_screen, 'feed')]] # ['bell-outline', partial(root.change_screen, 'login')] diff --git a/comrad/app/screens/base.py b/comrad/app/screens/base.py index 6e757f9..3cd671b 100644 --- a/comrad/app/screens/base.py +++ b/comrad/app/screens/base.py @@ -21,6 +21,9 @@ class BaseScreen(MDScreen): # if hasattr(self.app,'msg_dialog0') and self.app.msg_dialog0: self.root.remove_widget(self.app.msg_dialog0) # self.app.clear_widget_tree(MDDialog) # self.app.clear_widget_tree(MDDialog2) + # self.log('app',self.app) + # screen_name = self.app.root.scr_mngr.current + # self.log('screen_name',self.app.screen) pass @property diff --git a/comrad/app/screens/login/login.py b/comrad/app/screens/login/login.py index a414d46..db6b76f 100644 --- a/comrad/app/screens/login/login.py +++ b/comrad/app/screens/login/login.py @@ -52,6 +52,7 @@ class LoginScreen(BaseScreen): def on_pre_enter(self): #log(self.ids) #log('hello?') + super().on_pre_enter() self.dialog=None self.pass_added=False self.layout = LoginBoxLayout() diff --git a/comrad/constants.py b/comrad/constants.py index e13d57e..f8c8b9f 100644 --- a/comrad/constants.py +++ b/comrad/constants.py @@ -395,3 +395,13 @@ COLOR_ACTIVE = russiangreen ALL_COLORS = list({v for (k,v) in globals().items() if type(v)==tuple and len(v)==3}) + + +SCREEN_TO_ICON = { + 'feed':'home-outline', + 'messages':'message-outline', + 'post':'pencil-plus-outline', + 'profile':'account-circle-outline', + 'refresh':'refresh', + 'login':'exit-run' +} \ No newline at end of file