minor, rework settings
This commit is contained in:
parent
0fe72b7746
commit
01701538bb
2
area.js
2
area.js
|
|
@ -36,7 +36,6 @@ const Main = imports.ui.main;
|
|||
const Screenshot = imports.ui.screenshot;
|
||||
|
||||
const Me = ExtensionUtils.getCurrentExtension();
|
||||
const Convenience = ExtensionUtils.getSettings ? ExtensionUtils : Me.imports.convenience;
|
||||
const Extension = Me.imports.extension;
|
||||
const Elements = Me.imports.elements;
|
||||
const Files = Me.imports.files;
|
||||
|
|
@ -73,7 +72,6 @@ var DrawingArea = new Lang.Class({
|
|||
this.connect('destroy', this._onDestroy.bind(this));
|
||||
this.reactiveHandler = this.connect('notify::reactive', this._onReactiveChanged.bind(this));
|
||||
|
||||
this.settings = Convenience.getSettings();
|
||||
this.monitor = monitor;
|
||||
this.helper = helper;
|
||||
|
||||
|
|
|
|||
49
extension.js
49
extension.js
|
|
@ -28,11 +28,11 @@ const Shell = imports.gi.Shell;
|
|||
const St = imports.gi.St;
|
||||
|
||||
const Config = imports.misc.config;
|
||||
const ExtensionUtils = imports.misc.extensionUtils;
|
||||
const Main = imports.ui.main;
|
||||
const OsdWindow = imports.ui.osdWindow;
|
||||
const PanelMenu = imports.ui.panelMenu;
|
||||
|
||||
const ExtensionUtils = imports.misc.extensionUtils;
|
||||
const Me = ExtensionUtils.getCurrentExtension();
|
||||
const Convenience = ExtensionUtils.getSettings && ExtensionUtils.initTranslations ? ExtensionUtils : Me.imports.convenience;
|
||||
const Area = Me.imports.area;
|
||||
|
|
@ -55,12 +55,16 @@ function init() {
|
|||
}
|
||||
|
||||
function enable() {
|
||||
Me.settings = Convenience.getSettings();
|
||||
Me.internalShortcutSettings = Convenience.getSettings(Me.metadata['settings-schema'] + '.internal-shortcuts');
|
||||
manager = new AreaManager();
|
||||
}
|
||||
|
||||
function disable() {
|
||||
manager.disable();
|
||||
manager = null;
|
||||
delete Me.settings;
|
||||
delete Me.internalShortcutSettings;
|
||||
}
|
||||
|
||||
// AreaManager assigns one DrawingArea per monitor (updateAreas()),
|
||||
|
|
@ -70,26 +74,25 @@ var AreaManager = new Lang.Class({
|
|||
Name: 'DrawOnYourScreenAreaManager',
|
||||
|
||||
_init: function() {
|
||||
this.settings = Convenience.getSettings();
|
||||
this.areas = [];
|
||||
this.activeArea = null;
|
||||
this.enterGicon = new Gio.ThemedIcon({ name: 'applications-graphics-symbolic' });
|
||||
this.leaveGicon = new Gio.ThemedIcon({ name: 'application-exit-symbolic' });
|
||||
|
||||
Main.wm.addKeybinding('toggle-drawing',
|
||||
this.settings,
|
||||
Me.settings,
|
||||
Meta.KeyBindingFlags.NONE,
|
||||
Shell.ActionMode.ALL,
|
||||
this.toggleDrawing.bind(this));
|
||||
|
||||
Main.wm.addKeybinding('toggle-modal',
|
||||
this.settings,
|
||||
Me.settings,
|
||||
Meta.KeyBindingFlags.NONE,
|
||||
Shell.ActionMode.ALL,
|
||||
this.toggleModal.bind(this));
|
||||
|
||||
Main.wm.addKeybinding('erase-drawing',
|
||||
this.settings,
|
||||
Me.settings,
|
||||
Meta.KeyBindingFlags.NONE,
|
||||
Shell.ActionMode.ALL,
|
||||
this.eraseDrawing.bind(this));
|
||||
|
|
@ -98,10 +101,10 @@ var AreaManager = new Lang.Class({
|
|||
this.monitorChangedHandler = Main.layoutManager.connect('monitors-changed', this.updateAreas.bind(this));
|
||||
|
||||
this.updateIndicator();
|
||||
this.indicatorSettingHandler = this.settings.connect('changed::indicator-disabled', this.updateIndicator.bind(this));
|
||||
this.indicatorSettingHandler = Me.settings.connect('changed::indicator-disabled', this.updateIndicator.bind(this));
|
||||
|
||||
this.desktopSettingHandler = this.settings.connect('changed::drawing-on-desktop', this.onDesktopSettingChanged.bind(this));
|
||||
this.persistentSettingHandler = this.settings.connect('changed::persistent-drawing', this.onPersistentSettingChanged.bind(this));
|
||||
this.desktopSettingHandler = Me.settings.connect('changed::drawing-on-desktop', this.onDesktopSettingChanged.bind(this));
|
||||
this.persistentSettingHandler = Me.settings.connect('changed::persistent-drawing', this.onPersistentSettingChanged.bind(this));
|
||||
|
||||
this.userStyleFile = Gio.File.new_for_path(GLib.build_filenamev([GLib.get_user_data_dir(), Me.metadata['data-dir'], 'user.css']));
|
||||
|
||||
|
|
@ -125,14 +128,14 @@ var AreaManager = new Lang.Class({
|
|||
},
|
||||
|
||||
onDesktopSettingChanged: function() {
|
||||
if (this.settings.get_boolean("drawing-on-desktop"))
|
||||
if (Me.settings.get_boolean("drawing-on-desktop"))
|
||||
this.areas.forEach(area => area.get_parent().show());
|
||||
else
|
||||
this.areas.forEach(area => area.get_parent().hide());
|
||||
},
|
||||
|
||||
onPersistentSettingChanged: function() {
|
||||
if (this.settings.get_boolean('persistent-drawing'))
|
||||
if (Me.settings.get_boolean('persistent-drawing'))
|
||||
this.areas[Main.layoutManager.primaryIndex].syncPersistent();
|
||||
},
|
||||
|
||||
|
|
@ -141,7 +144,7 @@ var AreaManager = new Lang.Class({
|
|||
this.indicator.disable();
|
||||
this.indicator = null;
|
||||
}
|
||||
if (!this.settings.get_boolean('indicator-disabled'))
|
||||
if (!Me.settings.get_boolean('indicator-disabled'))
|
||||
this.indicator = new DrawingIndicator();
|
||||
},
|
||||
|
||||
|
|
@ -156,13 +159,13 @@ var AreaManager = new Lang.Class({
|
|||
let monitor = this.monitors[i];
|
||||
let container = new St.Widget({ name: 'drawOnYourSreenContainer' + i });
|
||||
let helper = new Helper.DrawingHelper({ name: 'drawOnYourSreenHelper' + i }, monitor);
|
||||
let loadPersistent = i == Main.layoutManager.primaryIndex && this.settings.get_boolean('persistent-drawing');
|
||||
let loadPersistent = i == Main.layoutManager.primaryIndex && Me.settings.get_boolean('persistent-drawing');
|
||||
let area = new Area.DrawingArea({ name: 'drawOnYourSreenArea' + i }, monitor, helper, loadPersistent);
|
||||
container.add_child(area);
|
||||
container.add_child(helper);
|
||||
|
||||
Main.layoutManager._backgroundGroup.insert_child_above(container, Main.layoutManager._bgManagers[i].backgroundActor);
|
||||
if (!this.settings.get_boolean("drawing-on-desktop"))
|
||||
if (!Me.settings.get_boolean("drawing-on-desktop"))
|
||||
container.hide();
|
||||
|
||||
container.set_position(monitor.x, monitor.y);
|
||||
|
|
@ -228,7 +231,7 @@ var AreaManager = new Lang.Class({
|
|||
|
||||
for (let key in this.internalKeybindings1) {
|
||||
Main.wm.addKeybinding(key,
|
||||
this.settings,
|
||||
Me.internalShortcutSettings,
|
||||
Meta.KeyBindingFlags.NONE,
|
||||
DRAWING_ACTION_MODE,
|
||||
this.internalKeybindings1[key]);
|
||||
|
|
@ -236,7 +239,7 @@ var AreaManager = new Lang.Class({
|
|||
|
||||
for (let key in this.internalKeybindings2) {
|
||||
Main.wm.addKeybinding(key,
|
||||
this.settings,
|
||||
Me.internalShortcutSettings,
|
||||
Meta.KeyBindingFlags.NONE,
|
||||
DRAWING_ACTION_MODE | WRITING_ACTION_MODE,
|
||||
this.internalKeybindings2[key]);
|
||||
|
|
@ -245,7 +248,7 @@ var AreaManager = new Lang.Class({
|
|||
for (let i = 1; i < 10; i++) {
|
||||
let iCaptured = i;
|
||||
Main.wm.addKeybinding('select-color' + i,
|
||||
this.settings,
|
||||
Me.internalShortcutSettings,
|
||||
Meta.KeyBindingFlags.NONE,
|
||||
DRAWING_ACTION_MODE | WRITING_ACTION_MODE,
|
||||
() => this.activeArea.selectColor(iCaptured));
|
||||
|
|
@ -292,7 +295,7 @@ var AreaManager = new Lang.Class({
|
|||
eraseDrawing: function() {
|
||||
for (let i = 0; i < this.areas.length; i++)
|
||||
this.areas[i].erase();
|
||||
if (this.settings.get_boolean('persistent-drawing'))
|
||||
if (Me.settings.get_boolean('persistent-drawing'))
|
||||
this.areas[Main.layoutManager.primaryIndex].savePersistent();
|
||||
},
|
||||
|
||||
|
|
@ -345,7 +348,7 @@ var AreaManager = new Lang.Class({
|
|||
Main.uiGroup.set_child_at_index(Main.layoutManager.keyboardBox, this.oldKeyboardIndex);
|
||||
Main.uiGroup.remove_actor(activeContainer);
|
||||
Main.layoutManager._backgroundGroup.insert_child_above(activeContainer, Main.layoutManager._bgManagers[activeIndex].backgroundActor);
|
||||
if (!this.settings.get_boolean("drawing-on-desktop"))
|
||||
if (!Me.settings.get_boolean("drawing-on-desktop"))
|
||||
activeContainer.hide();
|
||||
} else {
|
||||
Main.layoutManager._backgroundGroup.remove_actor(activeContainer);
|
||||
|
|
@ -387,7 +390,7 @@ var AreaManager = new Lang.Class({
|
|||
toggleDrawing: function() {
|
||||
if (this.activeArea) {
|
||||
let activeIndex = this.areas.indexOf(this.activeArea);
|
||||
let save = activeIndex == Main.layoutManager.primaryIndex && this.settings.get_boolean('persistent-drawing');
|
||||
let save = activeIndex == Main.layoutManager.primaryIndex && Me.settings.get_boolean('persistent-drawing');
|
||||
|
||||
this.showOsd(null, this.leaveGicon, _("Leaving drawing mode"));
|
||||
this.activeArea.leaveDrawingMode(save);
|
||||
|
|
@ -410,7 +413,7 @@ var AreaManager = new Lang.Class({
|
|||
}
|
||||
|
||||
this.activeArea.enterDrawingMode();
|
||||
this.osdDisabled = this.settings.get_boolean('osd-disabled');
|
||||
this.osdDisabled = Me.settings.get_boolean('osd-disabled');
|
||||
let label = _("<small>Press <i>%s</i> for help</small>").format(this.activeArea.helper.helpKeyLabel) + "\n\n" + _("Entering drawing mode");
|
||||
this.showOsd(null, this.enterGicon, label, null, null, true);
|
||||
}
|
||||
|
|
@ -531,15 +534,15 @@ var AreaManager = new Lang.Class({
|
|||
this.monitorChangedHandler = null;
|
||||
}
|
||||
if (this.indicatorSettingHandler) {
|
||||
this.settings.disconnect(this.indicatorSettingHandler);
|
||||
Me.settings.disconnect(this.indicatorSettingHandler);
|
||||
this.indicatorSettingHandler = null;
|
||||
}
|
||||
if (this.desktopSettingHandler) {
|
||||
this.settings.disconnect(this.desktopSettingHandler);
|
||||
Me.settings.disconnect(this.desktopSettingHandler);
|
||||
this.desktopSettingHandler = null;
|
||||
}
|
||||
if (this.persistentSettingHandler) {
|
||||
this.settings.disconnect(this.persistentSettingHandler);
|
||||
Me.settings.disconnect(this.persistentSettingHandler);
|
||||
this.persistentSettingHandler = null;
|
||||
}
|
||||
|
||||
|
|
|
|||
25
helper.js
25
helper.js
|
|
@ -25,9 +25,9 @@ const Lang = imports.lang;
|
|||
const St = imports.gi.St;
|
||||
|
||||
const Config = imports.misc.config;
|
||||
const ExtensionUtils = imports.misc.extensionUtils;
|
||||
const Tweener = imports.ui.tweener;
|
||||
|
||||
const ExtensionUtils = imports.misc.extensionUtils;
|
||||
const Me = ExtensionUtils.getCurrentExtension();
|
||||
const Convenience = ExtensionUtils.getSettings ? ExtensionUtils : Me.imports.convenience;
|
||||
const Prefs = Me.imports.prefs;
|
||||
|
|
@ -55,24 +55,27 @@ var DrawingHelper = new Lang.Class({
|
|||
this.parent(params);
|
||||
this.monitor = monitor;
|
||||
this.hide();
|
||||
this.settings = Convenience.getSettings();
|
||||
|
||||
this.settingHandler = this.settings.connect('changed', this._onSettingChanged.bind(this));
|
||||
this.connect('destroy', () => this.settings.disconnect(this.settingHandler));
|
||||
this.settingsHandler = Me.settings.connect('changed', this._onSettingsChanged.bind(this));
|
||||
this.internalShortcutsettingsHandler = Me.internalShortcutSettings.connect('changed', this._onSettingsChanged.bind(this));
|
||||
this.connect('destroy', () => {
|
||||
Me.settings.disconnect(this.settingsHandler);
|
||||
Me.internalShortcutSettings.disconnect(this.internalShortcutsettingsHandler);
|
||||
});
|
||||
},
|
||||
|
||||
_onSettingChanged: function(settings, key) {
|
||||
_onSettingsChanged: function(settings, key) {
|
||||
if (key == 'toggle-help')
|
||||
this._updateHelpKeyLabel();
|
||||
|
||||
if (this.vbox) {
|
||||
this.vbox.destroy();
|
||||
this.vbox = null;
|
||||
delete this.vbox;
|
||||
}
|
||||
},
|
||||
|
||||
_updateHelpKeyLabel: function() {
|
||||
let [keyval, mods] = Gtk.accelerator_parse(this.settings.get_strv('toggle-help')[0]);
|
||||
let [keyval, mods] = Gtk.accelerator_parse(Me.internalShortcutSettings.get_strv('toggle-help')[0]);
|
||||
this._helpKeyLabel = Gtk.accelerator_get_label(keyval, mods);
|
||||
},
|
||||
|
||||
|
|
@ -94,9 +97,9 @@ var DrawingHelper = new Lang.Class({
|
|||
this.vbox.add_child(hbox);
|
||||
continue;
|
||||
}
|
||||
if (!this.settings.get_strv(settingKey)[0])
|
||||
if (!Me.settings.get_strv(settingKey)[0])
|
||||
continue;
|
||||
let [keyval, mods] = Gtk.accelerator_parse(this.settings.get_strv(settingKey)[0]);
|
||||
let [keyval, mods] = Gtk.accelerator_parse(Me.settings.get_strv(settingKey)[0]);
|
||||
hbox.add_child(new St.Label({ text: _(Prefs.GLOBAL_KEYBINDINGS[settingKey]) }));
|
||||
hbox.add_child(new St.Label({ text: Gtk.accelerator_get_label(keyval, mods), x_expand: true }));
|
||||
this.vbox.add_child(hbox);
|
||||
|
|
@ -124,9 +127,9 @@ var DrawingHelper = new Lang.Class({
|
|||
continue;
|
||||
}
|
||||
let hbox = new St.BoxLayout({ vertical: false });
|
||||
if (!this.settings.get_strv(settingKey)[0])
|
||||
if (!Me.internalShortcutSettings.get_strv(settingKey)[0])
|
||||
continue;
|
||||
let [keyval, mods] = Gtk.accelerator_parse(this.settings.get_strv(settingKey)[0]);
|
||||
let [keyval, mods] = Gtk.accelerator_parse(Me.internalShortcutSettings.get_strv(settingKey)[0]);
|
||||
hbox.add_child(new St.Label({ text: _(Prefs.INTERNAL_KEYBINDINGS[settingKey]) }));
|
||||
hbox.add_child(new St.Label({ text: Gtk.accelerator_get_label(keyval, mods), x_expand: true }));
|
||||
this.vbox.add_child(hbox);
|
||||
|
|
|
|||
15
prefs.js
15
prefs.js
|
|
@ -207,7 +207,8 @@ const PrefsPage = new GObject.Class({
|
|||
_init: function(params) {
|
||||
this.parent();
|
||||
|
||||
this.settings = Convenience.getSettings();
|
||||
let settings = Convenience.getSettings();
|
||||
let internalShortcutSettings = Convenience.getSettings(Me.metadata['settings-schema'] + '.internal-shortcuts');
|
||||
|
||||
let box = new Gtk.Box({ orientation: Gtk.Orientation.VERTICAL, margin: MARGIN*3 });
|
||||
this.add(box);
|
||||
|
|
@ -222,7 +223,7 @@ const PrefsPage = new GObject.Class({
|
|||
let styleContext = listBox.get_style_context();
|
||||
styleContext.add_class('background');
|
||||
|
||||
let globalKeybindingsWidget = new KeybindingsWidget(GLOBAL_KEYBINDINGS, this.settings);
|
||||
let globalKeybindingsWidget = new KeybindingsWidget(GLOBAL_KEYBINDINGS, settings);
|
||||
globalKeybindingsWidget.margin = MARGIN;
|
||||
listBox.add(globalKeybindingsWidget);
|
||||
|
||||
|
|
@ -235,7 +236,7 @@ const PrefsPage = new GObject.Class({
|
|||
persistentLabelBox.pack_start(persistentLabel1, true, true, 0);
|
||||
persistentLabelBox.pack_start(persistentLabel2, true, true, 0);
|
||||
let persistentSwitch = new Gtk.Switch({valign: 3});
|
||||
this.settings.bind('persistent-drawing', persistentSwitch, 'active', 0);
|
||||
settings.bind('persistent-drawing', persistentSwitch, 'active', 0);
|
||||
persistentBox.pack_start(persistentLabelBox, true, true, 4);
|
||||
persistentBox.pack_start(persistentSwitch, false, false, 4);
|
||||
listBox.add(persistentBox);
|
||||
|
|
@ -249,7 +250,7 @@ const PrefsPage = new GObject.Class({
|
|||
desktopLabelBox.pack_start(desktopLabel1, true, true, 0);
|
||||
desktopLabelBox.pack_start(desktopLabel2, true, true, 0);
|
||||
let desktopSwitch = new Gtk.Switch({valign: 3});
|
||||
this.settings.bind('drawing-on-desktop', desktopSwitch, 'active', 0);
|
||||
settings.bind('drawing-on-desktop', desktopSwitch, 'active', 0);
|
||||
desktopBox.pack_start(desktopLabelBox, true, true, 4);
|
||||
desktopBox.pack_start(desktopSwitch, false, false, 4);
|
||||
listBox.add(desktopBox);
|
||||
|
|
@ -260,7 +261,7 @@ const PrefsPage = new GObject.Class({
|
|||
osdLabel1.set_halign(1);
|
||||
osdLabelBox.pack_start(osdLabel1, true, true, 0);
|
||||
let osdSwitch = new Gtk.Switch({valign: 3});
|
||||
this.settings.bind('osd-disabled', osdSwitch, 'active', 0);
|
||||
settings.bind('osd-disabled', osdSwitch, 'active', 0);
|
||||
osdBox.pack_start(osdLabelBox, true, true, 4);
|
||||
osdBox.pack_start(osdSwitch, false, false, 4);
|
||||
listBox.add(osdBox);
|
||||
|
|
@ -271,7 +272,7 @@ const PrefsPage = new GObject.Class({
|
|||
indicatorLabel1.set_halign(1);
|
||||
indicatorLabelBox.pack_start(indicatorLabel1, true, true, 0);
|
||||
let indicatorSwitch = new Gtk.Switch({valign: 3});
|
||||
this.settings.bind('indicator-disabled', indicatorSwitch, 'active', 0);
|
||||
settings.bind('indicator-disabled', indicatorSwitch, 'active', 0);
|
||||
indicatorBox.pack_start(indicatorLabelBox, true, true, 4);
|
||||
indicatorBox.pack_start(indicatorSwitch, false, false, 4);
|
||||
listBox.add(indicatorBox);
|
||||
|
|
@ -306,7 +307,7 @@ const PrefsPage = new GObject.Class({
|
|||
listBox.add(otherBox);
|
||||
}
|
||||
|
||||
let internalKeybindingsWidget = new KeybindingsWidget(INTERNAL_KEYBINDINGS, this.settings);
|
||||
let internalKeybindingsWidget = new KeybindingsWidget(INTERNAL_KEYBINDINGS, internalShortcutSettings);
|
||||
internalKeybindingsWidget.margin = MARGIN;
|
||||
listBox.add(internalKeybindingsWidget);
|
||||
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -36,6 +36,9 @@
|
|||
<summary>erase drawing</summary>
|
||||
<description>erase drawing</description>
|
||||
</key>
|
||||
<child name="internal-shortcuts" schema="org.gnome.shell.extensions.draw-on-your-screen.internal-shortcuts"/>
|
||||
</schema>
|
||||
<schema path="/org/gnome/shell/extensions/draw-on-your-screen/internal-shortcuts/" id="org.gnome.shell.extensions.draw-on-your-screen.internal-shortcuts">
|
||||
<key type="as" name="undo">
|
||||
<default>["<Primary>z"]</default>
|
||||
<summary>undo</summary>
|
||||
|
|
|
|||
Loading…
Reference in New Issue