diff options
author | Bartosz Jaroszewski <b.jarosze@gmail.com> | 2023-05-02 16:19:40 +0200 |
---|---|---|
committer | Bartosz Jaroszewski <b.jarosze@gmail.com> | 2023-05-02 16:19:40 +0200 |
commit | 17e9615270c3b740ed726caa080813449e41e2a5 (patch) | |
tree | 971796fd6c347590059328717f694835df865e94 | |
parent | 789e1279d98412b7e105801a3a44709a782a6353 (diff) |
gnome 44
-rw-r--r-- | extension.js | 22 | ||||
-rw-r--r-- | metadata.json | 5 | ||||
-rw-r--r-- | quickSettings.js | 46 |
3 files changed, 14 insertions, 59 deletions
diff --git a/extension.js b/extension.js index a459daa..d003d22 100644 --- a/extension.js +++ b/extension.js @@ -32,6 +32,8 @@ const Utils = Me.imports.utils; const Settings = Me.imports.settings.Settings; const BatteryProvider = Me.imports.power.UPowerBatteryProvider; +const PopupMenu = imports.ui.popupMenu; + class BluetoothQuickConnect { constructor(quickSettings, bluetooth, settings) { @@ -39,15 +41,17 @@ class BluetoothQuickConnect { this._logger.info('Initializing extension'); if (quickSettings) { let btIndicator = quickSettings._bluetooth; - let oldItem = btIndicator.quickSettingsItems[0]; - let newItem = new Me.imports.quickSettings.BluetoothToggleMenu(oldItem); - - btIndicator.quickSettingsItems = [newItem]; - quickSettings.menu.addItem(newItem); - quickSettings.menu._grid.set_child_below_sibling(newItem, oldItem); - quickSettings.menu._grid.remove_child(oldItem); - this._proxy = oldItem._client._proxy; - this._menu = newItem.itemsSection; + let bluetoothToggle = btIndicator.quickSettingsItems[0]; + bluetoothToggle._updateDeviceVisibility = () => { + bluetoothToggle._deviceSection.actor.visible = false; + bluetoothToggle._placeholderItem.actor.visible = false; + } + bluetoothToggle._updateDeviceVisibility(); + + this._proxy = bluetoothToggle._client._proxy; + this._menu = new PopupMenu.PopupMenuSection(); + + bluetoothToggle.menu.addMenuItem(this._menu, 0); } else { this._menu = bluetooth._item.menu; this._proxy = bluetooth._proxy; diff --git a/metadata.json b/metadata.json index 7ccace1..70b3688 100644 --- a/metadata.json +++ b/metadata.json @@ -6,9 +6,6 @@ "settings-schema": "org.gnome.shell.extensions.bluetooth-quick-connect", "gettext-domain": "bluetooth-quick-connect", "shell-version": [ - "40", - "41", - "42", - "43" + "44" ] } diff --git a/quickSettings.js b/quickSettings.js deleted file mode 100644 index 8f0dc9f..0000000 --- a/quickSettings.js +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright 2010-2022 GNOME Shell contributors -// Copyright 2022 Simon McVittie -// SPDX-License-Identifier: GPL-2.0-or-later -// -// Adapted from gnome-shell js/ui/status/bluetooth.js - -/* exported BluetoothToggleMenu */ - - -const ExtensionUtils = imports.misc.extensionUtils; -const Me = ExtensionUtils.getCurrentExtension(); - -const Gettext = imports.gettext.domain(Me.metadata['gettext-domain']); -const _ = Gettext.gettext; - -const PopupMenu = imports.ui.popupMenu; - -const {GObject} = imports.gi; -const {QuickMenuToggle} = imports.ui.quickSettings; - -var BluetoothToggleMenu = GObject.registerClass( -class BluetoothToggleMenu extends QuickMenuToggle { - _init(originalBluetoothToggle) { - super._init({label: originalBluetoothToggle.label}); - - this._original = originalBluetoothToggle; - this._client = this._original._client; - - this._original.bind_property('visible', this, 'visible', - GObject.BindingFlags.SYNC_CREATE); - this._original.bind_property('checked', this, 'checked', - GObject.BindingFlags.SYNC_CREATE); - this._original.bind_property('icon-name', this, 'icon-name', - GObject.BindingFlags.SYNC_CREATE); - - this.connect('clicked', () => this._client.toggleActive()); - - this.menu.setHeader('bluetooth-active-symbolic', originalBluetoothToggle.label); - - this.itemsSection = new PopupMenu.PopupMenuSection(); - this.menu.addMenuItem(this.itemsSection); - this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem()); - this.menu.addSettingsAction(_("Bluetooth Settings"), 'gnome-bluetooth-panel.desktop'); - } -}); - |