mirror of
https://github.com/liberatedsystems/openCom-Companion.git
synced 2024-11-26 23:30:36 +01:00
55 lines
1.7 KiB
Plaintext
55 lines
1.7 KiB
Plaintext
"""
|
||
The entry point to the application.
|
||
|
||
The application uses the MVC template. Adhering to the principles of clean
|
||
architecture means ensuring that your application is easy to test, maintain,
|
||
and modernize.
|
||
|
||
You can read more about this template at the links below:
|
||
|
||
https://github.com/HeaTTheatR/LoginAppMVC
|
||
https://en.wikipedia.org/wiki/Model–view–controller
|
||
"""
|
||
|
||
from typing import NoReturn
|
||
|
||
from kivy.uix.screenmanager import ScreenManager%s
|
||
|
||
from kivymd.app import MDApp
|
||
|
||
from View.screens import screens%s
|
||
%s
|
||
|
||
class %s(MDApp):%s
|
||
def __init__(self, **kwargs):
|
||
super().__init__(**kwargs)%s
|
||
self.load_all_kv_files(self.directory)
|
||
# This is the screen manager that will contain all the screens of your
|
||
# application.
|
||
self.manager_screens = ScreenManager()
|
||
%s
|
||
def build(self) -> ScreenManager:
|
||
self.generate_application_screens()
|
||
return self.manager_screens
|
||
|
||
def generate_application_screens(self) -> NoReturn:
|
||
"""
|
||
Creating and adding screens to the screen manager.
|
||
You should not change this cycle unnecessarily. He is self-sufficient.
|
||
|
||
If you need to add any screen, open the `View.screens.py` module and
|
||
see how new screens are added according to the given application
|
||
architecture.
|
||
"""
|
||
|
||
for i, name_screen in enumerate(screens.keys()):
|
||
model = screens[name_screen]["model"](%s)
|
||
controller = screens[name_screen]["controller"](model)
|
||
view = controller.get_view()
|
||
view.manager_screens = self.manager_screens
|
||
view.name = name_screen
|
||
self.manager_screens.add_widget(view)
|
||
%s%s
|
||
|
||
%s().run()
|