Allow disabling GTK and shell variants switching
This commit is contained in:
@@ -46,10 +46,14 @@ var GtkThemer = class {
|
||||
enable() {
|
||||
log_debug('Enabling GTK Themer...');
|
||||
try {
|
||||
this._update_variants();
|
||||
this._set_variant(e.timer.time);
|
||||
this._connect_settings();
|
||||
this._connect_timer();
|
||||
this._watch_status();
|
||||
this._save_original_theme();
|
||||
if ( e.settingsManager.gtk_variants_enabled ) {
|
||||
this._update_variants();
|
||||
this._set_variant(e.timer.time);
|
||||
this._connect_settings();
|
||||
this._connect_timer();
|
||||
}
|
||||
}
|
||||
catch(e) {
|
||||
log_error(e);
|
||||
@@ -61,11 +65,25 @@ var GtkThemer = class {
|
||||
log_debug('Disabling GTK Themer...');
|
||||
this._disconnect_timer();
|
||||
this._disconnect_settings();
|
||||
this._reset_theme();
|
||||
this._reset_original_theme();
|
||||
this._unwatch_status();
|
||||
log_debug('GTK Themer disabled.');
|
||||
}
|
||||
|
||||
|
||||
_watch_status() {
|
||||
log_debug('Watching GTK variants status...');
|
||||
this._gtk_variants_status_changed_connect = e.settingsManager.connect('gtk-variants-status-changed', this._on_gtk_variants_status_changed.bind(this));
|
||||
}
|
||||
|
||||
_unwatch_status() {
|
||||
if ( this._gtk_variants_status_changed_connect ) {
|
||||
e.settingsManager.disconnect(this._gtk_variants_status_changed_connect);
|
||||
this._gtk_variants_status_changed_connect = null;
|
||||
}
|
||||
log_debug('Stopped watching GTK variants status.');
|
||||
}
|
||||
|
||||
_connect_settings() {
|
||||
log_debug('Connecting GTK Themer to settings...');
|
||||
this._gtk_variant_changed_connect = e.settingsManager.connect('gtk-variant-changed', this._on_gtk_variant_changed.bind(this));
|
||||
@@ -98,6 +116,11 @@ var GtkThemer = class {
|
||||
}
|
||||
|
||||
|
||||
_on_gtk_variants_status_changed(settings, enabled) {
|
||||
this.disable();
|
||||
this.enable();
|
||||
}
|
||||
|
||||
_on_gtk_variant_changed(settings, changed_variant_time) {
|
||||
if ( changed_variant_time === e.timer.time ) {
|
||||
this._set_variant(changed_variant_time);
|
||||
@@ -159,7 +182,11 @@ var GtkThemer = class {
|
||||
log_debug(`New GTK variants. { day: '${variants.get('day')}'; night: '${variants.get('night')}' }`);
|
||||
}
|
||||
|
||||
_reset_theme() {
|
||||
_save_original_theme() {
|
||||
e.settingsManager.gtk_variant_original = e.settingsManager.gtk_theme;
|
||||
}
|
||||
|
||||
_reset_original_theme() {
|
||||
// We don't reset the theme when locking the session to prevent
|
||||
// flicker on unlocking
|
||||
if ( !main.screenShield.locked ) {
|
||||
|
||||
@@ -51,9 +51,11 @@ var SettingsManager = class {
|
||||
|
||||
enable() {
|
||||
log_debug('Connecting settings signals...');
|
||||
this._gtk_variants_status_changed_connect = this._extensionsSettings.connect('changed::gtk-variants-enabled', this._on_gtk_variants_status_changed.bind(this));
|
||||
this._gtk_variant_day_changed_connect = this._extensionsSettings.connect('changed::gtk-variant-day', this._on_gtk_variant_day_changed.bind(this));
|
||||
this._gtk_variant_night_changed_connect = this._extensionsSettings.connect('changed::gtk-variant-night', this._on_gtk_variant_night_changed.bind(this));
|
||||
this._gtk_variant_original_changed_connect = this._extensionsSettings.connect('changed::gtk-variant-original', this._on_gtk_variant_original_changed.bind(this));
|
||||
this._shell_variants_status_changed_connect = this._extensionsSettings.connect('changed::shell-variants-enabled', this._on_shell_variants_status_changed.bind(this));
|
||||
this._shell_variant_day_changed_connect = this._extensionsSettings.connect('changed::shell-variant-day', this._on_shell_variant_day_changed.bind(this));
|
||||
this._shell_variant_night_changed_connect = this._extensionsSettings.connect('changed::shell-variant-night', this._on_shell_variant_night_changed.bind(this));
|
||||
this._shell_variant_original_changed_connect = this._extensionsSettings.connect('changed::shell-variant-original', this._on_shell_variant_original_changed.bind(this));
|
||||
@@ -85,9 +87,11 @@ var SettingsManager = class {
|
||||
|
||||
disable() {
|
||||
log_debug('Disconnecting settings signals...');
|
||||
this._extensionsSettings.disconnect(this._gtk_variants_status_changed_connect);
|
||||
this._extensionsSettings.disconnect(this._gtk_variant_day_changed_connect);
|
||||
this._extensionsSettings.disconnect(this._gtk_variant_night_changed_connect);
|
||||
this._extensionsSettings.disconnect(this._gtk_variant_original_changed_connect);
|
||||
this._extensionsSettings.disconnect(this._shell_variants_status_changed_connect);
|
||||
this._extensionsSettings.disconnect(this._shell_variant_day_changed_connect);
|
||||
this._extensionsSettings.disconnect(this._shell_variant_night_changed_connect);
|
||||
this._extensionsSettings.disconnect(this._shell_variant_original_changed_connect);
|
||||
@@ -123,6 +127,10 @@ var SettingsManager = class {
|
||||
|
||||
/* GTK variants settings */
|
||||
|
||||
get gtk_variants_enabled() {
|
||||
return this._extensionsSettings.get_boolean('gtk-variants-enabled');
|
||||
}
|
||||
|
||||
get gtk_variant_day() {
|
||||
return this._extensionsSettings.get_string('gtk-variant-day');
|
||||
}
|
||||
@@ -163,6 +171,10 @@ var SettingsManager = class {
|
||||
|
||||
/* Shell variants settings */
|
||||
|
||||
get shell_variants_enabled() {
|
||||
return this._extensionsSettings.get_boolean('shell-variants-enabled');
|
||||
}
|
||||
|
||||
get shell_variant_day() {
|
||||
return this._extensionsSettings.get_string('shell-variant-day');
|
||||
}
|
||||
@@ -387,6 +399,9 @@ var SettingsManager = class {
|
||||
if ( this._userthemesSettings ) {
|
||||
return this._userthemesSettings.get_string('name');
|
||||
}
|
||||
else {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
set shell_theme(value) {
|
||||
@@ -448,6 +463,11 @@ var SettingsManager = class {
|
||||
|
||||
/* GTK variants */
|
||||
|
||||
_on_gtk_variants_status_changed(settings, changed_key) {
|
||||
log_debug('GTK variants have been ' + (this.gtk_variants_enabled ? 'ena' : 'disa') + 'bled.');
|
||||
this.emit('gtk-variants-status-changed', this.gtk_variants_enabled);
|
||||
}
|
||||
|
||||
_on_gtk_variant_day_changed(settings, changed_key) {
|
||||
log_debug(`GTK day variant has changed to '${this.gtk_variant_day}'.`);
|
||||
this.emit('gtk-variant-changed', 'day');
|
||||
@@ -466,6 +486,11 @@ var SettingsManager = class {
|
||||
|
||||
/* Shell variants */
|
||||
|
||||
_on_shell_variants_status_changed(settings, changed_key) {
|
||||
log_debug('Shell variants have been ' + (this.shell_variants_enabled ? 'ena' : 'disa') + 'bled.');
|
||||
this.emit('shell-variants-status-changed', this.shell_variants_enabled);
|
||||
}
|
||||
|
||||
_on_shell_variant_day_changed(settings, changed_key) {
|
||||
log_debug(`Shell day variant has changed to '${this.shell_variant_day}'.`);
|
||||
this.emit('shell-variant-changed', 'day');
|
||||
|
||||
@@ -45,10 +45,14 @@ var ShellThemer = class {
|
||||
enable() {
|
||||
log_debug('Enabling Shell Themer...');
|
||||
try {
|
||||
this._update_variants();
|
||||
this._set_variant(e.timer.time);
|
||||
this._connect_settings();
|
||||
this._connect_timer();
|
||||
this._watch_status();
|
||||
this._save_original_theme();
|
||||
if ( e.settingsManager.shell_variants_enabled ) {
|
||||
this._update_variants();
|
||||
this._set_variant(e.timer.time);
|
||||
this._connect_settings();
|
||||
this._connect_timer();
|
||||
}
|
||||
}
|
||||
catch(e) {
|
||||
log_error(e);
|
||||
@@ -60,11 +64,25 @@ var ShellThemer = class {
|
||||
log_debug('Disabling Shell Themer...');
|
||||
this._disconnect_timer();
|
||||
this._disconnect_settings();
|
||||
this._reset_theme();
|
||||
this._reset_original_theme();
|
||||
this._unwatch_status();
|
||||
log_debug('Shell Themer disabled.');
|
||||
}
|
||||
|
||||
|
||||
_watch_status() {
|
||||
log_debug('Watching shell variants status...');
|
||||
this._shell_variants_status_changed_connect = e.settingsManager.connect('shell-variants-status-changed', this._on_shell_variants_status_changed.bind(this));
|
||||
}
|
||||
|
||||
_unwatch_status() {
|
||||
if ( this._shell_variants_status_changed_connect ) {
|
||||
e.settingsManager.disconnect(this._shell_variants_status_changed_connect);
|
||||
this._shell_variants_status_changed_connect = null;
|
||||
}
|
||||
log_debug('Stopped watching shell variants status.');
|
||||
}
|
||||
|
||||
_connect_settings() {
|
||||
log_debug('Connecting Shell Themer to settings...');
|
||||
this._shell_variant_changed_connect = e.settingsManager.connect('shell-variant-changed', this._on_shell_variant_changed.bind(this));
|
||||
@@ -97,6 +115,11 @@ var ShellThemer = class {
|
||||
}
|
||||
|
||||
|
||||
_on_shell_variants_status_changed(settings, enabled) {
|
||||
this.disable();
|
||||
this.enable();
|
||||
}
|
||||
|
||||
_on_shell_variant_changed(settings, changed_variant_time) {
|
||||
if ( changed_variant_time === e.timer.time ) {
|
||||
this._set_variant(e.timer.time);
|
||||
@@ -166,7 +189,11 @@ var ShellThemer = class {
|
||||
log_debug(`New Shell variants. { day: '${variants.get('day')}'; night: '${variants.get('night')}' }`);
|
||||
}
|
||||
|
||||
_reset_theme() {
|
||||
_save_original_theme() {
|
||||
e.settingsManager.shell_variant_original = e.settingsManager.shell_theme;
|
||||
}
|
||||
|
||||
_reset_original_theme() {
|
||||
// We don't reset the theme when locking the session to prevent
|
||||
// flicker on unlocking
|
||||
if ( !main.screenShield.locked ) {
|
||||
|
||||
Reference in New Issue
Block a user