src: add save/load data
This commit is contained in:
parent
acf8560f11
commit
243910c5c0
41
src/main.py
41
src/main.py
|
@ -65,18 +65,7 @@ class BavarderApplication(Adw.Application):
|
||||||
self.enabled_providers = sorted(set(self.settings.get_strv("enabled-providers")))
|
self.enabled_providers = sorted(set(self.settings.get_strv("enabled-providers")))
|
||||||
self.latest_provider = self.settings.get_string("latest-provider")
|
self.latest_provider = self.settings.get_string("latest-provider")
|
||||||
|
|
||||||
# GStreamer playbin object and related setup
|
def quitting(self, *args, **kwargs):
|
||||||
# Gst.init(None)
|
|
||||||
# self.player = Gst.ElementFactory.make("playbin", "player")
|
|
||||||
# self.pipeline = Gst.Pipeline()
|
|
||||||
# bus = self.player.get_bus()
|
|
||||||
# bus.add_signal_watch()
|
|
||||||
# bus.connect('message', self.on_gst_message)
|
|
||||||
# self.player_event = (
|
|
||||||
# threading.Event()
|
|
||||||
# ) # An event for letting us know when Gst is done playing
|
|
||||||
|
|
||||||
def quitting(self, _):
|
|
||||||
"""Called before closing main window."""
|
"""Called before closing main window."""
|
||||||
self.settings.set_strv("enabled-providers", list(self.enabled_providers))
|
self.settings.set_strv("enabled-providers", list(self.enabled_providers))
|
||||||
self.settings.set_string("latest-provider", self.get_provider().slug)
|
self.settings.set_string("latest-provider", self.get_provider().slug)
|
||||||
|
@ -93,7 +82,7 @@ class BavarderApplication(Adw.Application):
|
||||||
def save_providers(self):
|
def save_providers(self):
|
||||||
r = {}
|
r = {}
|
||||||
for k, p in self.providers.items():
|
for k, p in self.providers.items():
|
||||||
r[str(k)] = json.dumps(p.save())
|
r[p.slug] = json.dumps(p.save())
|
||||||
print(r)
|
print(r)
|
||||||
data = GLib.Variant(
|
data = GLib.Variant(
|
||||||
"a{ss}",
|
"a{ss}",
|
||||||
|
@ -130,18 +119,14 @@ class BavarderApplication(Adw.Application):
|
||||||
for provider, i in zip(
|
for provider, i in zip(
|
||||||
self.enabled_providers, range(len(self.enabled_providers))
|
self.enabled_providers, range(len(self.enabled_providers))
|
||||||
):
|
):
|
||||||
try:
|
print("Loading provider", provider)
|
||||||
print("Loading provider", provider)
|
self.provider_selector_model.append(PROVIDERS[provider].name)
|
||||||
self.provider_selector_model.append(PROVIDERS[provider].name)
|
|
||||||
|
|
||||||
self.providers[i] = PROVIDERS[provider](
|
self.providers[i] = PROVIDERS[provider](
|
||||||
self.win, self, self.providers_data[i]
|
self.win, self
|
||||||
)
|
)
|
||||||
except KeyError:
|
|
||||||
print("Provider", provider, " -> KeyError, skipping...")
|
self.load()
|
||||||
self.providers[i] = PROVIDERS[provider](
|
|
||||||
self.win, self, None
|
|
||||||
)
|
|
||||||
|
|
||||||
self.win.provider_selector.set_model(self.provider_selector_model)
|
self.win.provider_selector.set_model(self.provider_selector_model)
|
||||||
self.win.provider_selector.connect("notify", self.on_provider_selector_notify)
|
self.win.provider_selector.connect("notify", self.on_provider_selector_notify)
|
||||||
|
@ -155,6 +140,14 @@ class BavarderApplication(Adw.Application):
|
||||||
|
|
||||||
self.win.prompt_text_view.grab_focus()
|
self.win.prompt_text_view.grab_focus()
|
||||||
|
|
||||||
|
def load(self):
|
||||||
|
for p in self.providers.values():
|
||||||
|
print(self.providers_data)
|
||||||
|
try:
|
||||||
|
p.load(data=json.loads(self.providers_data[p.slug]))
|
||||||
|
except KeyError: # provider not in data
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
def on_provider_selector_notify(self, _unused, pspec):
|
def on_provider_selector_notify(self, _unused, pspec):
|
||||||
self.win.banner.set_revealed(False)
|
self.win.banner.set_revealed(False)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user