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/app/screens/base.py

57 lines
1.5 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
import asyncio
### Layout
### Base screens
class BaseScreen(MDScreen):
@property
def root(self):
return self.app.root
@property
def app(self):
return App.get_running_app()
def log(self,*x):
return self.app.log(*x)
@property
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:
# self.root.change_screen('login')
# return