diff --git a/biogascontrollerapp.py b/biogascontrollerapp.py index a55244c..16de053 100644 --- a/biogascontrollerapp.py +++ b/biogascontrollerapp.py @@ -54,7 +54,7 @@ else: # Load kivy modules. Kivy is the UI framework used. See https://kivy.org # from kivy.core.window import Window, Config from kivy.uix.screenmanager import ScreenManager -from kivy.app import App +from kivymd.app import MDApp # Store the current app version @@ -77,7 +77,7 @@ from gui.main.main import MainScreen # │ Screen Manager │ # ╰────────────────────────────────────────────────╯ # Kivy uses a screen manager to manage pages in the application -class BiogasControllerApp(App): +class BiogasControllerApp(MDApp): def __init__(self, **kwargs): super().__init__(**kwargs) self.screen_manager = ScreenManager() @@ -88,6 +88,12 @@ class BiogasControllerApp(App): if config["Dev"]["use_test_library"] == "True": com = lib.test.com.Com() + self.theme_cls.theme_style = "Dark" + self.theme_cls.primary_palette = "Green" + self.theme_cls.accent_palette = "Lime" + self.theme_cls.theme_style_switch_animation = True + self.theme_cls.theme_style_switch_animation_duration = 0.8 + self.icon = "./BiogasControllerAppLogo.png" self.title = "BiogasControllerApp-" + app_version self.screen_manager.add_widget(HomeScreen(com, name="home")) diff --git a/gui/PopupManager.py b/gui/PopupManager.py deleted file mode 100644 index a2fbd42..0000000 --- a/gui/PopupManager.py +++ /dev/null @@ -1,3 +0,0 @@ -from gui.popups.popups import * - - diff --git a/gui/credits/credits.py b/gui/credits/credits.py index 4906c62..02d341e 100644 --- a/gui/credits/credits.py +++ b/gui/credits/credits.py @@ -1,8 +1,8 @@ -from kivy.uix.screenmanager import Screen +from kivymd.uix.screen import MDScreen from kivy.lang import Builder -class CreditsScreen(Screen): +class CreditsScreen(MDScreen): pass Builder.load_file('./gui/credits/credits.kv') diff --git a/gui/home/home.kv b/gui/home/home.kv index ed76854..8e113c3 100644 --- a/gui/home/home.kv +++ b/gui/home/home.kv @@ -1,40 +1,36 @@ : name: "home" - canvas.before: - Color: - rgba: (20,20,20,0.2) - Rectangle: - size: self.size - pos: self.pos GridLayout: cols:1 - Label: + MDLabel: text: "BiogasanlageControllerApp" font_size: 50 - color: (0, 113, 0, 1) - bold:True - italic:True + halign: 'center' + valign: 'center' + bold: True + italic: True + theme_text_color: 'Secondary' FloatLayout: GridLayout: cols: 2 size_hint: 0.8, 0.8 pos_hint: {"x": 0.1, "y": 0.1} - Button: + MDRaisedButton: + style: "outlined" + on_release: root.start() text: "Start" - background_color: (0, 0, 0, 0.6) font_size: 30 - on_release: - root.start() Button: text: "Quit" background_color: (0, 0, 0, 0.6) font_size: 30 on_release: root.quit() - Label: + MDLabel: text: "You are running version V3.0.1" font_size: 13 - pos_hint: {"y": -0.45, "x":0.05} + pos_hint: {"y": -0.45, "x":0} + halign: 'center' Button: text: "About" font_size: 13 diff --git a/gui/home/home.py b/gui/home/home.py index c412375..c1f1246 100644 --- a/gui/home/home.py +++ b/gui/home/home.py @@ -1,4 +1,5 @@ -from kivy.uix.screenmanager import Screen +from kivymd.app import MDApp +from kivymd.uix.screen import MDScreen from kivy.lang import Builder from gui.popups.popups import DualRowPopup, QuitPopup, TwoActionPopup from lib.com import ComSuperClass @@ -21,7 +22,7 @@ information = { # This is the launch screen, i.e. what you see when you start up the app -class HomeScreen(Screen): +class HomeScreen(MDScreen): def __init__(self, com: ComSuperClass, **kw): self._com = com; super().__init__(**kw) diff --git a/gui/main/main.py b/gui/main/main.py index 7fe1554..5d1f549 100644 --- a/gui/main/main.py +++ b/gui/main/main.py @@ -1,8 +1,7 @@ from ctypes import ArgumentError from time import time -from types import prepare_class from typing import List, override -from kivy.uix.screenmanager import Screen +from kivymd.uix.screen import MDScreen from kivy.lang import Builder from gui.popups.popups import SingleRowPopup, TwoActionPopup, empty_func from kivy.clock import Clock, ClockEvent @@ -96,7 +95,7 @@ class ReaderThread(threading.Thread): # │ Main App Screen │ # ╰────────────────────────────────────────────────╯ # This is the main screen, where you can read out data -class MainScreen(Screen): +class MainScreen(MDScreen): _event: ClockEvent # The constructor if this class takes a Com object to share one between all screens diff --git a/gui/program/program.kv b/gui/program/program.kv index b81ddbc..23e38fa 100644 --- a/gui/program/program.kv +++ b/gui/program/program.kv @@ -1,12 +1,7 @@ : name: "program" on_enter: self.config_loader = root.load_config() - canvas.before: - Color: - rgba: (10,10,10,0.1) - Rectangle: - size: self.size - pos: self.pos + md_bg_color: app.theme_cls.primary_color FloatLayout: Label: text: "Configuration" diff --git a/gui/program/program.py b/gui/program/program.py index ce074fb..2127619 100644 --- a/gui/program/program.py +++ b/gui/program/program.py @@ -1,5 +1,5 @@ from typing import List -from kivy.uix.screenmanager import Screen +from kivymd.uix.screen import MDScreen from kivy.lang import Builder from lib.decoder import Decoder from lib.instructions import Instructions @@ -13,7 +13,7 @@ from kivy.clock import Clock name_map = ["a", "b", "c", "t"] -class ProgramScreen(Screen): +class ProgramScreen(MDScreen): def __init__(self, com: ComSuperClass, **kw): self._com = com self._instructions = Instructions(com) diff --git a/requirements.txt b/requirements.txt index e87f278..5860717 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,3 @@ kivy[base] +kivymd pyserial