gnome-shell/js/ui/status/autoRotate.js
Florian Müllner 4d931c2c41 status/autoRotate: Port to quick settings
On devices where auto-rotation is supported, (un)locking the
orientation is a common enough action to not bury it in a menu.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2392>
2022-08-02 16:05:28 +00:00

46 lines
1.3 KiB
JavaScript

/* exported Indicator */
const {Gio, GObject} = imports.gi;
const SystemActions = imports.misc.systemActions;
const {QuickToggle, SystemIndicator} = imports.ui.quickSettings;
const RotationToggle = GObject.registerClass(
class RotationToggle extends QuickToggle {
_init() {
this._systemActions = new SystemActions.getDefault();
super._init({
label: _('Auto Rotate'),
});
this._systemActions.bind_property('can-lock-orientation',
this, 'visible',
GObject.BindingFlags.DEFAULT |
GObject.BindingFlags.SYNC_CREATE);
this._systemActions.bind_property('orientation-lock-icon',
this, 'icon-name',
GObject.BindingFlags.DEFAULT |
GObject.BindingFlags.SYNC_CREATE);
this._settings = new Gio.Settings({
schema_id: 'org.gnome.settings-daemon.peripherals.touchscreen',
});
this._settings.bind('orientation-lock',
this, 'checked',
Gio.SettingsBindFlags.INVERT_BOOLEAN);
this.connect('clicked',
() => this._systemActions.activateLockOrientation());
}
});
var Indicator = GObject.registerClass(
class Indicator extends SystemIndicator {
_init() {
super._init();
this.quickSettingsItems.push(new RotationToggle());
}
});