12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- import GObject from "gi://GObject";
- import St from "gi://St";
- import { ThemeManagerBase } from "../shared/theme.js";
- import { Logger } from "../shared/logger.js";
- import { production } from "../shared/settings.js";
- export class ExtensionThemeManager extends ThemeManagerBase {
- static {
- GObject.registerClass(this);
- }
- /**
- * @param {import("../../extension.js").default} extension
- */
- constructor(extension) {
- super(extension);
- this.metadata = extension.metadata;
- }
- reloadStylesheet() {
- const uuid = this.metadata.uuid;
- const stylesheetFile = this.configMgr.stylesheetFile;
- const defaultStylesheetFile = this.configMgr.defaultStylesheetFile;
- let theme = St.ThemeContext.get_for_stage(global.stage).get_theme();
- try {
- theme.unload_stylesheet(defaultStylesheetFile);
- theme.unload_stylesheet(stylesheetFile);
- if (production) {
- theme.load_stylesheet(stylesheetFile);
- this.stylesheet = stylesheetFile;
- } else {
- theme.load_stylesheet(defaultStylesheetFile);
- this.stylesheet = defaultStylesheetFile;
- }
- } catch (e) {
- Logger.error(`${uuid} - ${e}`);
- return;
- }
- }
- }
|