[gnome-music/wip/jfelder/application-settings: 1/3] application: Expose settings as an application property
- From: Jean Felder <jfelder src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-music/wip/jfelder/application-settings: 1/3] application: Expose settings as an application property
- Date: Fri, 12 Apr 2019 14:32:22 +0000 (UTC)
commit 501c196ffe42a5b3c2859c08b4d74c82ea8ef9a5
Author: Jean Felder <jfelder src gnome org>
Date: Thu Apr 11 08:31:30 2019 +0200
application: Expose settings as an application property
This will allow to instantiate the settings only once.
gnomemusic/application.py | 11 +++++++++++
gnomemusic/gstplayer.py | 2 +-
gnomemusic/inhibitsuspend.py | 4 ++--
gnomemusic/window.py | 2 +-
4 files changed, 15 insertions(+), 4 deletions(-)
---
diff --git a/gnomemusic/application.py b/gnomemusic/application.py
index 9d78fb7e..6a92b4ed 100644
--- a/gnomemusic/application.py
+++ b/gnomemusic/application.py
@@ -60,6 +60,7 @@ class Application(Gtk.Application):
self._init_style()
self._window = None
+ self._settings = Gio.Settings.new('org.gnome.Music')
self._player = Player(self)
def _init_style(self):
@@ -80,6 +81,16 @@ class Application(Gtk.Application):
"""
return self._player
+ @GObject.Property(
+ type=Gio.Settings, flags=GObject.ParamFlags.READABLE)
+ def settings(self):
+ """Get application-wide settings.
+
+ :returns: settings
+ :rtype: Gio.settings
+ """
+ return self._settings
+
@log
def _build_app_menu(self):
action_entries = [
diff --git a/gnomemusic/gstplayer.py b/gnomemusic/gstplayer.py
index 4c259eb6..7faacff0 100644
--- a/gnomemusic/gstplayer.py
+++ b/gnomemusic/gstplayer.py
@@ -74,7 +74,7 @@ class GstPlayer(GObject.GObject):
self._duration = -1.
self._missing_plugin_messages = []
- self._settings = Gio.Settings.new('org.gnome.Music')
+ self._settings = application.props.settings
self._player = Gst.ElementFactory.make('playbin3', 'player')
self._bus = self._player.get_bus()
diff --git a/gnomemusic/inhibitsuspend.py b/gnomemusic/inhibitsuspend.py
index 7c162979..afbbc5b4 100644
--- a/gnomemusic/inhibitsuspend.py
+++ b/gnomemusic/inhibitsuspend.py
@@ -24,7 +24,7 @@
import logging
from gettext import gettext as _
-from gi.repository import Gtk, Gio, GObject
+from gi.repository import Gtk, GObject
from gnomemusic import log
from gnomemusic.gstplayer import Playback
@@ -57,7 +57,7 @@ class InhibitSuspend(GObject.GObject):
self._player.connect('notify::state', self._on_player_state_changed)
- self._settings = Gio.Settings.new('org.gnome.Music')
+ self._settings = self._application.props.settings
self._should_inhibit = self._settings.get_boolean('inhibit-suspend')
self._settings.connect(
'changed::inhibit-suspend', self._on_inhibit_suspend_changed)
diff --git a/gnomemusic/window.py b/gnomemusic/window.py
index 02f13cb3..0027afab 100644
--- a/gnomemusic/window.py
+++ b/gnomemusic/window.py
@@ -72,7 +72,7 @@ class Window(Gtk.ApplicationWindow):
def __init__(self, app):
super().__init__(application=app, title=_("Music"))
- self._settings = Gio.Settings.new('org.gnome.Music')
+ self._settings = app.props.settings
self.add_action(self._settings.create_action('repeat'))
select_all = Gio.SimpleAction.new('select_all', None)
select_all.connect('activate', self._select_all)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]