You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Comrad/comrad/app/screens/base.py

56 lines
1.4 KiB
Python

from kivymd.uix.screen import MDScreen
from kivy.properties import ObjectProperty
from kivymd.uix.boxlayout import MDBoxLayout
from kivymd.uix.label import MDLabel
from kivy.app import App
4 years ago
import asyncio
4 years ago
from kivymd.uix.dialog import MDDialog
from comrad.app.screens.dialog import MDDialog2
### Layout
### Base screens
class BaseScreen(MDScreen):
4 years ago
def on_pre_enter(self):
4 years ago
# self.clear_widgets()
4 years ago
# if hasattr(self.app,'msg_dialog') and self.app.msg_dialog:
# self.root.remove_widget(self.app.msg_dialog)
# 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)
4 years ago
self.app.clear_widget_tree(MDDialog2)
pass
4 years ago
@property
def root(self):
return self.app.root
@property
def app(self):
return App.get_running_app()
4 years ago
def log(self,*x,**y):
return self.app.log(*x)
4 years ago
@property
def channel(self):
return self.app.channel
def stat(self,*x,**y): return self.app.stat(*x,**y)
4 years ago
class ProtectedScreen(BaseScreen):
def on_pre_enter(self):
4 years ago
super().on_pre_enter()
if not hasattr(self.app,'is_logged_in') or not self.app.is_logged_in or not hasattr(self.app,'comrad') or not self.app.comrad:
self.root.change_screen('login')
self.log('changing screen???')
return None
return True