Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package hamster-time-tracker for
openSUSE:Factory checked in at 2023-09-29 21:13:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/hamster-time-tracker (Old)
and /work/SRC/openSUSE:Factory/.hamster-time-tracker.new.28202 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "hamster-time-tracker"
Fri Sep 29 21:13:53 2023 rev:9 rq:1114055 version:unknown
Changes:
--------
---
/work/SRC/openSUSE:Factory/hamster-time-tracker/hamster-time-tracker.changes
2023-06-20 16:48:51.567542112 +0200
+++
/work/SRC/openSUSE:Factory/.hamster-time-tracker.new.28202/hamster-time-tracker.changes
2023-09-29 21:15:06.525071387 +0200
@@ -1,0 +2,19 @@
+Wed Sep 27 21:07:24 UTC 2023 - Martin Wilck <[email protected]>
+
+- Update GNOME extension for GNOME shell 45 support
+ (older GNOME shell is not supported any more)
+ * add 0162-README.rst-add-info-about-restarting-the-extension.patch
+ * add 0163-TotalTimeWidget-port-to-JS6-classes.patch
+ * add 0164-prefs.js-Remove-display-of-extension-version.patch
+ * add 0165-settings-schema-fix-description-for-panel-placement-.patch
+ * add 0166-README.rst-simplify-installation-instructions.patch
+ * add 0167-panelWidget-add-button-to-open-extension-settings.patch
+ * add 0168-Use-ECMAScript-import-export-statements.patch
+ * add 0169-extension.js-adapt-to-GNOME-45.patch
+ * add 0170-prefs.js-re-implement-for-GNOME-45.patch
+ * add 0171-metadata.json.in-GNOME-45-support.patch
+ * add 0172-README.rst-fixup-GNOME-shell-compatiblility.patch
+ * add 0173-Replace-global.log-by-console.log.patch
+ * del 0133-Bump-latest-validated-gnome-shell-version-1.patch (empty)
+
+-------------------------------------------------------------------
Old:
----
0133-Bump-latest-validated-gnome-shell-version-1.patch
New:
----
0162-README.rst-add-info-about-restarting-the-extension.patch
0163-TotalTimeWidget-port-to-JS6-classes.patch
0164-prefs.js-Remove-display-of-extension-version.patch
0165-settings-schema-fix-description-for-panel-placement-.patch
0166-README.rst-simplify-installation-instructions.patch
0167-panelWidget-add-button-to-open-extension-settings.patch
0168-Use-ECMAScript-import-export-statements.patch
0169-extension.js-adapt-to-GNOME-45.patch
0170-prefs.js-re-implement-for-GNOME-45.patch
0171-metadata.json.in-GNOME-45-support.patch
0172-README.rst-fixup-GNOME-shell-compatiblility.patch
0173-Replace-global.log-by-console.log.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ hamster-time-tracker.spec ++++++
--- /var/tmp/diff_new_pack.5nDRYV/_old 2023-09-29 21:15:11.753260020 +0200
+++ /var/tmp/diff_new_pack.5nDRYV/_new 2023-09-29 21:15:11.757260164 +0200
@@ -21,8 +21,8 @@
# ext_gnome_version: latest GNOME shell version supported
# min_gnome_version: earliest GNOME shell version supported
%if 0%{?suse_version} >= 1550
-%global ext_gnome_version 44
-%global min_gnome_version 3.34
+%global ext_gnome_version 45
+%global min_gnome_version 45
%else
%if 0%{?sle_version} >= 150400
%global ext_gnome_version 41
@@ -93,7 +93,6 @@
Patch130: 0130-README.rst-Add-a-section-about-UUID-changing.patch
Patch131: 0131-metadata.json.in-fix-json-syntax-error.patch
Patch132: 0132-Update-README.st.patch
-Patch133: 0133-Bump-latest-validated-gnome-shell-version-1.patch
Patch134: 0134-README-mention-GNOME-shell-compatibility-of-this-ver.patch
Patch135: 0135-README.rst-document-GNOME-shell-compatibility.patch
Patch136: 0136-ongoingFactEntry-stop-using-deprecated-Clutter-key-s.patch
@@ -125,6 +124,19 @@
Patch159: 0159-Report-errors-in-DBUS-calls.patch
Patch160: 0160-Report-errors-on-initial-DBUS-connection.patch
Patch161: 0161-Gracefully-handle-hamster-DBUS-disappearing.patch
+# GNOME 45
+Patch162: 0162-README.rst-add-info-about-restarting-the-extension.patch
+Patch163: 0163-TotalTimeWidget-port-to-JS6-classes.patch
+Patch164: 0164-prefs.js-Remove-display-of-extension-version.patch
+Patch165: 0165-settings-schema-fix-description-for-panel-placement-.patch
+Patch166: 0166-README.rst-simplify-installation-instructions.patch
+Patch167: 0167-panelWidget-add-button-to-open-extension-settings.patch
+Patch168: 0168-Use-ECMAScript-import-export-statements.patch
+Patch169: 0169-extension.js-adapt-to-GNOME-45.patch
+Patch170: 0170-prefs.js-re-implement-for-GNOME-45.patch
+Patch171: 0171-metadata.json.in-GNOME-45-support.patch
+Patch172: 0172-README.rst-fixup-GNOME-shell-compatiblility.patch
+Patch173: 0173-Replace-global.log-by-console.log.patch
BuildRequires: fdupes
BuildRequires: intltool
@@ -222,7 +234,6 @@
%patch130 -p1
%patch131 -p1
%patch132 -p1
-%patch133 -p1
%patch134 -p1
%patch135 -p1
%patch136 -p1
@@ -252,6 +263,21 @@
%patch160 -p1
%patch161 -p1
%endif
+%if 0%{?suse_version} >= 1600
+# TW: GNOME 45 support
+%patch162 -p1
+%patch163 -p1
+%patch164 -p1
+%patch165 -p1
+%patch166 -p1
+%patch167 -p1
+%patch168 -p1
+%patch169 -p1
+%patch170 -p1
+%patch171 -p1
+%patch172 -p1
+%patch173 -p1
+%endif
%endif
mkdir build
++++++ 0162-README.rst-add-info-about-restarting-the-extension.patch ++++++
>From 470ef00f9378d6960f53ed0dd2f228bb31d1f676 Mon Sep 17 00:00:00 2001
From: Martin Wilck <[email protected]>
Date: Thu, 10 Aug 2023 18:04:46 +0200
Subject: [PATCH 162/173] README.rst: add info about restarting the extension
---
README.rst | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/README.rst b/README.rst
index 1e5b305..fe4e920 100644
--- a/README.rst
+++ b/README.rst
@@ -93,6 +93,17 @@ Afterwards, enable the extension and change the preferences
using Tweak Tool,
or on ``https://extensions.gnome.org/local/``. On GNOME 3.36 and later, you
can also use the GNOME "Extensions" tool.
+Reloading the Extension
+~~~~~~~~~~~~~~~~~~~~~~~
+
+If the Hamster GNOME shell extension is already loaded and you change some
code,
+the GNOME shell needs to be restarted in order to update and restart the
extension.
+The easiest way to do this is to run GNOME under X11 and use the key
combination
+``Alt-F2`` followed by ``r``. If you run GNOME under Wayland, either re-login,
or
+start a `nested session
<https://wiki.gnome.org/Initiatives/Wayland/GnomeShell/Testing>`_::
+
+ dbus-run-session -- gnome-shell --nested --wayland
+
Changing the extension UUID
~~~~~~~~~~~~~~~~~~~~~~~~~~~
--
2.42.0
++++++ 0163-TotalTimeWidget-port-to-JS6-classes.patch ++++++
>From 8c4857f9902810b4c369c0317ea90ebabe15caba Mon Sep 17 00:00:00 2001
From: Martin Wilck <[email protected]>
Date: Fri, 22 Sep 2023 17:28:06 +0200
Subject: [PATCH 163/173] TotalTimeWidget: port to JS6 classes
See 9c0b672 ("Port GObject classes to JS6 classes")
Signed-off-by: Martin Wilck <[email protected]>
---
extension/widgets/totalTimeWidget.js | 21 ++++++++-------------
1 file changed, 8 insertions(+), 13 deletions(-)
diff --git a/extension/widgets/totalTimeWidget.js
b/extension/widgets/totalTimeWidget.js
index a956c36..9a6d64b 100644
--- a/extension/widgets/totalTimeWidget.js
+++ b/extension/widgets/totalTimeWidget.js
@@ -21,12 +21,10 @@ Copyright (c) 2016 - 2018 Eric Goller / projecthamster
<elbenfreund@projecthamst
Copyright (c) 2018 Thibaut Madelaine <[email protected]>
*/
-
-const Lang = imports.lang;
const St = imports.gi.St;
const Clutter = imports.gi.Clutter;
const GLib = imports.gi.GLib;
-
+const GObject = imports.gi.GObject;
const Me = imports.misc.extensionUtils.getCurrentExtension();
const Stuff = Me.imports.stuff;
@@ -34,19 +32,16 @@ const Stuff = Me.imports.stuff;
/**
* Custom Label widget that displays total time.
*/
-var TotalTimeWidget = new Lang.Class({
- Name: 'TotalTime',
- Extends: St.Label,
-
- _init: function() {
- this.parent({style_class: 'summary-label'});
-
- },
+var TotalTimeWidget = GObject.registerClass(
+ class TotalTime extends St.Label {
+ _init() {
+ super._init({style_class: 'summary-label'});
+ }
/**
* Recompute values and replace old string with new one based on passed
facts.
*/
- refresh: function(facts) {
+ refresh(facts) {
/**
* Construct a string representing today total.
*/
@@ -61,5 +56,5 @@ var TotalTimeWidget = new Lang.Class({
}
this.set_text(getString(facts));
- },
+ }
});
--
2.42.0
++++++ 0164-prefs.js-Remove-display-of-extension-version.patch ++++++
>From 0da6e64b06dd55fbf80438dfa62157a64e73eca9 Mon Sep 17 00:00:00 2001
From: Martin Wilck <[email protected]>
Date: Fri, 22 Sep 2023 20:04:12 +0200
Subject: [PATCH 164/173] prefs.js: Remove display of extension version
The meta data object in recent versions of GNOME shell
doesn't contain a 'version' field. We have removed it from
metadata.json with 4b9687b ("metadata.json: remove "version" field").
The prefs dialog will just show "undefined", which is not helpful.
Remove the widget displaying the version.
Signed-off-by: Martin Wilck <[email protected]>
---
extension/prefs.js | 11 -----------
1 file changed, 11 deletions(-)
diff --git a/extension/prefs.js b/extension/prefs.js
index 86b2f5e..23e9ab0 100644
--- a/extension/prefs.js
+++ b/extension/prefs.js
@@ -25,10 +25,7 @@ const Gdk = imports.gi.Gdk;
const Gio = imports.gi.Gio;
const Gtk = imports.gi.Gtk;
const GObject = imports.gi.GObject;
-
-
const ExtensionUtils = imports.misc.extensionUtils;
-const Me = ExtensionUtils.getCurrentExtension();
const HamsterSettingsWidget = GObject.registerClass(
class HamsterSettingsWidget extends Gtk.Grid {
@@ -124,14 +121,6 @@ class HamsterSettingsWidget extends Gtk.Grid {
});
this.attach(label, 0, 3, 2, 1);
- 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) {
--
2.42.0
++++++ 0165-settings-schema-fix-description-for-panel-placement-.patch ++++++
>From 4b11f19f9b3777cd0022719871f08386fd9e516f Mon Sep 17 00:00:00 2001
From: Martin Wilck <[email protected]>
Date: Fri, 22 Sep 2023 23:11:22 +0200
Subject: [PATCH 165/173] settings schema: fix description for panel-placement,
add gettext domain
---
.../org.gnome.shell.extensions.project-hamster.gschema.xml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git
a/data/schemas/org.gnome.shell.extensions.project-hamster.gschema.xml
b/data/schemas/org.gnome.shell.extensions.project-hamster.gschema.xml
index 8a35b28..5122c39 100644
--- a/data/schemas/org.gnome.shell.extensions.project-hamster.gschema.xml
+++ b/data/schemas/org.gnome.shell.extensions.project-hamster.gschema.xml
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
-<schemalist>
+<schemalist gettext-domain="hamster-shell-extension">
<schema id="org.gnome.shell.extensions.project-hamster"
path="/org/gnome/shell/extensions/project-hamster/">
<key name="panel-placement" type="i">
<default>0</default>
<summary>Placement in the panel.</summary>
- <description>Position to place extension at. 0 - default, 1 -
replace calendar, 2 - replace activities.</description>
+ <description>Position to place extension at. 0 - default, 1 -
replace calendar, 2 - replace activities, 3 - Center, next to
calendar.</description>
</key>
<key name="panel-appearance" type="i">
--
2.42.0
++++++ 0166-README.rst-simplify-installation-instructions.patch ++++++
>From 222aa30dcb64ba5388ca645b7bdab87ada4009a2 Mon Sep 17 00:00:00 2001
From: Martin Wilck <[email protected]>
Date: Mon, 25 Sep 2023 18:06:16 +0200
Subject: [PATCH 166/173] README.rst: simplify installation instructions
Signed-off-by: Martin Wilck <[email protected]>
---
README.rst | 63 ++++++++++++++++--------------------------------------
1 file changed, 19 insertions(+), 44 deletions(-)
diff --git a/README.rst b/README.rst
index fe4e920..41a4a52 100644
--- a/README.rst
+++ b/README.rst
@@ -31,68 +31,43 @@ hamster`` which should bring up ``hamster-service`` and
Install For Production
~~~~~~~~~~~~~~~~~~~~~~
-The extension is available on `the central extension repository
<https://extensions.gnome.org/extension/425/project-hamster-extension>`_.
-Current compatible Gnome shell versions: 3.34, 3.36. *This version is not
compatible
-with Gnome shell 3.32 and earlier.*
-For previous shell versions check `releases
<https://github.com/projecthamster/hamster-shell-extension/tags>`_.
+Please follow the instructions under
+`Manual Installation For Testing and Development`_ below to install from git.
+The code in this branch (``develop``) is compatible with GNOME shell 3.34
+up to GNOME shell 44. See also `metadata.json.in`_.
-Creating a development environment
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-As ``hamster-shell-extension`` is mainly simple JS there is not much of a
development
-setup needed if you just want to get hacking right away. We do however provide
-a few convenience functionalities that make documenting and releasing the
extension
-easier. For those purposes some additional python packages are required.
-The easiest and cleanest way to go about this is to create a new virtual
environment and activate
-it::
+*Important:* The "Hamster Time Tracker" extension on
+`extensions.gnome.org
https://extensions.gnome.org/extension/425/project-hamster-extension/`_
+is *severely outdated*; it supports GNOME shell up to 3.20 only. There are
+some other versions of this extension on extensions.gnome.org, but none of
+them is supported by the current maintainers of the extension.
- python3 -m venv .venv
- source .venv/bin/activate
-
-Now you are all setup to run ``make develop`` and related make targets without
-changing you main environment.
+.. _metadata.json.in: data/metadata.json.in
Manual Installation For Testing and Development
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
Clone the repository::
git clone https://github.com/projecthamster/hamster-shell-extension.git
Make sure you are on the development branch::
- git checkout develop
+ git switch -c develop origin/develop
-Build a fresh distribution package::
+To make this build available locally under your user account::
+
+ make install-user
+
+To build a fresh distribution package (this will create a distributable
archive located in the ``dist/`` folder)::
make dist
-This will create a distributable archive located in the ``dist/`` folder.
+Afterwards, enable the extension and change the preferences using the
+*gnome-extensions* tool (on GNOME 3.34 and earlier, you need to use
*gnome-tweak-tool*).
-**Shortcut on** ``develop``
-
-If you are using the ``develop`` branch since May 2020, you can run ``make
-install-user`` to install your current working branch in your user environment
-or ``make install`` for a system-wide installation. The ``DESTDIR`` variable
-can be provided to ``make install`` to adjust the base installation path (it
-defaults to ``DESTDIR=/usr/local``).
-
-Otherwise, on other branches, follow the steps below to manually install the
-distribution archive::
-
- # Build
- make dist
- # Remove any old installation
- rm -rf ~/.local/share/gnome-shell/extensions/[email protected]
- # Create directory
- mkdir -p ~/.local/share/gnome-shell/extensions/[email protected]
- # Unpack build
- tar xfz dist/[email protected] -C
~/.local/share/gnome-shell/extensions/[email protected]
-
-Afterwards, enable the extension and change the preferences using Tweak Tool,
-or on ``https://extensions.gnome.org/local/``. On GNOME 3.36 and later, you
-can also use the GNOME "Extensions" tool.
-
Reloading the Extension
~~~~~~~~~~~~~~~~~~~~~~~
--
2.42.0
++++++ 0167-panelWidget-add-button-to-open-extension-settings.patch ++++++
>From 2b3257b3c9530c7ef12c1ada9be53afc2cc088d2 Mon Sep 17 00:00:00 2001
From: Martin Wilck <[email protected]>
Date: Mon, 25 Sep 2023 17:02:48 +0200
Subject: [PATCH 167/173] panelWidget: add button to open extension settings
Signed-off-by: Martin Wilck <[email protected]>
---
extension/widgets/panelWidget.js | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/extension/widgets/panelWidget.js b/extension/widgets/panelWidget.js
index 0d9e870..4a15dd6 100644
--- a/extension/widgets/panelWidget.js
+++ b/extension/widgets/panelWidget.js
@@ -125,6 +125,11 @@ class PanelWidget extends PanelMenu.Button {
SettingMenuItem.connect('activate', this._onOpenSettings.bind(this));
this.menu.addMenuItem(SettingMenuItem);
+ let ExtSettingMenuItem = new PopupMenu.PopupMenuItem(_("Extension
Settings"));
+ ExtSettingMenuItem.connect('activate',
+ () => this._controller.openPreferences());
+ this.menu.addMenuItem(ExtSettingMenuItem);
+
// focus menu upon display
this.menu.connect('open-state-changed',
function(menu, open) {
--
2.42.0
++++++ 0168-Use-ECMAScript-import-export-statements.patch ++++++
>From 96bfe69e7f9f6e0f175a4c501a96054cb537850e Mon Sep 17 00:00:00 2001
From: Martin Wilck <[email protected]>
Date: Fri, 22 Sep 2023 18:53:26 +0200
Subject: [PATCH 168/173] Use ECMAScript import/export statements
https://gjs.guide/extensions/upgrading/gnome-shell-45.html
Signed-off-by: Martin Wilck <[email protected]>
---
extension/extension.js | 18 +++++--------
extension/prefs.js | 9 +++----
extension/stuff.js | 10 +++----
extension/widgets/categoryTotalsWidget.js | 14 +++++-----
extension/widgets/factsBox.js | 32 ++++++++++-------------
extension/widgets/ongoingFactEntry.js | 14 +++++-----
extension/widgets/panelWidget.js | 25 +++++++++---------
extension/widgets/todaysFactsWidget.js | 18 ++++++-------
extension/widgets/totalTimeWidget.js | 14 +++++-----
9 files changed, 70 insertions(+), 84 deletions(-)
diff --git a/extension/extension.js b/extension/extension.js
index 8ece31e..31068ef 100644
--- a/extension/extension.js
+++ b/extension/extension.js
@@ -21,18 +21,14 @@ Copyright (c) 2016 - 2018 Eric Goller / projecthamster
<elbenfreund@projecthamst
*/
-const GLib = imports.gi.GLib;
-const Shell = imports.gi.Shell;
-const Meta = imports.gi.Meta;
-const Main = imports.ui.main;
-const Gio = imports.gi.Gio;
+import GLib from 'gi://GLib';
+import Shell from 'gi://Shell';
+import Meta from 'gi://Meta';
+import Gio from 'gi://Gio';
+import * as Main from 'resource:///org/gnome/shell/ui/main.js';
-const Gettext = imports.gettext.domain('hamster-shell-extension');
-const _ = Gettext.gettext;
-
-const ExtensionUtils = imports.misc.extensionUtils;
-const Me = ExtensionUtils.getCurrentExtension();
-const PanelWidget = Me.imports.widgets.panelWidget.PanelWidget;
+import {Extension, gettext as _} from
'resource:///org/gnome/shell/extensions/extension.js';
+import PanelWidget from './widgets/panelWidget.js';
// dbus-send --session --type=method_call --print-reply
--dest=org.gnome.Hamster /org/gnome/Hamster
org.freedesktop.DBus.Introspectable.Introspect
const ApiProxyIface = ['',
diff --git a/extension/prefs.js b/extension/prefs.js
index 23e9ab0..c7ae150 100644
--- a/extension/prefs.js
+++ b/extension/prefs.js
@@ -21,11 +21,10 @@ Copyright (c) 2016 - 2018 Eric Goller / projecthamster
<elbenfreund@projecthamst
*/
-const Gdk = imports.gi.Gdk;
-const Gio = imports.gi.Gio;
-const Gtk = imports.gi.Gtk;
-const GObject = imports.gi.GObject;
-const ExtensionUtils = imports.misc.extensionUtils;
+import Gdk from 'gi://Gdk';
+import Gio from 'gi://Gio';
+import Gtk from 'gi://Gtk';
+import GObject from 'gi://GObject';
const HamsterSettingsWidget = GObject.registerClass(
class HamsterSettingsWidget extends Gtk.Grid {
diff --git a/extension/stuff.js b/extension/stuff.js
index 56c7054..4cd8a12 100644
--- a/extension/stuff.js
+++ b/extension/stuff.js
@@ -29,7 +29,7 @@ Copyright (c) 2016 - 2018 Eric Goller / projecthamster
<elbenfreund@projecthamst
*
* @param {int} - Total amount of seconds to represent.
*/
-function formatDuration(total_seconds) {
+export function formatDuration(total_seconds) {
let hours = total_seconds / 3600;
let remaining_seconds = total_seconds % 3600;
// We only care for "full minutes".
@@ -45,7 +45,7 @@ function formatDuration(total_seconds) {
*
* @param {int} - Total amount of seconds to represent.
*/
-function formatDurationHuman(total_seconds) {
+export function formatDurationHuman(total_seconds) {
let hours = total_seconds / 3600;
let remaining_seconds = total_seconds % 3600;
// We only care for "full minutes".
@@ -75,7 +75,7 @@ function formatDurationHuman(total_seconds) {
*
* @param {int} - Total amount of seconds to represent.
*/
-function formatDurationHours(seconds) {
+export function formatDurationHours(seconds) {
// We shift by one decimal place to the left in order to round properly.
let hours = Math.round((seconds/3600)*10);
// Shift right after rounding.
@@ -85,7 +85,7 @@ function formatDurationHours(seconds) {
// Other helper functions
-function fromDbusFact(fact) {
+export function fromDbusFact(fact) {
// converts a fact coming from dbus into a usable object
function UTCToLocal(timestamp) {
// TODO - is this really the way?!
@@ -108,7 +108,7 @@ function fromDbusFact(fact) {
return result;
}
-function fromDbusFacts(facts) {
+export function fromDbusFacts(facts) {
let res = [];
for (var fact of facts) {
res.push(fromDbusFact(fact));
diff --git a/extension/widgets/categoryTotalsWidget.js
b/extension/widgets/categoryTotalsWidget.js
index 88f9b96..9b36b7e 100644
--- a/extension/widgets/categoryTotalsWidget.js
+++ b/extension/widgets/categoryTotalsWidget.js
@@ -21,13 +21,11 @@ Copyright (c) 2016 - 2018 Eric Goller / projecthamster
<elbenfreund@projecthamst
*/
-const St = imports.gi.St;
-const Clutter = imports.gi.Clutter;
-const GLib = imports.gi.GLib;
-const GObject = imports.gi.GObject;
-
-const Me = imports.misc.extensionUtils.getCurrentExtension();
-const Stuff = Me.imports.stuff;
+import St from 'gi://St';
+import Clutter from 'gi://Clutter';
+import GLib from 'gi://GLib';
+import GObject from 'gi://GObject';
+import * as Stuff from '../stuff.js'
/**
@@ -66,3 +64,5 @@ class CategoryTotals extends St.Label {
this.set_text(getString(facts));
}
});
+
+export default CategoryTotalsWidget;
diff --git a/extension/widgets/factsBox.js b/extension/widgets/factsBox.js
index a033602..ab745de 100644
--- a/extension/widgets/factsBox.js
+++ b/extension/widgets/factsBox.js
@@ -21,23 +21,18 @@ Copyright (c) 2016 - 2018 Eric Goller / projecthamster
<elbenfreund@projecthamst
*/
-const St = imports.gi.St;
-const PopupMenu = imports.ui.popupMenu;
-const Clutter = imports.gi.Clutter;
-const Mainloop = imports.mainloop;
-const GLib = imports.gi.GLib;
-const GObject = imports.gi.GObject;
-
-const Gettext = imports.gettext.domain('hamster-shell-extension');
-const _ = Gettext.gettext;
-
-const Me = imports.misc.extensionUtils.getCurrentExtension();
-const Stuff = Me.imports.stuff;
-const OngoingFactEntry = Me.imports.widgets.ongoingFactEntry.OngoingFactEntry;
-const CategoryTotalsWidget =
Me.imports.widgets.categoryTotalsWidget.CategoryTotalsWidget;
-const TotalTimeWidget = Me.imports.widgets.totalTimeWidget.TotalTimeWidget;
-const TodaysFactsWidget =
Me.imports.widgets.todaysFactsWidget.TodaysFactsWidget;
+import St from 'gi://St';
+import Clutter from 'gi://Clutter';
+import GLib from 'gi://GLib';
+import GObject from 'gi://GObject';
+import { gettext as _ } from
'resource:///org/gnome/shell/extensions/extension.js';
+import * as PopupMenu from 'resource:///org/gnome/shell/ui/popupMenu.js';
+import * as Stuff from '../stuff.js';
+import OngoingFactEntry from './ongoingFactEntry.js';
+import CategoryTotalsWidget from './categoryTotalsWidget.js';
+import TotalTimeWidget from './totalTimeWidget.js';
+import TodaysFactsWidget from './todaysFactsWidget.js';
/**
* Create the widget that ``PanelWidget`` will use to dispay the *raw fact
entry* as
@@ -79,7 +74,6 @@ class FactsBox extends PopupMenu.PopupBaseMenuItem {
// Setup category summery
this.summaryLabel = new CategoryTotalsWidget();
main_box.add(this.summaryLabel);
-
// Setup total time
this.totalTimeLabel = new TotalTimeWidget();
main_box.add(this.totalTimeLabel);
@@ -100,7 +94,7 @@ class FactsBox extends PopupMenu.PopupBaseMenuItem {
* Focus the fact entry and make sure todaysFactsWidget are scrolled to
the bottom.
*/
focus() {
- Mainloop.timeout_add(20, function() {
+ GLib.timeout_add(GLib.PRIORITY_DEFAULT, 20, function() {
this._scrollAdjustment.value = this._scrollAdjustment.upper;
global.stage.set_key_focus(this.ongoingFactEntry);
}.bind(this));
@@ -113,3 +107,5 @@ class FactsBox extends PopupMenu.PopupBaseMenuItem {
global.stage.set_key_focus(null);
}
});
+
+export default FactsBox;
diff --git a/extension/widgets/ongoingFactEntry.js
b/extension/widgets/ongoingFactEntry.js
index cce4929..cd63ae3 100644
--- a/extension/widgets/ongoingFactEntry.js
+++ b/extension/widgets/ongoingFactEntry.js
@@ -21,15 +21,11 @@ Copyright (c) 2016 - 2018 Eric Goller / projecthamster
<elbenfreund@projecthamst
*/
-const GObject = imports.gi.GObject;
-const St = imports.gi.St;
-const Clutter = imports.gi.Clutter;
-
-const Gettext = imports.gettext.domain('hamster-shell-extension');
-const _ = Gettext.gettext;
-
-const Me = imports.misc.extensionUtils.getCurrentExtension();
+import GObject from 'gi://GObject';
+import St from 'gi://St';
+import Clutter from 'gi://Clutter';
+import { gettext as _ } from
'resource:///org/gnome/shell/extensions/extension.js';
/**
* Custom Entry widget that allows entering a *raw fact* string for a new
ongoing fact.
@@ -186,3 +182,5 @@ class OngoingFactEntry extends St.Entry {
}
}
});
+
+export default OngoingFactEntry;
diff --git a/extension/widgets/panelWidget.js b/extension/widgets/panelWidget.js
index 4a15dd6..b02d37b 100644
--- a/extension/widgets/panelWidget.js
+++ b/extension/widgets/panelWidget.js
@@ -21,20 +21,17 @@ Copyright (c) 2016 - 2018 Eric Goller / projecthamster
<elbenfreund@projecthamst
*/
-const Gio = imports.gi.Gio;
-const GObject = imports.gi.GObject;
-const Clutter = imports.gi.Clutter;
-const PanelMenu = imports.ui.panelMenu;
-const St = imports.gi.St;
-const PopupMenu = imports.ui.popupMenu;
-const GLib = imports.gi.GLib;
+import Gio from 'gi://Gio';
+import GObject from 'gi://GObject';
+import Clutter from 'gi://Clutter';
+import St from 'gi://St';
+import GLib from 'gi://GLib';
+import * as PanelMenu from 'resource:///org/gnome/shell/ui/panelMenu.js';
+import * as PopupMenu from 'resource:///org/gnome/shell/ui/popupMenu.js';
-const Gettext = imports.gettext.domain('hamster-shell-extension');
-const _ = Gettext.gettext;
-
-const Me = imports.misc.extensionUtils.getCurrentExtension();
-const FactsBox = Me.imports.widgets.factsBox.FactsBox;
-const Stuff = Me.imports.stuff;
+import { gettext as _ } from
'resource:///org/gnome/shell/extensions/extension.js';
+import FactsBox from './factsBox.js';
+import * as Stuff from '../stuff.js';
/**
* Class that defines the actual extension widget to be shown in the panel.
@@ -341,3 +338,5 @@ class PanelWidget extends PanelMenu.Button {
}
}
});
+
+export default PanelWidget;
diff --git a/extension/widgets/todaysFactsWidget.js
b/extension/widgets/todaysFactsWidget.js
index 778f964..29c2370 100644
--- a/extension/widgets/todaysFactsWidget.js
+++ b/extension/widgets/todaysFactsWidget.js
@@ -21,17 +21,13 @@ Copyright (c) 2016 - 2018 Eric Goller / projecthamster
<elbenfreund@projecthamst
*/
-const St = imports.gi.St;
-const Clutter = imports.gi.Clutter;
-const GLib = imports.gi.GLib;
-const GObject = imports.gi.GObject;
-
-const Gettext = imports.gettext.domain('hamster-shell-extension');
-const _ = Gettext.gettext;
-
-const Me = imports.misc.extensionUtils.getCurrentExtension();
-const Stuff = Me.imports.stuff;
+import St from 'gi://St';
+import Clutter from 'gi://Clutter';
+import GLib from 'gi://GLib';
+import GObject from 'gi://GObject';
+import { gettext as _ } from
'resource:///org/gnome/shell/extensions/extension.js';
+import * as Stuff from '../stuff.js';
/**
* A widget that lists all facts for *today*.
@@ -195,3 +191,5 @@ class TodaysFactsWidget extends St.ScrollView {
this.populateFactsWidget(facts, ongoingFact);
}
});
+
+export default TodaysFactsWidget;
diff --git a/extension/widgets/totalTimeWidget.js
b/extension/widgets/totalTimeWidget.js
index 9a6d64b..d11be30 100644
--- a/extension/widgets/totalTimeWidget.js
+++ b/extension/widgets/totalTimeWidget.js
@@ -21,13 +21,11 @@ Copyright (c) 2016 - 2018 Eric Goller / projecthamster
<elbenfreund@projecthamst
Copyright (c) 2018 Thibaut Madelaine <[email protected]>
*/
-const St = imports.gi.St;
-const Clutter = imports.gi.Clutter;
-const GLib = imports.gi.GLib;
-const GObject = imports.gi.GObject;
-const Me = imports.misc.extensionUtils.getCurrentExtension();
-const Stuff = Me.imports.stuff;
-
+import St from 'gi://St';
+import Clutter from 'gi://Clutter';
+import GLib from 'gi://GLib';
+import GObject from 'gi://GObject';
+import * as Stuff from '../stuff.js';
/**
* Custom Label widget that displays total time.
@@ -58,3 +56,5 @@ var TotalTimeWidget = GObject.registerClass(
this.set_text(getString(facts));
}
});
+
+export default TotalTimeWidget;
--
2.42.0
++++++ 0169-extension.js-adapt-to-GNOME-45.patch ++++++
>From 3ce1d776309872c543594934ee03b13112812213 Mon Sep 17 00:00:00 2001
From: Martin Wilck <[email protected]>
Date: Fri, 22 Sep 2023 21:18:08 +0200
Subject: [PATCH 169/173] extension.js: adapt to GNOME 45
https://gjs.guide/extensions/upgrading/gnome-shell-45.html#extension-js
Signed-off-by: Martin Wilck <[email protected]>
---
extension/extension.js | 11 +++--------
extension/widgets/panelWidget.js | 2 +-
2 files changed, 4 insertions(+), 9 deletions(-)
diff --git a/extension/extension.js b/extension/extension.js
index 31068ef..7873763 100644
--- a/extension/extension.js
+++ b/extension/extension.js
@@ -88,11 +88,11 @@ let WindowsProxy =
Gio.DBusProxy.makeProxyWrapper(WindowsProxyIface);
*
* @class
*/
-class Controller {
+export default class Controller extends Extension {
constructor(extensionMeta) {
let dateMenu = Main.panel.statusArea.dateMenu;
- this.extensionMeta = extensionMeta;
+ super(extensionMeta);
this.panelWidget = null;
this.settings = null;
this.placement = 0;
@@ -136,7 +136,7 @@ class Controller {
if (!this.shouldEnable || !this.apiProxy || !this.windowsProxy)
return;
- this.settings = ExtensionUtils.getSettings();
+ this.settings = this.getSettings();
this.panelWidget = new PanelWidget(this);
this.placement = this.settings.get_int("panel-placement");
@@ -281,8 +281,3 @@ class Controller {
}
}
-
-function init(extensionMeta) {
- ExtensionUtils.initTranslations();
- return new Controller(extensionMeta);
-}
diff --git a/extension/widgets/panelWidget.js b/extension/widgets/panelWidget.js
index b02d37b..bfdc41b 100644
--- a/extension/widgets/panelWidget.js
+++ b/extension/widgets/panelWidget.js
@@ -62,7 +62,7 @@ class PanelWidget extends PanelMenu.Button {
this._controller = controller;
// [FIXME]
// Still needed?
- this._extensionMeta = controller.extensionMeta;
+ this._extensionMeta = controller.metadata;
this._settings = controller.settings;
this._windowsProxy = controller.windowsProxy;
--
2.42.0
++++++ 0170-prefs.js-re-implement-for-GNOME-45.patch ++++++
>From 56a49e059d6ba187086df9690303352e27ed1702 Mon Sep 17 00:00:00 2001
From: Martin Wilck <[email protected]>
Date: Fri, 22 Sep 2023 23:12:35 +0200
Subject: [PATCH 170/173] prefs.js: re-implement for GNOME 45
I used check buttons for the settings. Adw.ComboRow might have been
more suitable, but I couldn't find an example how to set it up.
The code here was copied from GNOME's window-list extension and
adapted to hamster.
Signed-off-by: Martin Wilck <[email protected]>
---
extension/prefs.js | 251 ++++++++++++++++++++-------------------------
1 file changed, 114 insertions(+), 137 deletions(-)
diff --git a/extension/prefs.js b/extension/prefs.js
index c7ae150..0b565e6 100644
--- a/extension/prefs.js
+++ b/extension/prefs.js
@@ -21,155 +21,132 @@ Copyright (c) 2016 - 2018 Eric Goller / projecthamster
<elbenfreund@projecthamst
*/
+import Adw from 'gi://Adw';
import Gdk from 'gi://Gdk';
import Gio from 'gi://Gio';
import Gtk from 'gi://Gtk';
import GObject from 'gi://GObject';
+import GLib from 'gi://GLib';
-const HamsterSettingsWidget = GObject.registerClass(
-class HamsterSettingsWidget extends Gtk.Grid {
- _init(params) {
- super._init(params);
+import {ExtensionPreferences, gettext as _} from
'resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js';
- this.name = 'ProjectHamster.Prefs.HamsterSettingsWidget';
- 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;
+class HotkeyRow extends Adw.EntryRow {
+ static {
+ GObject.registerClass(this);
+ }
- this._settings = ExtensionUtils.getSettings();
+ constructor({ title, settings, bind }) {
+ super({
+ title: title,
+ });
- let label = new Gtk.Label({
- label: "Positioning:",
- halign: Gtk.Align.START,
- visible: true
- });
- this.attach(label, 0, 0, 1, 1);
+ this.connect("apply", () => {
+ const hotkeys = this.get_text();
- let placementOptions = new Gtk.ListStore();
- placementOptions.set_column_types([GObject.TYPE_STRING,
GObject.TYPE_INT]);
+ const mappings = hotkeys.split(",").map((x) => {
+ const [, key, mods] = Gtk.accelerator_parse(x);
+ return Gtk.accelerator_valid(key, mods) && Gtk.accelerator_name(key,
mods);
+ });
- placementOptions.set(placementOptions.append(), [0, 1], ["Default",
0]);
- placementOptions.set(placementOptions.append(), [0, 1], ["Replace
calendar", 1]);
- placementOptions.set(placementOptions.append(), [0, 1], ["Replace
activities", 2]);
- placementOptions.set(placementOptions.append(), [0, 1], ["Center, next
to calendar", 3]);
+ if (mappings.every((x) => !!x)) {
+ console.log("HotkeyRow: good hotkey value ", hotkeys);
+ this.current = mappings;
+ settings.set_strv(bind, this.current);
+ } else {
+ console.log("invalid hotkey value ", hotkeys);
+ this.set_text(this.current.join(","));
+ }
+ });
- let placementCombo = new Gtk.ComboBox({
- model: placementOptions,
- visible: true
- });
-
- let placementComboRenderer = new Gtk.CellRendererText();
- placementCombo.pack_start(placementComboRenderer, true);
- 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);
-
- 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]);
-
- appearanceOptions.set(appearanceOptions.append(), [0, 1], ["Label",
0]);
- appearanceOptions.set(appearanceOptions.append(), [0, 1], ["Icon", 1]);
- appearanceOptions.set(appearanceOptions.append(), [0, 1], ["Label and
icon", 2]);
-
- let appearanceCombo = new Gtk.ComboBox({
- model: appearanceOptions,
- visible: true
- });
-
- let appearanceComboRenderer = new Gtk.CellRendererText();
- appearanceCombo.pack_start(appearanceComboRenderer, true);
- 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);
-
- label = new Gtk.Label({
- label: "Global hotkey:",
- halign: Gtk.Align.START,
- visible: true
- });
- this.attach(label, 0, 2, 1, 1);
-
- let entry = new Gtk.Entry({
- margin_bottom: 10,
- margin_top: 5,
- text: this._settings.get_strv("show-hamster-dropdown")[0],
- visible: true
- });
- entry.connect('changed', this._onHotkeyChange.bind(this));
- this.attach(entry, 1, 2, 1, 1);
-
- 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);
-
- }
-
- _onPlacementChange(widget) {
- let [success, iter] = widget.get_active_iter();
- if (!success)
- return;
-
- let newPlacement = widget.get_model().get_value(iter, 1);
-
- if (this._settings.get_int("panel-placement") == newPlacement)
- return;
-
- this._settings.set_int("panel-placement", newPlacement);
- }
-
- _onAppearanceChange(widget) {
- let [success, iter] = widget.get_active_iter();
- if (!success)
- return;
-
- let newAppearance = widget.get_model().get_value(iter, 1);
-
- if (this._settings.get_int("panel-appearance") == newAppearance)
- return;
-
- this._settings.set_int("panel-appearance", newAppearance);
- }
-
- _onHotkeyChange(widget, bananas) {
- let hotkey = widget.get_text();
- let [key, mods] = [null, null];
-
- if (Gtk.MAJOR_VERSION >= 4) {
- let _r = null;
- [_r, key, mods] = Gtk.accelerator_parse(hotkey);
- } else {
- [key, mods] = Gtk.accelerator_parse(hotkey);
- }
-
- if (key != 0) {
- let parsedName = Gtk.accelerator_name(key, mods);
- this._settings.set_strv("show-hamster-dropdown", [parsedName]);
- }
-
- }
-});
-
-function init() {
+ this.show_apply_button = true,
+ this.current = settings.get_strv(bind);
+ console.log("HotkeyRow current: ", bind, this.current);
+ this.set_text(this.current.join(","));
+ }
}
-function buildPrefsWidget() {
- return new HamsterSettingsWidget();
+class HamsterPrefsWidget extends Adw.PreferencesPage {
+
+ static {
+ GObject.registerClass(this);
+ }
+
+ constructor(settings) {
+ super();
+ this._settings = settings;
+
+ this._actionGroup = new Gio.SimpleActionGroup();
+ this.insert_action_group('hamster', this._actionGroup);
+ this._actionGroup.add_action(
+ this._settings.create_action('panel-placement'));
+ this._actionGroup.add_action(
+ this._settings.create_action('panel-appearance'));
+
+ const placementGroup = new Adw.PreferencesGroup({
+ title: _('Panel Placement'),
+ });
+ this.add(placementGroup);
+
+ const placements = [
+ { p: 0, title: _("Default") },
+ { p: 1, title: _("Replace calendar") },
+ { p: 2, title: _("Replace activities") },
+ { p: 3, title: _("Center, next to calendar") },
+ ];
+
+ for (const {p, title} of placements) {
+ const btn = new Gtk.CheckButton({
+ action_name: 'hamster.panel-placement',
+ action_target: new GLib.Variant('i', p),
+ });
+ const row = new Adw.ActionRow({
+ activatable_widget: btn,
+ title,
+ });
+ row.add_prefix(btn);
+ placementGroup.add(row);
+ }
+
+ const appearanceGroup = new Adw.PreferencesGroup({
+ title: _('Panel Appearance'),
+ });
+ this.add(appearanceGroup);
+
+ const appearances = [
+ { a: 0, title: _("Label") },
+ { a: 1, title: _("Icon") },
+ { a: 2, title: _("Label and icon") },
+ ];
+
+ for (const {a, title} of appearances) {
+ const btn = new Gtk.CheckButton({
+ action_name: 'hamster.panel-appearance',
+ action_target: new GLib.Variant('i', a),
+ });
+ const row = new Adw.ActionRow({
+ activatable_widget: btn,
+ title,
+ });
+ row.add_prefix(btn);
+ appearanceGroup.add(row);
+ }
+
+ const miscGroup = new Adw.PreferencesGroup();
+ this.add(miscGroup);
+
+ let row = new HotkeyRow({
+ title: _("Global hotkey"),
+ settings: this._settings,
+ bind: "show-hamster-dropdown",
+ });
+
+ miscGroup.add(row);
+ }
+}
+
+export default class HamsterPrefs extends ExtensionPreferences {
+ getPreferencesWidget() {
+ return new HamsterPrefsWidget(this.getSettings());
+ }
}
--
2.42.0
++++++ 0171-metadata.json.in-GNOME-45-support.patch ++++++
>From 289d6b16a436fd51c807cea7ba3f05863dae039a Mon Sep 17 00:00:00 2001
From: Martin Wilck <[email protected]>
Date: Fri, 22 Sep 2023 23:16:04 +0200
Subject: [PATCH 171/173] metadata.json.in: GNOME 45 support
This implies that support for all previous GNOME versions is dropped.
(https://gjs.guide/extensions/upgrading/gnome-shell-45.html#shell-version)
Signed-off-by: Martin Wilck <[email protected]>
---
data/metadata.json.in | 9 +--------
1 file changed, 1 insertion(+), 8 deletions(-)
diff --git a/data/metadata.json.in b/data/metadata.json.in
index 162a7cf..ddbd0a5 100644
--- a/data/metadata.json.in
+++ b/data/metadata.json.in
@@ -10,14 +10,7 @@
"gettext-domain": "hamster-shell-extension",
"settings-schema": "org.gnome.shell.extensions.project-hamster",
"shell-version": [
- "3.34",
- "3.36",
- "3.38",
- "40",
- "41",
- "42",
- "43",
- "44"
+ "45"
],
"url": "https://github.com/projecthamster/hamster-shell-extension.git",
"uuid": @UUID@
--
2.42.0
++++++ 0172-README.rst-fixup-GNOME-shell-compatiblility.patch ++++++
>From 36efbfe623faf94da1ea86686864f95e62c81192 Mon Sep 17 00:00:00 2001
From: Martin Wilck <[email protected]>
Date: Mon, 25 Sep 2023 18:46:45 +0200
Subject: [PATCH 172/173] README.rst: fixup GNOME shell compatiblility
Signed-off-by: Martin Wilck <[email protected]>
---
README.rst | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/README.rst b/README.rst
index 41a4a52..5263bf7 100644
--- a/README.rst
+++ b/README.rst
@@ -34,8 +34,8 @@ Install For Production
Please follow the instructions under
`Manual Installation For Testing and Development`_ below to install from git.
-The code in this branch (``develop``) is compatible with GNOME shell 3.34
-up to GNOME shell 44. See also `metadata.json.in`_.
+The code in this branch is compatible with *GNOME shell 45 and newer* only.
+See also `metadata.json.in`_.
*Important:* The "Hamster Time Tracker" extension on
`extensions.gnome.org
https://extensions.gnome.org/extension/425/project-hamster-extension/`_
--
2.42.0
++++++ 0173-Replace-global.log-by-console.log.patch ++++++
>From bdda7f12190654c0cc9663912473476eafcf64ef Mon Sep 17 00:00:00 2001
From: Martin Wilck <[email protected]>
Date: Wed, 27 Sep 2023 10:58:14 +0200
Subject: [PATCH 173/173] Replace "global.log" by "console.log"
"global" isn't generally available any more.
Signed-off-by: Martin Wilck <[email protected]>
---
extension/extension.js | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/extension/extension.js b/extension/extension.js
index 7873763..05e75cb 100644
--- a/extension/extension.js
+++ b/extension/extension.js
@@ -187,7 +187,7 @@ export default class Controller extends Extension {
this.shouldEnable = false;
Main.wm.removeKeybinding("show-hamster-dropdown");
- global.log('Shutting down hamster-shell-extension.');
+ console.log('Shutting down hamster-shell-extension.');
this._removeWidget(this.placement);
Main.panel.menuManager.removeMenu(this.panelWidget.menu);
this.panelWidget.destroy();
@@ -209,7 +209,6 @@ export default class Controller extends Extension {
this.reportIfError(_("Failed to get activities"), err);
this.runningActivitiesQuery = false;
this.activities = response;
- // global.log('ACTIVITIES HAMSTER: ', this.activities);
}.bind(this));
}
@@ -220,7 +219,7 @@ export default class Controller extends Extension {
reportIfError(msg, error) {
if (error) {
// Use toString, error can be a string, exception, etc.
- global.log("error: Hamster: " + msg + ": " + error.toString());
+ console.log("error: Hamster: " + msg + ": " + error.toString());
// Prefix msg to details (second argument), since the
// details are word-wrapped and the title is not.
Main.notify("Hamster: " + msg, msg + "\n" + error.toString());
--
2.42.0