diff --git a/clapper_src/app.js b/clapper_src/app.js index 61bf48ee..d72711bd 100644 --- a/clapper_src/app.js +++ b/clapper_src/app.js @@ -4,8 +4,10 @@ const { Widget } = imports.clapper_src.widget; const Debug = imports.clapper_src.debug; const Menu = imports.clapper_src.menu; const Misc = imports.clapper_src.misc; +const Shared = imports.clapper_src.shared; let { debug } = Debug; +let { settings } = Shared; const APP_NAME = 'Clapper'; const APP_ID = 'com.github.rafostar.Clapper'; @@ -47,7 +49,7 @@ class ClapperApp extends Gtk.Application let clapperWidget = new Widget(); window.set_child(clapperWidget); - let size = clapperWidget.player.settings.get_string('window-size'); + let size = settings.get_string('window-size'); try { size = JSON.parse(size); } diff --git a/clapper_src/player.js b/clapper_src/player.js index 152971a1..79a8a379 100644 --- a/clapper_src/player.js +++ b/clapper_src/player.js @@ -2,8 +2,10 @@ const { Gdk, Gio, GLib, GObject, Gst, GstPlayer, Gtk } = imports.gi; const ByteArray = imports.byteArray; const { PlayerBase } = imports.clapper_src.playerBase; const Debug = imports.clapper_src.debug; +const Shared = imports.clapper_src.shared; let { debug } = Debug; +let { settings } = Shared; var Player = GObject.registerClass( class ClapperPlayer extends PlayerBase @@ -205,8 +207,8 @@ class ClapperPlayer extends PlayerBase let { controls } = this.widget.get_ancestor(Gtk.Grid); let max = controls.positionAdjustment.get_upper(); - let seekingValue = this.settings.get_int('seeking-value'); - let seekingUnit = this.settings.get_string('seeking-unit'); + let seekingValue = settings.get_int('seeking-value'); + let seekingUnit = settings.get_string('seeking-unit'); switch(seekingUnit) { case 'minute': @@ -351,9 +353,9 @@ class ClapperPlayer extends PlayerBase if(!this.doneStartup) { this.doneStartup = true; - if(this.settings.get_string('volume-initial') === 'custom') - this.set_volume(this.settings.get_int('volume-value') / 100); - if(this.settings.get_boolean('fullscreen-auto')) { + if(settings.get_string('volume-initial') === 'custom') + this.set_volume(settings.get_int('volume-value') / 100); + if(settings.get_boolean('fullscreen-auto')) { let root = player.widget.get_root(); let clapperWidget = root.get_child(); if(!clapperWidget.fullscreenMode) { @@ -617,7 +619,7 @@ class ClapperPlayer extends PlayerBase if(!clapperWidget.fullscreenMode && !clapperWidget.floatingMode) { let size = window.get_size(); if(size[0] > 0 && size[1] > 0) { - this.settings.set_string('window-size', JSON.stringify(size)); + settings.set_string('window-size', JSON.stringify(size)); debug(`saved window dimensions: ${size[0]}x${size[1]}`); } } diff --git a/clapper_src/playerBase.js b/clapper_src/playerBase.js index d2c97764..d94546d9 100644 --- a/clapper_src/playerBase.js +++ b/clapper_src/playerBase.js @@ -1,5 +1,6 @@ const { Gio, GLib, GObject, Gst, GstPlayer, Gtk } = imports.gi; const Debug = imports.clapper_src.debug; +const Shared = imports.clapper_src.shared; /* PlayFlags are not exported through GI */ Gst.PlayFlags = { @@ -19,6 +20,7 @@ Gst.PlayFlags = { }; let { debug } = Debug; +let { settings } = Shared; var PlayerBase = GObject.registerClass( class ClapperPlayerBase extends GstPlayer.Player @@ -62,17 +64,13 @@ class ClapperPlayerBase extends GstPlayer.Player this.widget.hexpand = true; this.widget.set_opacity(0); - this.settings = new Gio.Settings({ - schema_id: 'com.github.rafostar.Clapper' - }); - this.visualization_enabled = false; this.set_all_plugins_ranks(); this.set_initial_config(); this.set_and_bind_settings(); - this.settings.connect('changed', this._onSettingsKeyChanged.bind(this)); + settings.connect('changed', this._onSettingsKeyChanged.bind(this)); } set_and_bind_settings() @@ -82,7 +80,7 @@ class ClapperPlayerBase extends GstPlayer.Player ]; for(let key of settingsToSet) - this._onSettingsKeyChanged(this.settings, key); + this._onSettingsKeyChanged(settings, key); //let flag = Gio.SettingsBindFlags.GET; } @@ -124,13 +122,13 @@ class ClapperPlayerBase extends GstPlayer.Player /* Set empty plugin list if someone messed it externally */ try { - data = JSON.parse(this.settings.get_string('plugin-ranking')); + data = JSON.parse(settings.get_string('plugin-ranking')); if(!Array.isArray(data)) throw new Error('plugin ranking data is not an array!'); } catch(err) { debug(err); - this.settings.set_string('plugin-ranking', "[]"); + settings.set_string('plugin-ranking', "[]"); } for(let plugin of data) { diff --git a/clapper_src/prefs.js b/clapper_src/prefs.js index cba5348d..9701a4dc 100644 --- a/clapper_src/prefs.js +++ b/clapper_src/prefs.js @@ -1,5 +1,8 @@ const { GObject, Gtk, Pango } = imports.gi; const PrefsBase = imports.clapper_src.prefsBase; +const Shared = imports.clapper_src.shared; + +let { settings } = Shared; let GeneralPage = GObject.registerClass( class ClapperGeneralPage extends PrefsBase.Grid @@ -145,7 +148,7 @@ class ClapperGStreamerPage extends PrefsBase.Grid removeButton.connect('clicked', this._onRemoveButtonClicked.bind(this, listStore)); treeSelection.connect('changed', this._onTreeSelectionChanged.bind(this, removeButton)); - this.settingsChangedSignal = this.settings.connect( + this.settingsChangedSignal = settings.connect( 'changed::plugin-ranking', this.refreshListStore.bind(this, listStore) ); @@ -154,7 +157,7 @@ class ClapperGStreamerPage extends PrefsBase.Grid refreshListStore(listStore) { - let data = JSON.parse(this.settings.get_string('plugin-ranking')); + let data = JSON.parse(settings.get_string('plugin-ranking')); listStore.clear(); for(let plugin of data) { @@ -171,9 +174,9 @@ class ClapperGStreamerPage extends PrefsBase.Grid updatePlugin(index, prop, value) { - let data = JSON.parse(this.settings.get_string('plugin-ranking')); + let data = JSON.parse(settings.get_string('plugin-ranking')); data[index][prop] = value; - this.settings.set_string('plugin-ranking', JSON.stringify(data)); + settings.set_string('plugin-ranking', JSON.stringify(data)); } _onTreeSelectionChanged(removeButton, treeSelection) @@ -190,13 +193,13 @@ class ClapperGStreamerPage extends PrefsBase.Grid _onAddButtonClicked(listStore, button) { - let data = JSON.parse(this.settings.get_string('plugin-ranking')); + let data = JSON.parse(settings.get_string('plugin-ranking')); data.push({ apply: false, name: '', rank: 0, }); - this.settings.set_string('plugin-ranking', JSON.stringify(data)); + settings.set_string('plugin-ranking', JSON.stringify(data)); } _onRemoveButtonClicked(listStore, button) @@ -204,9 +207,9 @@ class ClapperGStreamerPage extends PrefsBase.Grid if(this.activeIndex < 0) return; - let data = JSON.parse(this.settings.get_string('plugin-ranking')); + let data = JSON.parse(settings.get_string('plugin-ranking')); data.splice(this.activeIndex, 1); - this.settings.set_string('plugin-ranking', JSON.stringify(data)); + settings.set_string('plugin-ranking', JSON.stringify(data)); } _onApplyCellEdited(cell, path) @@ -235,7 +238,7 @@ class ClapperGStreamerPage extends PrefsBase.Grid { super._onClose('gstreamer'); - this.settings.disconnect(this.settingsChangedSignal); + settings.disconnect(this.settingsChangedSignal); this.settingsChangedSignal = null; } }); diff --git a/clapper_src/prefsBase.js b/clapper_src/prefsBase.js index 5a8e67e8..6b0c8696 100644 --- a/clapper_src/prefsBase.js +++ b/clapper_src/prefsBase.js @@ -1,7 +1,9 @@ const { Gio, GObject, Gtk } = imports.gi; const Debug = imports.clapper_src.debug; +const Shared = imports.clapper_src.shared; let { debug } = Debug; +let { settings } = Shared; var Notebook = GObject.registerClass( class ClapperPrefsNotebook extends Gtk.Notebook @@ -68,11 +70,7 @@ class ClapperPrefsGrid extends Gtk.Grid column_spacing: 20, }); - this.settings = new Gio.Settings({ - schema_id: 'com.github.rafostar.Clapper' - }); this.flag = Gio.SettingsBindFlags.DEFAULT; - this.gridIndex = 0; this.widgetDefaults = { width_request: 160, @@ -159,7 +157,7 @@ class ClapperPrefsGrid extends Gtk.Grid for(let entry of entries) comboBox.append(entry[0], entry[1]); - this.settings.bind(setting, comboBox, 'active-id', this.flag); + settings.bind(setting, comboBox, 'active-id', this.flag); return comboBox; } @@ -169,7 +167,7 @@ class ClapperPrefsGrid extends Gtk.Grid let spinButton = new Gtk.SpinButton(this.widgetDefaults); spinButton.set_range(min, max); spinButton.set_increments(1, 2); - this.settings.bind(setting, spinButton, 'value', this.flag); + settings.bind(setting, spinButton, 'value', this.flag); return spinButton; } @@ -179,7 +177,7 @@ class ClapperPrefsGrid extends Gtk.Grid let checkButton = new Gtk.CheckButton({ label: text || null, }); - this.settings.bind(setting, checkButton, 'active', this.flag); + settings.bind(setting, checkButton, 'active', this.flag); return checkButton; } diff --git a/clapper_src/shared.js b/clapper_src/shared.js new file mode 100644 index 00000000..d436c086 --- /dev/null +++ b/clapper_src/shared.js @@ -0,0 +1,5 @@ +const { Gio } = imports.gi; + +var settings = new Gio.Settings({ + schema_id: 'com.github.rafostar.Clapper' +});