X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=music_sampler%2Fapp.py;h=3fd6f510c2236ae490c1b116aadb53a44f6d6972;hb=HEAD;hp=cce396972172268307e49a2a14e61665c79b9e22;hpb=60aa2bed939858f9aec4252071c8efd99baac7e3;p=perso%2FImmae%2FProjets%2FPython%2FMusicSampler.git diff --git a/music_sampler/app.py b/music_sampler/app.py index cce3969..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() @@ -6,16 +6,20 @@ import kivy kivy.require("1.9.1") from kivy.app import App from kivy.uix.floatlayout import FloatLayout -from kivy.uix.stacklayout import StackLayout 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 -from .key import Key -from .mapping import Mapping +dump_config() register_fonts() + +from .helpers import Config +from .key import Key +from .mapping import Mapping + from .app_blocks.actionlist import * from .app_blocks.playlist import * @@ -36,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) @@ -46,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()