mirror of
https://github.com/OMGeeky/Kivy-Shopping-List.git
synced 2026-01-09 21:19:17 +01:00
95 lines
2.7 KiB
Python
95 lines
2.7 KiB
Python
from os import name
|
|
from kivy.app import App
|
|
from kivy.properties import ListProperty, StringProperty, BooleanProperty, ObjectProperty
|
|
from kivy.uix.boxlayout import BoxLayout
|
|
from kivy.uix.button import Label
|
|
from kivy.uix.screenmanager import Screen, ScreenManager
|
|
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
|
|
from kivymd.uix.list import OneLineAvatarIconListItem
|
|
|
|
Config.set('graphics', 'resizable', '0')
|
|
Config.set('graphics', 'height', '1000')
|
|
Config.set('graphics', 'width', '620')
|
|
|
|
class ShoppingEntry(OneLineAvatarIconListItem):
|
|
def __init__(self, text, **kwargs):
|
|
super().__init__(**kwargs)
|
|
|
|
self.text = text
|
|
self.is_checked = False
|
|
|
|
def delete(self, shopping_entry):
|
|
self.parent.remove_widget(shopping_entry)
|
|
|
|
class AddDialog(MDBoxLayout):
|
|
def __init__(self, **kwargs):
|
|
super().__init__(**kwargs)
|
|
|
|
class ShoppingEntryScreen(Screen):
|
|
add_dialog: MDDialog | None = None
|
|
|
|
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', on_release=lambda args: self.add_shopping_entry("Text"))
|
|
]
|
|
# 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 add_shopping_entry(self, text):
|
|
self.ids['shopping_list'].add_widget(ShoppingEntry(text=text))
|
|
self.close_add_popup()
|
|
|
|
def delete_entry(self):
|
|
pass
|
|
|
|
def navigate_to_settings(self):
|
|
self.manager.transition.direction = 'left'
|
|
self.manager.current = 'settings'
|
|
|
|
class SettingsScreen(Screen):
|
|
def navigate_to_shopping_list(self):
|
|
self.manager.transition.direction = 'right'
|
|
self.manager.current = 'shopping'
|
|
|
|
class ShoppingListApp(MDApp):
|
|
def build(self):
|
|
self.theme_cls.primary_palette = "Teal"
|
|
self.theme_cls.theme_style = "Light"
|
|
self.title = 'Shopping List App'
|
|
|
|
sm = ScreenManager()
|
|
sm.add_widget(ShoppingEntryScreen(name='shopping'))
|
|
sm.add_widget(SettingsScreen(name='settings'))
|
|
|
|
return sm
|
|
|
|
if __name__ == "__main__":
|
|
app = ShoppingListApp()
|
|
app.run()
|