File 0146-Makeing-it-work-with-Gnome-40.-340.patch of Package hamster-time-tracker

From c0e7c6f887a32df2ebd72eb616c014520e95e700 Mon Sep 17 00:00:00 2001
From: "J. Nathanael Philipp" <nathanael@philipp.land>
Date: Thu, 6 May 2021 13:07:18 +0200
Subject: [PATCH 146/147] Makeing it work with Gnome 40. #340

---
 data/metadata.json.in |  3 +-
 extension/prefs.js    | 92 +++++++++++++++++++++++--------------------
 2 files changed, 52 insertions(+), 43 deletions(-)

diff --git a/data/metadata.json.in b/data/metadata.json.in
index e06527a..9a9f41d 100644
--- a/data/metadata.json.in
+++ b/data/metadata.json.in
@@ -12,7 +12,8 @@
     "shell-version": [
         "3.34",
         "3.36",
-        "3.38"
+        "3.38",
+        "40"
     ],
     "url": "https://github.com/projecthamster/hamster-shell-extension.git",
     "uuid": @UUID@
diff --git a/extension/prefs.js b/extension/prefs.js
index 3555673..c8b0e6b 100644
--- a/extension/prefs.js
+++ b/extension/prefs.js
@@ -31,25 +31,28 @@ const ExtensionUtils = imports.misc.extensionUtils;
 const Me = ExtensionUtils.getCurrentExtension();
 
 const HamsterSettingsWidget = GObject.registerClass(
-class HamsterSettingsWidget extends Gtk.VBox {
+class HamsterSettingsWidget extends Gtk.Grid {
     _init(params) {
         super._init(params);
 
         this.name = 'ProjectHamster.Prefs.HamsterSettingsWidget';
 
-        this.margin = 10;
+        this.set_margin_bottom(18);
+        this.set_margin_end(18);
+        this.set_margin_start(18);
+        this.set_margin_top(18);
+        this.set_column_spacing(12);
+        this.set_row_spacing(12);
+        this.visible = true;
 
         this._settings = ExtensionUtils.getSettings();
 
-        let vbox, label;
-
-        label = new Gtk.Label();
-        label.set_markup("<b>Positioning</b>");
-        label.set_alignment(0, 0.5);
-        this.add(label);
-
-        vbox = new Gtk.VBox({margin: 10});
-        this.add(vbox);
+        let label = new Gtk.Label({
+            label: "Positioning:",
+            halign: Gtk.Align.START,
+            visible: true
+        });
+        this.attach(label, 0, 0, 1, 1);
 
         let placementOptions = new Gtk.ListStore();
         placementOptions.set_column_types([GObject.TYPE_STRING, GObject.TYPE_INT]);
@@ -65,16 +68,14 @@ class HamsterSettingsWidget extends Gtk.VBox {
         placementCombo.add_attribute(placementComboRenderer, 'text', 0);
         placementCombo.connect('changed', this._onPlacementChange.bind(this));
         placementCombo.set_active(this._settings.get_int("panel-placement"));
+        this.attach(placementCombo, 1, 0, 1, 1);
 
-        vbox.add(placementCombo);
-
-        label = new Gtk.Label({margin_top: 20});
-        label.set_markup("<b>Appearance in panel</b>");
-        label.set_alignment(0, 0.5);
-        this.add(label);
-
-        vbox = new Gtk.VBox({margin: 10});
-        this.add(vbox);
+        label = new Gtk.Label({
+            label: "Appearance in panel:",
+            halign: Gtk.Align.START,
+            visible: true
+        });
+        this.attach(label, 0, 1, 1, 1);
 
         let appearanceOptions = new Gtk.ListStore();
         appearanceOptions.set_column_types([GObject.TYPE_STRING, GObject.TYPE_INT]);
@@ -90,29 +91,39 @@ class HamsterSettingsWidget extends Gtk.VBox {
         appearanceCombo.add_attribute(appearanceComboRenderer, 'text', 0);
         appearanceCombo.connect('changed', this._onAppearanceChange.bind(this));
         appearanceCombo.set_active(this._settings.get_int("panel-appearance"));
+        this.attach(appearanceCombo, 1, 1, 1, 1);
 
-        vbox.add(appearanceCombo);
+        label = new Gtk.Label({
+            label: "Global hotkey:",
+            halign: Gtk.Align.START,
+            visible: true
+        });
+        this.attach(label, 0, 2, 1, 1);
 
-
-        label = new Gtk.Label({margin_top: 20});
-        label.set_markup("<b>Global hotkey</b>");
-        label.set_alignment(0, 0.5);
-        this.add(label);
-
-        vbox = new Gtk.VBox({margin: 10});
-        this.add(vbox);
-        let entry = new Gtk.Entry({margin_bottom: 10,
-                                   margin_top: 5,
-                                   text: this._settings.get_strv("show-hamster-dropdown")[0]});
-        vbox.add(entry);
+        let entry = new Gtk.Entry({
+            margin_bottom: 10,
+            margin_top: 5,
+            text: this._settings.get_strv("show-hamster-dropdown")[0]
+        });
         entry.connect('changed', this._onHotkeyChange.bind(this));
+        this.attach(entry, 1, 2, 1, 1);
 
-        vbox.add(new Gtk.Label({label: "Reload gnome shell after updating prefs (alt+f2 > r)",
-                                margin_top: 70}));
+        label = new Gtk.Label({
+            label: "Reload gnome shell after updating prefs (alt+f2 > r)",
+            halign: Gtk.Align.CENTER,
+            visible: true,
+            margin_top: 70
+        });
+        this.attach(label, 0, 3, 2, 1);
 
-        let version_text = ExtensionUtils.getCurrentExtension().metadata.version;
-        let version_label_text = "You are running hamster-shell-extension version " + version_text;
-        vbox.add(new Gtk.Label({label: version_label_text, margin_top: 10}));
+        let version_text = Me.metadata.version;
+        label = new Gtk.Label({
+            label: "You are running hamster-shell-extension version " + version_text,
+            halign: Gtk.Align.CENTER,
+            visible: true,
+            margin_top: 10
+        });
+        this.attach(label, 0, 4, 2, 1);
     }
 
     _onPlacementChange(widget) {
@@ -158,8 +169,5 @@ function init() {
 }
 
 function buildPrefsWidget() {
-    let widget = new HamsterSettingsWidget();
-    widget.show_all();
-
-    return widget;
+    return new HamsterSettingsWidget();
 }
-- 
2.31.1

openSUSE Build Service is sponsored by