[gnome-shell-extensions/wip/fmuellner/misc-cleanups: 12/12] user-theme: Clarify some code
- From: Florian Müllner <fmuellner src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell-extensions/wip/fmuellner/misc-cleanups: 12/12] user-theme: Clarify some code
- Date: Mon, 4 Mar 2019 18:37:49 +0000 (UTC)
commit a26380d56e0f73bd34bf18c7e17f3fc9dbbbd7fd
Author: Florian Müllner <fmuellner gnome org>
Date: Sun Mar 3 05:34:17 2019 +0100
user-theme: Clarify some code
Commit 2582ab accidentally pointed out that the current theme loading code
obfuscates which directories are searched for themes. Rewrite it with modern
JS features to make it more obvious.
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/60
extensions/user-theme/extension.js | 46 ++++++++++++++++----------------------
1 file changed, 19 insertions(+), 27 deletions(-)
---
diff --git a/extensions/user-theme/extension.js b/extensions/user-theme/extension.js
index 1a718d1..d00c077 100644
--- a/extensions/user-theme/extension.js
+++ b/extensions/user-theme/extension.js
@@ -30,37 +30,29 @@ class ThemeManager {
}
_changeTheme() {
- let _stylesheet = null;
- let _themeName = this._settings.get_string(SETTINGS_KEY);
-
- if (_themeName) {
- let _userCssStylesheet = GLib.build_filenamev([
- GLib.get_home_dir(), '.themes', _themeName, 'gnome-shell', 'gnome-shell.css'
- ]);
- let file = Gio.file_new_for_path(_userCssStylesheet);
- if (file.query_exists(null))
- _stylesheet = _userCssStylesheet;
- else {
- let sysdirs = GLib.get_system_data_dirs();
- sysdirs.unshift(GLib.get_user_data_dir());
- for (let i = 0; i < sysdirs.length; i++) {
- _userCssStylesheet = GLib.build_filenamev([
- sysdirs[i], 'themes', _themeName, 'gnome-shell', 'gnome-shell.css'
- ]);
- let file = Gio.file_new_for_path(_userCssStylesheet);
- if (file.query_exists(null)) {
- _stylesheet = _userCssStylesheet;
- break;
- }
- }
- }
+ let stylesheet = null;
+ let themeName = this._settings.get_string(SETTINGS_KEY);
+
+ if (themeName) {
+ let stylesheetPaths = [
+ [GLib.get_home_dir(), '.themes'],
+ [GLib.get_user_data_dir(), 'themes'],
+ ...GLib.get_system_data_dirs().map(dir => [dir, 'themes'])
+ ].map(themeDir => GLib.build_filenamev([
+ ...themeDir, themeName, 'gnome-shell', 'gnome-shell.css'
+ ]));
+
+ stylesheet = stylesheetPaths.find(path => {
+ let file = Gio.file_new_for_path(path);
+ return file.query_exists(null);
+ });
}
- if (_stylesheet)
- global.log(`loading user theme: ${_stylesheet}`);
+ if (stylesheet)
+ global.log(`loading user theme: ${stylesheet}`);
else
global.log('loading default theme (Adwaita)');
- Main.setThemeStylesheet(_stylesheet);
+ Main.setThemeStylesheet(stylesheet);
Main.loadTheme();
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]