Skip to content

Commit

Permalink
Begin using new GNOME 45 convenience classes
Browse files Browse the repository at this point in the history
  • Loading branch information
stuarthayhurst committed Aug 13, 2023
1 parent 6052e5e commit 85f6fad
Showing 1 changed file with 23 additions and 29 deletions.
52 changes: 23 additions & 29 deletions extension/extension.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,4 @@
/* exported init enable disable */

//Local extension imports
const ExtensionUtils = imports.misc.extensionUtils;
const Me = ExtensionUtils.getCurrentExtension();
/* exported ExtensionManager */

//Main imports
import St from 'gi://St';
Expand All @@ -17,26 +13,7 @@ import * as QuickSettings from 'resource:///org/gnome/shell/ui/quickSettings.js'
const QuickSettingsMenu = Main.panel.statusArea.quickSettings;

//Use _() for translations
const _ = imports.gettext.domain(Me.metadata.uuid).gettext;

function init() {
ExtensionUtils.initTranslations();
}

function enable() {
//Create new extension
privacyMenu = new Extension();

//Create menu
privacyMenu.initMenu();
}

function disable() {
//Disconnect listeners, then destroy the menu and class
privacyMenu.disconnectListeners();
privacyMenu.destroyMenu();
privacyMenu = null;
}
import {Extension, gettext as _} from 'resource:///org/gnome/shell/extensions/extension.js';

//Custom PopupMenuItem with an icon, label and switch
const PrivacySettingImageSwitchItem = GObject.registerClass(
Expand Down Expand Up @@ -338,7 +315,7 @@ class IndicatorSettingsManager {
}

//Add to panel
Main.panel.addToStatusArea(Me.metadata.uuid, this._indicator, offset);
Main.panel.addToStatusArea('privacy-menu', this._indicator, offset);
}

clean() {
Expand All @@ -349,10 +326,27 @@ class IndicatorSettingsManager {
}
}

class Extension {
constructor() {
export default class ExtensionManager extends Extension {
enable() {
//Create new extension
this._privacyMenu = new PrivacyExtension(this.getSettings);

//Create menu
this._privacyMenu.initMenu();
}

disable() {
//Disconnect listeners, then destroy the menu and class
this._privacyMenu.disconnectListeners();
this._privacyMenu.destroyMenu();
this._privacyMenu = null;
}
}

class PrivacyExtension {
constructor(extensionSettings) {
this._privacyManager = null;
this._extensionSettings = ExtensionUtils.getSettings();
this._extensionSettings = extensionSettings;
}

disconnectListeners() {
Expand Down

0 comments on commit 85f6fad

Please sign in to comment.