diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..1d0af2d --- /dev/null +++ b/requirements.txt @@ -0,0 +1,11 @@ +certifi==2022.12.7 +charset-normalizer==3.1.0 +docutils==0.19 +idna==3.4 +Kivy==2.1.0 +Kivy-Garden==0.1.5 +kivymd==1.1.1 +Pillow==9.4.0 +Pygments==2.14.0 +requests==2.28.2 +urllib3==1.26.15 diff --git a/src/main.py b/src/main.py index 7f5a552..f6fed4c 100644 --- a/src/main.py +++ b/src/main.py @@ -5,11 +5,16 @@ from kivy.uix.button import Label from kivy.uix.screenmanager import Screen from kivy.config import Config +from kivymd.app import MDApp +from kivymd.uix.button import MDFlatButton +from kivymd.uix.card.card import MDBoxLayout +from kivymd.uix.dialog import MDDialog + Config.set('graphics', 'resizable', '0') Config.set('graphics', 'height', '1000') Config.set('graphics', 'width', '620') -class ShoppingEntry(BoxLayout): +"""class ShoppingEntry(BoxLayout): text = StringProperty() is_checked = BooleanProperty() @@ -37,24 +42,61 @@ class MainScreen(Screen): # load existing shopping entries def on_enter(self): - print("ENTER_MAIN_SCREEN") - - entry = ShoppingEntry() - entry.text = "Test" - entry.is_checked = True - #self.ids["shop"].add_widget(entry) + pass class SettingsScreen(Screen): - pass + pass""" -class MainPage(BoxLayout): - pass +class AddDialog(MDBoxLayout): + def __init__(self, **kwargs): + super().__init__(**kwargs) -class ShoppingListApp(App): - def build(self): - self.title = 'Shopping List App' - return MainPage() + +class ShoppingListApp(MDApp): + add_dialog: MDDialog | None = None + + def build(self): + self.theme_cls.primary_palette = "Teal" + self.theme_cls.theme_style = "Light" + self.title = 'Shopping List App' + + def add_shopping_entry(self): + pass + + def open_add_popup(self): + if self.add_dialog: + return + + # SPRACHE + buttons = [ + MDFlatButton(text='Abbrechen', on_release=self.close_add_popup), + MDFlatButton(text='Bestätigen') + ] + # SPRACHE + self.add_dialog = MDDialog( + title='Eintrag hinzufügen', + type='custom', + content_cls=AddDialog(), + buttons=buttons + ) + + self.add_dialog.open() + + # *args ist noetig, da weitere Parameter mitgegeben werden, die aber nicht genutzt werden + def close_add_popup(self, *args): + if not self.add_dialog: + return + + self.add_dialog.dismiss() + self.add_dialog = None + + def open_new_popup(self): + pass + + def delete_entry(self): + pass + if __name__ == "__main__": app = ShoppingListApp() app.run() diff --git a/src/shoppinglist.kv b/src/shoppinglist.kv index e7d7ef5..453c355 100644 --- a/src/shoppinglist.kv +++ b/src/shoppinglist.kv @@ -79,8 +79,32 @@ app.root.ids.sm.current = 'main' app.root.ids.sm.transition.direction = 'right' -: - ScreenManager: - id: sm - MainScreen: - SettingsScreen +#: +# ScreenManager: +# id: sm +# MainScreen: +# SettingsScreen + +: + size_hint: 1, None + height: '40dp' + orientation: 'vertical' + scpaing: '5dp' + MDTextField: + id: shopping_entry_text + pos_hint: { 'center_y': 0.4 } + # SPRACHE + hint_text: 'Neuer Eintrag' + + +MDFloatLayout: + ScrollView: + size_hint: 0.9, 0.9 + pos_hint: { 'center_y': 0.5, 'center_x': 0.5 } + MDList: + id: shopping_list + MDFloatingActionButton: + icon: 'plus' + elevation_normal: 5 + pos_hint: { 'x': 0.9, 'y': 0.05 } + on_release: app.open_add_popup()