summaryrefslogtreecommitdiff
path: root/raveos-theme/gnome/theme-data/extensions/installed/notification-timeout@chlumskyvaclav.gmail.com/prefspage.js
diff options
context:
space:
mode:
Diffstat (limited to 'raveos-theme/gnome/theme-data/extensions/installed/notification-timeout@chlumskyvaclav.gmail.com/prefspage.js')
-rw-r--r--raveos-theme/gnome/theme-data/extensions/installed/notification-timeout@chlumskyvaclav.gmail.com/prefspage.js275
1 files changed, 0 insertions, 275 deletions
diff --git a/raveos-theme/gnome/theme-data/extensions/installed/notification-timeout@chlumskyvaclav.gmail.com/prefspage.js b/raveos-theme/gnome/theme-data/extensions/installed/notification-timeout@chlumskyvaclav.gmail.com/prefspage.js
deleted file mode 100644
index ed2859a..0000000
--- a/raveos-theme/gnome/theme-data/extensions/installed/notification-timeout@chlumskyvaclav.gmail.com/prefspage.js
+++ /dev/null
@@ -1,275 +0,0 @@
-'use strict';
-
-/**
- * extension notification-timeout
- * JavaScript Gnome extension for setting same timeout for all notifications.
- *
- * @author Václav Chlumský
- * @copyright Copyright 2023, Václav Chlumský.
- */
-
- /**
- * @license
- * The MIT License (MIT)
- *
- * Copyright (c) 2023 Václav Chlumský
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-import Gtk from 'gi://Gtk';
-import Adw from 'gi://Adw';
-import GObject from 'gi://GObject';
-import {ExtensionPreferences, gettext as _} from 'resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js';
-
-export const PreferencesPage = GObject.registerClass({
- GTypeName: 'NotificationTimeoutPrefsWidget'
-}, class PreferencesPage extends GObject.Object {
- _init(metadata, settings) {
- super._init();
-
- this._metadata = metadata;
- this._settings = settings;
- this._ignoreIdle = settings.get_boolean("ignore-idle");
- this._alwaysNormal = settings.get_boolean("always-normal");
- this._newTimeout = settings.get_int("timeout");
- }
-
- /**
- * Build Settings page with general settings
- *
- * @method buildGeneralPage
- * @return {Object} widget for page in notebook
- */
- _buildGeneralPage() {
-
- let top = 1;
- let labelWidget = null;
-
- let generalPage = new Gtk.Grid(
- {
- hexpand: true,
- vexpand: true,
- halign:Gtk.Align.CENTER,
- valign:Gtk.Align.CENTER
- }
- );
-
- /**
- * Ignore idle
- */
- labelWidget = new Gtk.Label(
- {label: _("Ignore idle (always use timeout):")}
- );
- generalPage.attach(labelWidget, 1, top, 1, 1);
-
-
- let ignoreIdleSwitch = new Gtk.Switch(
- {
- active: this._ignoreIdle,
- hexpand: false,
- vexpand: false,
- halign:Gtk.Align.CENTER,
- valign:Gtk.Align.CENTER
- }
- );
-
- ignoreIdleSwitch.connect(
- "notify::active",
- () => {
- this._ignoreIdle = ignoreIdleSwitch.get_active();
- this._settings.set_boolean("ignore-idle", this._ignoreIdle);
- }
- )
- generalPage.attach_next_to(
- ignoreIdleSwitch,
- labelWidget,
- Gtk.PositionType.RIGHT,
- 1,
- 1
- );
-
- top++;
-
- /**
- * Notification' urgency is always normal
- */
- labelWidget = new Gtk.Label(
- {label: _("Timeouted notifications are always 'normal' ('critical' don't timeout):")}
- );
- generalPage.attach(labelWidget, 1, top, 1, 1);
-
-
- let alwaysNormalSwitch = new Gtk.Switch(
- {
- active: this._alwaysNormal,
- hexpand: false,
- vexpand: false,
- halign:Gtk.Align.CENTER,
- valign:Gtk.Align.CENTER
- }
- );
-
- alwaysNormalSwitch.connect(
- "notify::active",
- () => {
- this._alwaysNormal = alwaysNormalSwitch.get_active();
- this._settings.set_boolean("always-normal", this._alwaysNormal);
- }
- )
- generalPage.attach_next_to(
- alwaysNormalSwitch,
- labelWidget,
- Gtk.PositionType.RIGHT,
- 1,
- 1
- );
-
- top++;
-
- /**
- * Notification timeout
- */
- labelWidget = new Gtk.Label(
- {label: _("Notification timeout:")}
- );
- generalPage.attach(labelWidget, 1, top, 1, 1);
-
- let timeoutComboBox = new Gtk.ComboBoxText();
-
- timeoutComboBox.append("0", _("Don't timeout"));
- timeoutComboBox.append("500", _("500 ms"));
- timeoutComboBox.append("1000", _("1 s"));
- timeoutComboBox.append("2000", _("2 s"));
- timeoutComboBox.append("3000", _("3 s"));
- timeoutComboBox.append("4000", _("4 s"));
- timeoutComboBox.append("5000", _("5 s"));
- timeoutComboBox.append("6000", _("6 s"));
- timeoutComboBox.append("7000", _("7 s"));
- timeoutComboBox.append("8000", _("8 s"));
- timeoutComboBox.append("9000", _("9 s"));
- timeoutComboBox.append("10000", _("10 s"));
- timeoutComboBox.append("15000", _("15 s"));
- timeoutComboBox.append("20000", _("20 s"));
- timeoutComboBox.append("30000", _("30 s"));
- timeoutComboBox.append("45000", _("45 s"));
- timeoutComboBox.append("60000", _("1 min"));
- timeoutComboBox.append("120000", _("2 min"));
- timeoutComboBox.append("180000", _("3 min"));
- timeoutComboBox.append("240000", _("4 min"));
- timeoutComboBox.append("300000", _("5 min"));
- timeoutComboBox.append("600000", _("10 min"));
- timeoutComboBox.append("900000", _("15 min"));
- timeoutComboBox.append("1800000", _("30 min"));
-
- timeoutComboBox.set_active_id(this._newTimeout.toString());
-
- timeoutComboBox.connect(
- "changed",
- () => {
- this._newTimeout = parseInt(timeoutComboBox.get_active_id());
- this._settings.set_int("timeout", this._newTimeout);
- }
- );
-
- generalPage.attach_next_to(
- timeoutComboBox,
- labelWidget,
- Gtk.PositionType.RIGHT,
- 1,
- 1
- );
-
- top++;
-
- return generalPage;
- }
-
- /**
- * Build About page
- *
- * @method buildGeneralPage
- * @return {Object} widget for page in notebook
- */
- _buildAboutPage() {
-
- let aboutWidget = new Gtk.Box(
- {
- hexpand: true,
- vexpand: true,
- halign:Gtk.Align.CENTER,
- valign:Gtk.Align.CENTER
- }
- );
-
- let labelWidget = new Gtk.Label(
- {label: `${this._metadata.name}, version: ${this._metadata.version}, Copyright (c) 2023 Václav Chlumský`}
- );
-
- aboutWidget.append(labelWidget);
-
- return aboutWidget;
- }
-
- /**
- * This function is called when the preferences window is first created to build
- * and return a Gtk widget.
- *
- * @method buildPrefsWidget
- * @return {Object} returns the prefsWidget
- */
- buildPrefsWidget() {
-
- let prefsPage = new Adw.PreferencesPage();
- let prefsGroup = new Adw.PreferencesGroup();
-
- let prefsMainBox = new Gtk.Box(
- {
- hexpand: true,
- vexpand: true,
- vexpand_set:true,
- hexpand_set: true,
- halign:Gtk.Align.FILL,
- valign:Gtk.Align.FILL
- }
- );
-
- let notebook = new Gtk.Notebook();
-
- let pageGeneral = this._buildGeneralPage();
- pageGeneral.border_width = 10;
- notebook.append_page(
- pageGeneral,
- new Gtk.Label({label: _("General settings")})
- );
-
- let pageAbout = this._buildAboutPage()
- pageAbout.border_width = 10;
- notebook.append_page(
- pageAbout,
- Gtk.Image.new_from_icon_name("help-about", Gtk.IconSize.MENU)
- );
-
- prefsMainBox.append(notebook);
- prefsGroup.add(prefsMainBox);
- prefsPage.add(prefsGroup);
-
- return prefsPage;
- }
-});