X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=music_sampler%2Fapp.py;h=3fd6f510c2236ae490c1b116aadb53a44f6d6972;hb=b3951077630d9f8188fe15fca899f75be41ff4fe;hp=08a8891d0a9f88601ffcfc1fac6689f6f92053a1;hpb=dd25f8f05f091ba876b784e3fd4ae6df309bd4a1;p=perso%2FImmae%2FProjets%2FPython%2FMusicSampler.git diff --git a/music_sampler/app.py b/music_sampler/app.py index 08a8891..3fd6f51 100644 --- a/music_sampler/app.py +++ b/music_sampler/app.py @@ -1,4 +1,4 @@ -from .helpers import parse_args, register_fonts, path +from .helpers import parse_args, dump_config, register_fonts, path parse_args() @@ -7,13 +7,16 @@ kivy.require("1.9.1") from kivy.app import App from kivy.uix.floatlayout import FloatLayout from kivy.uix.relativelayout import RelativeLayout +from kivy.uix.label import Label from kivy.properties import ListProperty, StringProperty from kivy.core.window import Window from kivy.lang import Builder +dump_config() register_fonts() +from .helpers import Config from .key import Key from .mapping import Mapping @@ -37,9 +40,27 @@ class KeyList(RelativeLayout): if len(self.keylist) > 2: self.third_key = self.keylist[2] -class Screen(FloatLayout): +class UnfocusedOverlay(Label): pass +class Screen(FloatLayout): + def __init__(self, **kwargs): + super(Screen, self).__init__(**kwargs) + self.unfocused_widget = UnfocusedOverlay() + Window.bind(focus=self.focus_changed) + Window.on_request_close = self.on_request_close + + def focus_changed(self, instance, focus): + if not Config.focus_warning: + return + if not focus: + self.add_widget(self.unfocused_widget) + else: + self.remove_widget(self.unfocused_widget) + + def on_request_close(self, *args, **kwargs): + self.ids["Mapping"].leave_application() + class MusicSamplerApp(App): def build(self): Window.size = (913, 563) @@ -47,5 +68,6 @@ class MusicSamplerApp(App): return Screen() def main(): - Builder.load_file(path() + "/music_sampler.kv") + with open(path() + "/music_sampler.kv", encoding='utf8') as f: + Builder.load_string(f.read()) MusicSamplerApp().run()