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-06-20 16:48:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/hamster-time-tracker (Old)
 and      /work/SRC/openSUSE:Factory/.hamster-time-tracker.new.15902 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "hamster-time-tracker"

Tue Jun 20 16:48:42 2023 rev:8 rq:1093837 version:unknown

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/hamster-time-tracker/hamster-time-tracker.changes    
    2022-03-26 22:31:48.134014119 +0100
+++ 
/work/SRC/openSUSE:Factory/.hamster-time-tracker.new.15902/hamster-time-tracker.changes
     2023-06-20 16:48:51.567542112 +0200
@@ -1,0 +2,47 @@
+Mon Jun 19 15:50:30 UTC 2023 - Martin Wilck <mwi...@suse.com>
+
+- Update to version 3.0.3~20 (git d10ae12):
+  * Had to bump pre-release to 20 to fix artefact of broken version
+    for shell extension ("3.0.3~10.10.0_42" instead of "3.0.3~1_0.10.0_42")
+  * Fix hamster startup failure under python 3.11
+    (remove call to deprecated bind_textdomain_codeset gettext function)
+  * HTML export fixes and clean up (gh#projecthamster/hamster#665)
+  * Apply escaping and preserve newlines in HTML export 
(gh#projecthamster/hamster#704)
+  * Update Croatian translation, add hr.po
+  * Fix time-activity overlap with wide fonts
+- Update GNOME shell extension to upstream 75541ac
+  * use upstream patches for GNOME shell 44 support
+  * Fix GNOME shell dependency on TW
+  * gracefully handle hamster DBUS service disappearing
+  * del 0154-metadata.json.in-add-support-for-GNOME-44.patch
+  * add 0154-prefs.js-handle-different-return-values-of-Gtk.accel.patch
+  * add 0155-Use-of-ellipsis-instead-of-tripledot.patch
+  * add 0156-Use-ellipsis-instead-of-triple-dot-.-in-translations.patch
+  * add 0157-Add-Gnome-Shell-43-compatibility.patch
+  * add 0158-Add-basic-gnome-44-support.patch
+  * add 0159-Report-errors-in-DBUS-calls.patch
+  * add 0160-Report-errors-on-initial-DBUS-connection.patch
+  * add 0161-Gracefully-handle-hamster-DBUS-disappearing.patch
+ - spec file: Fix GNOME shell dependency so that it works for "44.2"
+
+-------------------------------------------------------------------
+Mon May  1 09:41:00 UTC 2023 - Andrey Gankov <g...@qsolution.ru>
+
+- GNOME 43 and GNOME 44 support for GNOME shell extension
+  * added 0154-metadata.json.in-add-support-for-GNOME-44.patch
+
+-------------------------------------------------------------------
+Wed Nov 30 00:41:45 UTC 2022 - Steve Kowalik <steven.kowa...@suse.com>
+
+- Remove unneeded BuildRequires on Python 2. 
+
+-------------------------------------------------------------------
+Tue Mar 29 07:23:50 UTC 2022 - Martin Wilck <mwi...@suse.com>
+
+- Fix version ranges for GNOME shell extension
+  * Avoid "nothing provides gnome-shell >= 42" errors from factory
+    bot for s390x/ppc64
+  * This will cause conflicts on future GNOME shell updates, but
+    that's what we want, actually.
+
+-------------------------------------------------------------------

Old:
----
  hamster-time-tracker-3.0.3~1.tar.xz

New:
----
  0154-prefs.js-handle-different-return-values-of-Gtk.accel.patch
  0155-Use-of-ellipsis-instead-of-tripledot.patch
  0156-Use-ellipsis-instead-of-triple-dot-.-in-translations.patch
  0157-Add-Gnome-Shell-43-compatibility.patch
  0158-Add-basic-gnome-44-support.patch
  0159-Report-errors-in-DBUS-calls.patch
  0160-Report-errors-on-initial-DBUS-connection.patch
  0161-Gracefully-handle-hamster-DBUS-disappearing.patch
  hamster-time-tracker-3.0.3~20.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ hamster-time-tracker.spec ++++++
--- /var/tmp/diff_new_pack.ACzVzC/_old  2023-06-20 16:48:54.215558026 +0200
+++ /var/tmp/diff_new_pack.ACzVzC/_new  2023-06-20 16:48:54.223558074 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package hamster-time-tracker
 #
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,16 +18,22 @@
 
 %global ext_version 0.10.0
 
+# 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 42
+%global ext_gnome_version 44
+%global min_gnome_version 3.34
 %else
 %if 0%{?sle_version} >= 150400
 %global ext_gnome_version 41
+%global min_gnome_version 3.34
 %else
 %if 0%{?sle_version} >= 150200
 %global ext_gnome_version 3.34
+%global min_gnome_version 3.32
 %else
-%global ext_gnome_version 3.26
+%global ext_gnome_version 3.30
+%global min_gnome_version 3.10
 %endif
 %endif
 %endif
@@ -36,7 +42,7 @@
 %bcond_without extension
 
 Name:           hamster-time-tracker
-Version:        3.0.3~1
+Version:        3.0.3~20
 Release:        0
 Summary:        A time tracker for GNOME
 License:        CC-BY-SA-3.0 AND GPL-3.0-or-later
@@ -108,16 +114,22 @@
 Patch149:       0149-Extension-configuration-add-a-new-option-center-with.patch
 Patch150:       0150-Improve-description-of-center-positioning.patch
 Patch151:       0151-Default-shortcut-Super-t.patch
-# GNOME 3.41 / 3.42
+# GNOME 41-44
 Patch152:       0152-metadata.json-add-support-for-GNOME-41.patch
 Patch153:       0153-metadata.json.in-add-support-for-GNOME-42.patch
+Patch154:       0154-prefs.js-handle-different-return-values-of-Gtk.accel.patch
+Patch155:       0155-Use-of-ellipsis-instead-of-tripledot.patch
+Patch156:       0156-Use-ellipsis-instead-of-triple-dot-.-in-translations.patch
+Patch157:       0157-Add-Gnome-Shell-43-compatibility.patch
+Patch158:       0158-Add-basic-gnome-44-support.patch
+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
 
 BuildRequires:  fdupes
 BuildRequires:  intltool
 # For detecting typelib() dependencies
 BuildRequires:  gobject-introspection
-# waf requires python2
-BuildRequires:  python
 # "waf configure" checks for these
 BuildRequires:  dbus-1-glib-devel
 BuildRequires:  glib2-devel
@@ -231,6 +243,14 @@
 %patch151 -p1
 %patch152 -p1
 %patch153 -p1
+%patch154 -p1
+%patch155 -p1
+%patch156 -p1
+%patch157 -p1
+%patch158 -p1
+%patch159 -p1
+%patch160 -p1
+%patch161 -p1
 %endif
 %endif
 
@@ -288,20 +308,19 @@
 %{_datadir}/glib-2.0/schemas/org.gnome.hamster.gschema.xml
 %{_datadir}/help/C/hamster
 
+# Derive "next higher" GNOME version to be able to use "<" in Requires
+%define next_higher() %{lua: x = tonumber(rpm.expand('%1'))
+   if x < 4 then print(string.format("%.02f", x + 0.01)) else print(x + 1) end}
+
 %package -n gnome-shell-extension-hamster-time-tracker
-Version:        3.0.3~1%{ext_version}_%{ext_gnome_version}
+Version:        3.0.3~20_%{ext_version}_%{ext_gnome_version}
 Release:        0
 Summary:        Hamster time tracker extension for GNOME Shell
 License:        GPL-3.0-only
 Group:          System/GUI/GNOME
-Requires:       gnome-shell >= %{ext_gnome_version}
-%if 0%{?sle_version} >= 150200 && 0%{?suse_version} < 1550
-Requires:       gnome-shell < 3.36
-%endif
-%if 0%{?sle_version} < 150200 && 0%{?suse_version} < 1550
-Requires:       gnome-shell < 3.32
-%endif
 Requires:       %{name}
+Requires:       gnome-shell < %{next_higher %{ext_gnome_version}}
+Requires:       gnome-shell >= %{min_gnome_version}
 Supplements:    packageand(gnome-shell:%{name})
 # The predecessor package had a broken version number.
 Obsoletes:      gnome-shell-extension-hamster < 2.2.20.10.1

++++++ 0154-prefs.js-handle-different-return-values-of-Gtk.accel.patch ++++++
>From db317cfa815edfbd18f2d53b445f3b98a0da4bce Mon Sep 17 00:00:00 2001
From: Martin Wilck <mwi...@suse.com>
Date: Fri, 19 Aug 2022 12:23:58 +0200
Subject: [PATCH 154/161] prefs.js: handle different return values of
 Gtk.accelerator_parse()

See https://github.com/projecthamster/hamster-shell-extension/issues/350
---
 extension/prefs.js | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/extension/prefs.js b/extension/prefs.js
index e20b62c..86b2f5e 100644
--- a/extension/prefs.js
+++ b/extension/prefs.js
@@ -161,9 +161,15 @@ class HamsterSettingsWidget extends Gtk.Grid {
     }
 
     _onHotkeyChange(widget, bananas) {
-        //global.log(widget, bananas);
         let hotkey = widget.get_text();
-        let [key, mods] = Gtk.accelerator_parse(hotkey);
+        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);
-- 
2.41.0


++++++ 0155-Use-of-ellipsis-instead-of-tripledot.patch ++++++
>From 885f55e7deb44519ebcc99b46d006500a4a7e4a4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= <ep...@anotheragency.no>
Date: Fri, 13 Apr 2018 03:20:05 +0200
Subject: [PATCH 155/161] Use of ellipsis instead of tripledot

(cherry picked from commit f88d196fad8d047dfdbf894976ed94b47178de81)
---
 extension/widgets/ongoingFactEntry.js | 2 +-
 extension/widgets/panelWidget.js      | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/extension/widgets/ongoingFactEntry.js 
b/extension/widgets/ongoingFactEntry.js
index 00d24ac..6c23199 100644
--- a/extension/widgets/ongoingFactEntry.js
+++ b/extension/widgets/ongoingFactEntry.js
@@ -46,7 +46,7 @@ class OngoingFactEntry extends St.Entry {
             name: 'searchEntry',
             can_focus: true,
             track_hover: true,
-            hint_text: _("Enter activity..."),
+            hint_text: _("Enter activity…"),
             style_class: "search-entry"
         });
 
diff --git a/extension/widgets/panelWidget.js b/extension/widgets/panelWidget.js
index 41d9bf1..8aaaa85 100644
--- a/extension/widgets/panelWidget.js
+++ b/extension/widgets/panelWidget.js
@@ -82,7 +82,7 @@ class PanelWidget extends PanelMenu.Button {
         _actor.add_style_class_name('panel-status-button');
 
         this.panelLabel = new St.Label({
-            text: _("Loading..."),
+            text: _("Loading…"),
             y_align: Clutter.ActorAlign.CENTER
         });
 
-- 
2.41.0


++++++ 0156-Use-ellipsis-instead-of-triple-dot-.-in-translations.patch ++++++
>From d7e5ab04a6185380e0adad6f59cf4f6c348d4726 Mon Sep 17 00:00:00 2001
From: Martin Wilck <mwi...@suse.com>
Date: Fri, 21 May 2021 11:42:32 +0200
Subject: [PATCH 156/161] =?UTF-8?q?Use=20ellipsis=20(=E2=80=A6)=20instead?=
 =?UTF-8?q?=20of=20triple=20dot=20(...)=20in=20translations?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Based on previous work from ep...@anotheragency.no.

Resolves: https://github.com/projecthamster/hamster-shell-extension/pull/279
(cherry picked from commit f7c775f85287f06171b8bcbf90b3a7cf068d2f8a)
---
 data/locale/cs/LC_MESSAGES/hamster-shell-extension.po    | 4 ++--
 data/locale/de/LC_MESSAGES/hamster-shell-extension.po    | 6 +++---
 data/locale/es/LC_MESSAGES/hamster-shell-extension.po    | 8 ++++----
 data/locale/fr/LC_MESSAGES/hamster-shell-extension.po    | 4 ++--
 data/locale/messages.pot                                 | 4 ++--
 data/locale/nb_NO/LC_MESSAGES/hamster-shell-extension.po | 4 ++--
 data/locale/nl/LC_MESSAGES/hamster-shell-extension.po    | 8 ++++----
 data/locale/pl/LC_MESSAGES/hamster-shell-extension.po    | 8 ++++----
 data/locale/pt-BR/LC_MESSAGES/hamster-shell-extension.po | 8 ++++----
 data/locale/ru/LC_MESSAGES/hamster-shell-extension.po    | 8 ++++----
 data/locale/sv/LC_MESSAGES/hamster-shell-extension.po    | 4 ++--
 11 files changed, 33 insertions(+), 33 deletions(-)

diff --git a/data/locale/cs/LC_MESSAGES/hamster-shell-extension.po 
b/data/locale/cs/LC_MESSAGES/hamster-shell-extension.po
index 2ed5e2e..22dae47 100644
--- a/data/locale/cs/LC_MESSAGES/hamster-shell-extension.po
+++ b/data/locale/cs/LC_MESSAGES/hamster-shell-extension.po
@@ -24,11 +24,11 @@ msgid "Today's activities"
 msgstr "Dnešní aktivity"
 
 #: widgets/ongoingFactEntry.js:48
-msgid "Enter activity..."
+msgid "Enter activity…"
 msgstr "Zadejte aktivitu…"
 
 #: widgets/panelWidget.js:82
-msgid "Loading..."
+msgid "Loading…"
 msgstr "Načítání…"
 
 #: widgets/panelWidget.js:103
diff --git a/data/locale/de/LC_MESSAGES/hamster-shell-extension.po 
b/data/locale/de/LC_MESSAGES/hamster-shell-extension.po
index 013829e..6423a02 100644
--- a/data/locale/de/LC_MESSAGES/hamster-shell-extension.po
+++ b/data/locale/de/LC_MESSAGES/hamster-shell-extension.po
@@ -23,11 +23,11 @@ msgid "Today's activities"
 msgstr "Heutige Tätigkeiten"
 
 #: widgets/ongoingFactEntry.js:48
-msgid "Enter activity..."
-msgstr "Tätigkeit starten..."
+msgid "Enter activity…"
+msgstr "Tätigkeit starten…"
 
 #: widgets/panelWidget.js:82
-msgid "Loading..."
+msgid "Loading…"
 msgstr "Lade…"
 
 #: widgets/panelWidget.js:103
diff --git a/data/locale/es/LC_MESSAGES/hamster-shell-extension.po 
b/data/locale/es/LC_MESSAGES/hamster-shell-extension.po
index 69a5e7c..59923de 100644
--- a/data/locale/es/LC_MESSAGES/hamster-shell-extension.po
+++ b/data/locale/es/LC_MESSAGES/hamster-shell-extension.po
@@ -22,12 +22,12 @@ msgid "Today's activities"
 msgstr "Actividades de hoy"
 
 #: widgets/ongoingFactEntry.js:48
-msgid "Enter activity..."
-msgstr "Introduzca actividad..."
+msgid "Enter activity…"
+msgstr "Introduzca actividad…"
 
 #: widgets/panelWidget.js:82
-msgid "Loading..."
-msgstr "Cargando..."
+msgid "Loading…"
+msgstr "Cargando…"
 
 #: widgets/panelWidget.js:103
 msgid "Show Overview"
diff --git a/data/locale/fr/LC_MESSAGES/hamster-shell-extension.po 
b/data/locale/fr/LC_MESSAGES/hamster-shell-extension.po
index 7150be1..7284da2 100644
--- a/data/locale/fr/LC_MESSAGES/hamster-shell-extension.po
+++ b/data/locale/fr/LC_MESSAGES/hamster-shell-extension.po
@@ -24,11 +24,11 @@ msgid "Today's activities"
 msgstr "Activités du jour"
 
 #: widgets/ongoingFactEntry.js:48
-msgid "Enter activity..."
+msgid "Enter activity…"
 msgstr "Entrez l'activité…"
 
 #: widgets/panelWidget.js:82
-msgid "Loading..."
+msgid "Loading…"
 msgstr "Chargement…"
 
 #: widgets/panelWidget.js:103
diff --git a/data/locale/messages.pot b/data/locale/messages.pot
index a3ae48c..7ff2e98 100644
--- a/data/locale/messages.pot
+++ b/data/locale/messages.pot
@@ -26,11 +26,11 @@ msgid "Today's activities"
 msgstr ""
 
 #: extension/widgets/ongoingFactEntry.js:51
-msgid "Enter activity..."
+msgid "Enter activity…"
 msgstr ""
 
 #: extension/widgets/panelWidget.js:85
-msgid "Loading..."
+msgid "Loading…"
 msgstr ""
 
 #: extension/widgets/panelWidget.js:106
diff --git a/data/locale/nb_NO/LC_MESSAGES/hamster-shell-extension.po 
b/data/locale/nb_NO/LC_MESSAGES/hamster-shell-extension.po
index c2d20b5..1da4760 100644
--- a/data/locale/nb_NO/LC_MESSAGES/hamster-shell-extension.po
+++ b/data/locale/nb_NO/LC_MESSAGES/hamster-shell-extension.po
@@ -25,11 +25,11 @@ msgid "Today's activities"
 msgstr ""
 
 #: extension/widgets/ongoingFactEntry.js:51
-msgid "Enter activity..."
+msgid "Enter activity…"
 msgstr ""
 
 #: extension/widgets/panelWidget.js:85
-msgid "Loading..."
+msgid "Loading…"
 msgstr ""
 
 #: extension/widgets/panelWidget.js:106
diff --git a/data/locale/nl/LC_MESSAGES/hamster-shell-extension.po 
b/data/locale/nl/LC_MESSAGES/hamster-shell-extension.po
index 2095166..3eb087d 100644
--- a/data/locale/nl/LC_MESSAGES/hamster-shell-extension.po
+++ b/data/locale/nl/LC_MESSAGES/hamster-shell-extension.po
@@ -21,12 +21,12 @@ msgid "Today's activities"
 msgstr "Huidige activiteiten"
 
 #: widgets/ongoingFactEntry.js:48
-msgid "Enter activity..."
-msgstr "Activiteit starten..."
+msgid "Enter activity…"
+msgstr "Activiteit starten…"
 
 #: widgets/panelWidget.js:82
-msgid "Loading..."
-msgstr "Laden..."
+msgid "Loading…"
+msgstr "Laden…"
 
 #: widgets/panelWidget.js:103
 msgid "Show Overview"
diff --git a/data/locale/pl/LC_MESSAGES/hamster-shell-extension.po 
b/data/locale/pl/LC_MESSAGES/hamster-shell-extension.po
index 72f35c1..95c103c 100644
--- a/data/locale/pl/LC_MESSAGES/hamster-shell-extension.po
+++ b/data/locale/pl/LC_MESSAGES/hamster-shell-extension.po
@@ -22,12 +22,12 @@ msgid "Today's activities"
 msgstr "Dzisiejsze aktywności"
 
 #: widgets/ongoingFactEntry.js:48
-msgid "Enter activity..."
-msgstr "Wpisz aktywność..."
+msgid "Enter activity…"
+msgstr "Wpisz aktywność…"
 
 #: widgets/panelWidget.js:82
-msgid "Loading..."
-msgstr "Ładowanie..."
+msgid "Loading…"
+msgstr "Ładowanie…"
 
 #: widgets/panelWidget.js:103
 msgid "Show Overview"
diff --git a/data/locale/pt-BR/LC_MESSAGES/hamster-shell-extension.po 
b/data/locale/pt-BR/LC_MESSAGES/hamster-shell-extension.po
index 538d0d4..ffec6e6 100644
--- a/data/locale/pt-BR/LC_MESSAGES/hamster-shell-extension.po
+++ b/data/locale/pt-BR/LC_MESSAGES/hamster-shell-extension.po
@@ -20,12 +20,12 @@ msgid "Today's activities"
 msgstr "Atividades de hoje"
 
 #: widgets/ongoingFactEntry.js:48
-msgid "Enter activity..."
-msgstr "Digite a atividade..."
+msgid "Enter activity…"
+msgstr "Digite a atividade…"
 
 #: widgets/panelWidget.js:82
-msgid "Loading..."
-msgstr "Carregando..."
+msgid "Loading…"
+msgstr "Carregando…"
 
 #: widgets/panelWidget.js:103
 msgid "Show Overview"
diff --git a/data/locale/ru/LC_MESSAGES/hamster-shell-extension.po 
b/data/locale/ru/LC_MESSAGES/hamster-shell-extension.po
index eea96ef..637869d 100644
--- a/data/locale/ru/LC_MESSAGES/hamster-shell-extension.po
+++ b/data/locale/ru/LC_MESSAGES/hamster-shell-extension.po
@@ -22,12 +22,12 @@ msgid "Today's activities"
 msgstr "Сегодня"
 
 #: widgets/ongoingFactEntry.js:48
-msgid "Enter activity..."
-msgstr "Занятие..."
+msgid "Enter activity…"
+msgstr "Занятие…"
 
 #: widgets/panelWidget.js:82
-msgid "Loading..."
-msgstr "Загрузка..."
+msgid "Loading…"
+msgstr "Загрузка…"
 
 #: widgets/panelWidget.js:103
 msgid "Show Overview"
diff --git a/data/locale/sv/LC_MESSAGES/hamster-shell-extension.po 
b/data/locale/sv/LC_MESSAGES/hamster-shell-extension.po
index abed02d..8145736 100644
--- a/data/locale/sv/LC_MESSAGES/hamster-shell-extension.po
+++ b/data/locale/sv/LC_MESSAGES/hamster-shell-extension.po
@@ -25,11 +25,11 @@ msgid "Today's activities"
 msgstr ""
 
 #: extension/widgets/ongoingFactEntry.js:51
-msgid "Enter activity..."
+msgid "Enter activity…"
 msgstr ""
 
 #: extension/widgets/panelWidget.js:85
-msgid "Loading..."
+msgid "Loading…"
 msgstr ""
 
 #: extension/widgets/panelWidget.js:106
-- 
2.41.0


++++++ 0157-Add-Gnome-Shell-43-compatibility.patch ++++++
>From 9983c451e366c72f73de46901ccc12663be72743 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jes=C3=BAs=20Soto?= <jesus.s...@canonical.com>
Date: Mon, 19 Sep 2022 11:15:14 +0200
Subject: [PATCH 157/161] Add Gnome Shell 43 compatibility

(cherry picked from commit 2919d4f4ca59722bb23c5bbce3fe8e3b12dcef2b)
---
 data/metadata.json.in | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/data/metadata.json.in b/data/metadata.json.in
index 61f6731..78eef73 100644
--- a/data/metadata.json.in
+++ b/data/metadata.json.in
@@ -15,7 +15,8 @@
         "3.38",
         "40",
         "41",
-       "42"
+        "42",
+        "43"
     ],
     "url": "https://github.com/projecthamster/hamster-shell-extension.git";,
     "uuid": @UUID@
-- 
2.41.0


++++++ 0158-Add-basic-gnome-44-support.patch ++++++
>From 9a8a80acfb19b131ae13a01b80939448ae666fc5 Mon Sep 17 00:00:00 2001
From: "J. Nathanael Philipp" <nathan...@philipp.land>
Date: Tue, 14 Mar 2023 13:19:00 +0100
Subject: [PATCH 158/161] Add basic gnome 44 support.

(cherry picked from commit 4e8fdeaab6c79f0538e22be14f41d9237282f9fe)
---
 data/metadata.json.in | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/data/metadata.json.in b/data/metadata.json.in
index 78eef73..162a7cf 100644
--- a/data/metadata.json.in
+++ b/data/metadata.json.in
@@ -16,7 +16,8 @@
         "40",
         "41",
         "42",
-        "43"
+        "43",
+        "44"
     ],
     "url": "https://github.com/projecthamster/hamster-shell-extension.git";,
     "uuid": @UUID@
-- 
2.41.0


++++++ 0159-Report-errors-in-DBUS-calls.patch ++++++
>From 21db3e1f6446b1a2c298ae7859ede206465edafa Mon Sep 17 00:00:00 2001
From: Matthijs Kooijman <matth...@stdin.nl>
Date: Sun, 30 Apr 2023 23:02:42 +0200
Subject: [PATCH 159/161] Report errors in DBUS calls

This catches all errors in DBUS calls to hamster and passes them to
a new reportError method, which logs them and creates a notification to
also inform the user.

(cherry picked from commit b957a4975f65ae41ddbd476aedea6f0888f009d2)
---
 extension/extension.js                 | 18 +++++++++++++++
 extension/widgets/ongoingFactEntry.js  |  1 +
 extension/widgets/panelWidget.js       | 32 ++++++++++++++++++++------
 extension/widgets/todaysFactsWidget.js |  4 ++++
 4 files changed, 48 insertions(+), 7 deletions(-)

diff --git a/extension/extension.js b/extension/extension.js
index d91e719..3964c6d 100644
--- a/extension/extension.js
+++ b/extension/extension.js
@@ -210,12 +210,30 @@ class Controller {
 
         this.runningActivitiesQuery = true;
         this.apiProxy.GetActivitiesRemote("", function([response], err) {
+            this.reportIfError(_("Failed to get activities"), err);
             this.runningActivitiesQuery = false;
             this.activities = response;
             // global.log('ACTIVITIES HAMSTER: ', this.activities);
         }.bind(this));
     }
 
+    /**
+     * Report an error if one is passed. If error is falsey (e.g.
+     * null), nothing is reported.
+     */
+    reportIfError(msg, error) {
+        if (error) {
+            // Use toString, error can be a string, exception, etc.
+            global.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());
+            // Close menu so notification can be seen
+            if (this.panelWidget)
+                this.panelWidget.close_menu();
+        }
+    }
+
     /**
      * Place the actual extension wi
      * get in the right place according to settings.
diff --git a/extension/widgets/ongoingFactEntry.js 
b/extension/widgets/ongoingFactEntry.js
index 6c23199..cce4929 100644
--- a/extension/widgets/ongoingFactEntry.js
+++ b/extension/widgets/ongoingFactEntry.js
@@ -71,6 +71,7 @@ class OngoingFactEntry extends St.Entry {
     _onEntryActivated() {
         let text = this.get_text();
         this._controller.apiProxy.AddFactRemote(text, 0, 0, false, 
function(response, error) {
+            this._controller.reportIfError(_("Failed to add activity"), error);
             // not interested in the new id - this shuts up the warning
        }.bind(this));
         this.set_text('');
diff --git a/extension/widgets/panelWidget.js b/extension/widgets/panelWidget.js
index 8aaaa85..0d9e870 100644
--- a/extension/widgets/panelWidget.js
+++ b/extension/widgets/panelWidget.js
@@ -178,10 +178,8 @@ class PanelWidget extends PanelMenu.Button {
 
                let facts = [];
 
-        // [FIXME]
-        // This seems a rather naive way to handle potential errors.
                if (err) {
-                   log(err);
+                    this._controller.reportIfError(_("Failed to get 
activities"), err);
                } else if (response.length > 0) {
                    facts = Stuff.fromDbusFacts(response);
                }
@@ -207,6 +205,12 @@ class PanelWidget extends PanelMenu.Button {
         this.menu.toggle();
     }
 
+    /**
+     * Close the 'popup menu'
+     */
+    close_menu() {
+        this.menu.close();
+    }
 
     /**
      * Update the rendering of the PanelWidget in the panel itself.
@@ -286,7 +290,9 @@ class PanelWidget extends PanelMenu.Button {
                                     now.getMinutes(),
                                     now.getSeconds());
         epochSeconds = Math.floor(epochSeconds / 1000);
-        this._controller.apiProxy.StopTrackingRemote(GLib.Variant.new('i', 
[epochSeconds]));
+        this._controller.apiProxy.StopTrackingRemote(GLib.Variant.new('i', 
[epochSeconds]), function(response, err) {
+            this._controller.reportIfError(_("Failed to stop tracking"), err);
+        }.bind(this));
     }
 
     /**
@@ -295,7 +301,11 @@ class PanelWidget extends PanelMenu.Button {
      * @callback panelWidget~_onOpenOverview
      */
     _onOpenOverview() {
-        this._controller.windowsProxy.overviewSync();
+        try {
+            this._controller.windowsProxy.overviewSync();
+        } catch (error) {
+            this._controller.reportIfError(_("Failed to open overview 
window"), error);
+        }
     }
 
     /**
@@ -304,7 +314,11 @@ class PanelWidget extends PanelMenu.Button {
      * @callback panelWidget~_onOpenAddFact
      */
     _onOpenAddFact() {
-        this._controller.windowsProxy.editSync(GLib.Variant.new('i', [0]));
+        try {
+            this._controller.windowsProxy.editSync(GLib.Variant.new('i', [0]));
+        } catch (error) {
+            this._controller.reportIfError(_("Failed to open add window"), 
error);
+        }
     }
 
     /**
@@ -315,6 +329,10 @@ class PanelWidget extends PanelMenu.Button {
      * Note: This will open the GUI settings, not the extension settings!
      */
     _onOpenSettings() {
-        this._controller.windowsProxy.preferencesSync();
+        try {
+            this._controller.windowsProxy.preferencesSync();
+        } catch (error) {
+            this._controller.reportIfError(_("Failed to open settings 
window"), error);
+        }
     }
 });
diff --git a/extension/widgets/todaysFactsWidget.js 
b/extension/widgets/todaysFactsWidget.js
index 9f327f6..778f964 100644
--- a/extension/widgets/todaysFactsWidget.js
+++ b/extension/widgets/todaysFactsWidget.js
@@ -26,6 +26,9 @@ 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;
 
@@ -114,6 +117,7 @@ class TodaysFactsWidget extends St.ScrollView {
 
                /* jshint validthis: true */
                 controller.apiProxy.AddFactRemote(factStr, 0, 0, false, 
function(response, err) {
+                    controller.reportIfError(_("Failed to continue activity"), 
err);
                     // not interested in the new id - this shuts up the warning
                 }.bind(this));
                 menu.close();
-- 
2.41.0


++++++ 0160-Report-errors-on-initial-DBUS-connection.patch ++++++
>From c067f51edaf9e6a4caba12a93b60809b49a6edf1 Mon Sep 17 00:00:00 2001
From: Matthijs Kooijman <matth...@stdin.nl>
Date: Sun, 30 Apr 2023 23:17:37 +0200
Subject: [PATCH 160/161] Report errors on initial DBUS connection

When either dbus proxy cannot be created (i.e. hamster is not running
and cannot be autostarted), report that to the user.

This only reports these errors, not other handling is changed (on error,
the proxy objects passed will be undefined or null, so further
initialization of the extension should already be skipped). Making error
handling more robust (and e.g. recovering of hamster is started later)
would be nice, but is too complex to handle now.

(cherry picked from commit 22ba1e62b6b7ae481bfb1d703bab4feac895c9c4)
---
 extension/extension.js | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/extension/extension.js b/extension/extension.js
index 3964c6d..97e421e 100644
--- a/extension/extension.js
+++ b/extension/extension.js
@@ -120,13 +120,15 @@ class Controller {
     enable() {
         this.shouldEnable = true;
         new ApiProxy(Gio.DBus.session, 'org.gnome.Hamster', 
'/org/gnome/Hamster',
-                     function(proxy) {
+                     function(proxy, err) {
+                         this.reportIfError(_("Connection to DBUS service 
failed"), err);
                         this.apiProxy = proxy;
                         this.deferred_enable();
                      }.bind(this));
         new WindowsProxy(Gio.DBus.session, "org.gnome.Hamster.WindowServer",
                         "/org/gnome/Hamster/WindowServer",
-                        function(proxy) {
+                        function(proxy, err) {
+                             this.reportIfError(_("Connection to DBUS window 
service failed"), err);
                             this.windowsProxy = proxy;
                             this.deferred_enable();
                         }.bind(this));
-- 
2.41.0


++++++ 0161-Gracefully-handle-hamster-DBUS-disappearing.patch ++++++
>From 42fd7b7328cd9f0d866f0552c1d11114dad332da Mon Sep 17 00:00:00 2001
From: Matthijs Kooijman <matth...@stdin.nl>
Date: Sun, 30 Apr 2023 23:54:54 +0200
Subject: [PATCH 161/161] Gracefully handle hamster DBUS disappearing

Previously, if this happened the extension would be disabled using the
`disable()` method. However, this caused an error (because disable was
called twice, once for each DBUS service) and gnome-shell would not be
told that the extension was disabled, so the user could not re-enable
it.

With this commit, when the apiProxy disappears, the panel widget is
hidden. When it reappears, the panel widget is shown again.

Note that there are still some rough edges, but this change is mostly
intended to simplify hamster development - you can now restart hamster
after making changes (or to switch between installed and source
versions) and still have the extension work without needing to restart
gnome-shell (which means logging out with wayland).

This commit does not attempt to handle windowsProxy disappearing, since
keeping track of the status of both services can get messy quickly.
Also, now you can restart just the api service, and leave the windows
service to be autostarted when needed if you want (and if autostart
fails, the user will be shown a proper error message).

Also, this does not disable the keybindings, so pressing that while the
DBUS proxy is down will probably still allow opening up the menu (but
that's ok - making any changes will just autostart hamster again, or
show an error message otherwise).

(cherry picked from commit 6d9807c370198b016a4c628011042f487d0a355a)
---
 extension/extension.js | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/extension/extension.js b/extension/extension.js
index 97e421e..8ece31e 100644
--- a/extension/extension.js
+++ b/extension/extension.js
@@ -148,23 +148,21 @@ class Controller {
 
         // Callbacks that handle appearing/vanishing dbus services.
         function apiProxy_appeared_callback() {
+            if (this.shouldEnable)
+                this.panelWidget.show();
         }
 
         function apiProxy_vanished_callback() {
            /* jshint validthis: true */
-            global.log(_("hamster-shell-extension: 'hamster-service' not 
running. Shutting down."));
-            Main.notify(_("hamster-shell-extension: 'hamster-service' not 
running. Shutting down."));
-            this.disable();
+            this.reportIfError(_("DBUS proxy disappeared"), _("Disabling 
extension until it comes back"));
+            if (this.shouldEnable)
+                this.panelWidget.hide();
         }
 
         function windowsProxy_appeared_callback() {
         }
 
         function windowsProxy_vanished_callback() {
-           /* jshint validthis: true */
-            global.log(_("hamster-shell-extension: 'hamster-windows-service' 
not running. Shutting down."));
-            Main.notify(_("hamster-shell-extension: 'hamster-windows-service' 
not running. Shutting down."));
-            this.disable();
         }
 
         // Set-up watchers that watch for required dbus services.
-- 
2.41.0


++++++ _service ++++++
--- /var/tmp/diff_new_pack.ACzVzC/_old  2023-06-20 16:48:54.455559469 +0200
+++ /var/tmp/diff_new_pack.ACzVzC/_new  2023-06-20 16:48:54.459559493 +0200
@@ -4,8 +4,8 @@
     <param name="url">https://github.com/projecthamster/hamster.git</param>
     <param name="filename">hamster-time-tracker</param>
     <!-- <param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param> -->
-    <param name="version">3.0.3~1</param>
-    <param name="revision">19d16009</param>
+    <param name="version">3.0.3~20</param>
+    <param name="revision">d10ae12</param>
     <!-- <param name="versionrewrite-pattern">v(.*)[+]0$</param>
          <param name="versionrewrite-replacement">\1</param> -->
     <param name="changesgenerate">enable</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.ACzVzC/_old  2023-06-20 16:48:54.483559637 +0200
+++ /var/tmp/diff_new_pack.ACzVzC/_new  2023-06-20 16:48:54.487559661 +0200
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/projecthamster/hamster.git</param>
-              <param 
name="changesrevision">19d160090de30e756bdc3122ff935bdaa86e2843</param></service></servicedata>
+              <param 
name="changesrevision">d10ae12cde0370233189574d255c831e3eb267ab</param></service></servicedata>
 (No newline at EOF)
 

++++++ hamster-time-tracker-3.0.3~1.tar.xz -> 
hamster-time-tracker-3.0.3~20.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hamster-time-tracker-3.0.3~1/.github/workflows/artifact-links.yml 
new/hamster-time-tracker-3.0.3~20/.github/workflows/artifact-links.yml
--- old/hamster-time-tracker-3.0.3~1/.github/workflows/artifact-links.yml       
1970-01-01 01:00:00.000000000 +0100
+++ new/hamster-time-tracker-3.0.3~20/.github/workflows/artifact-links.yml      
2023-04-29 20:31:17.000000000 +0200
@@ -0,0 +1,30 @@
+# This adds a comment to a PR with a link to any build artifacts. Because build
+# artifacts are not available until a workflow is completed, this is done in a
+# second workflow that triggers on completion of the workflow that builds the
+# artifacts.
+name: Linking to artifacts in PR
+on:
+  workflow_run:
+    workflows: ["Testing"]
+    types: [completed]
+
+jobs:
+  artifacts-url-comments:
+    name: Add artifact links to PRs
+    runs-on: ubuntu-20.04
+    if: ${{ github.event.workflow_run.event == 'pull_request' }}
+    steps:
+      # This uses a third-party action that handles figuring out the
+      # pull request to comment on (which is no longer easily available
+      # in a followup workflow) and formatting the comment.
+      - name: Add artifact links to PR and issues
+        uses: tonyhallett/artifacts-url-comments@v1.1.0
+        env:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+        with:
+          prefix: "Automatically generated build artifacts for commit ${{ 
github.event.workflow_run.head_sha }} (note: these links will expire after some 
time):\n"
+          format: " - {name}: [:arrow_double_down: Download]({url})"
+          # This adds a hline to terminate the artifact list, just
+          # newlines should work, but it seems they are eaten
+          # somewhere...
+          suffix: "---\n\nTo test this PR, download and unzip the flatpak 
application above and then install with:\n\n    flatpak install 
Hamster.flatpak\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hamster-time-tracker-3.0.3~1/.github/workflows/testing.yml 
new/hamster-time-tracker-3.0.3~20/.github/workflows/testing.yml
--- old/hamster-time-tracker-3.0.3~1/.github/workflows/testing.yml      
2021-06-16 10:56:56.000000000 +0200
+++ new/hamster-time-tracker-3.0.3~20/.github/workflows/testing.yml     
2023-04-29 20:31:17.000000000 +0200
@@ -16,10 +16,15 @@
       fail-fast: false
       matrix:
         include:
-          # Test 3.5, which is our minimum version, on 16.04 since the
-          # latest Ubuntu does not have it.
-          - os: ubuntu-16.04
-            python-version: 3.5
+          # This tests uses the oldest Ubuntu and its oldest Python
+          # version, to get as close to our minimum required version as
+          # possible. This does mean that we will not catch changes to
+          # the code that unintentionally reaise the required python
+          # version, but there's no easy way to run an older python
+          # version (without having to install all or dependencies from
+          # source) it seems.
+          - os: ubuntu-20.04
+            python-version: 3.8
           # On the latest ubuntu, just test the default 3.x version.
           - os: ubuntu-latest
             python-version: 3
@@ -33,16 +38,7 @@
           # Install a specific python version as configured
           PACKAGES="$PACKAGES python${{matrix.python-version}}"
           # Normal dependencies
-          PACKAGES="$PACKAGES gettext intltool python3-gi python3-cairo 
python3-dbus python3-xdg libglib2.0-dev libglib2.0-bin gir1.2-gtk-3.0"
-          # The gtk-update-icon-cache used to live in libgtk2.0-bin,
-          # but was moved to its own package. Similar for distutils
-          # (included by default in python stdlib).
-          if [ "${{ matrix.os }}" == "ubuntu-16.04" ]; then
-            PACKAGES="$PACKAGES libgtk2.0-bin"
-          else
-            PACKAGES="$PACKAGES gtk-update-icon-cache"
-            PACKAGES="$PACKAGES python3-distutils"
-          fi
+          PACKAGES="$PACKAGES gettext intltool python3-gi python3-cairo 
python3-gi-cairo python3-distutils python3-dbus python3-xdg libglib2.0-dev 
libglib2.0-bin gir1.2-gtk-3.0 gtk-update-icon-cache"
           # For dbus-launch
           PACKAGES="$PACKAGES dbus-x11"
 
@@ -63,14 +59,14 @@
 
   flake8:
     name: Run code linting and checks
-    runs-on: ubuntu-latest
+    runs-on: ubuntu-20.04
     steps:
       - name: Prepare repo
         uses: actions/checkout@v2
       - name: Set up Python
         uses: actions/setup-python@v1
         with:
-          python-version: '3.5'
+          python-version: '3.6'
       - name: Install flake8
         run: |
           pip install flake8
@@ -99,13 +95,13 @@
       - name: Install GNOME SDK for flatpak
         run: |
           flatpak remote-add --user --if-not-exists --from flathub 
https://flathub.org/repo/flathub.flatpakrepo
-          flatpak install --user -y flathub org.gnome.Platform//3.36 
org.gnome.Sdk//3.36
+          flatpak install --user -y flathub org.gnome.Platform//41 
org.gnome.Sdk//41
       - name: Build application
         run: |
-          flatpak-builder --repo=build/flatpak/repo build/flatpak/tmp 
org.gnome.Hamster.json
+          flatpak-builder --repo=build/flatpak/repo build/flatpak/tmp 
org.gnome.Hamster.yml
       - name: Run tests inside sandbox
         run: |
-          dbus-launch flatpak-builder --run build/flatpak/tmp 
org.gnome.Hamster.json python3 -m unittest
+          dbus-launch flatpak-builder --run build/flatpak/tmp 
org.gnome.Hamster.yml python3 -m unittest
       - name: Export bundle and try to install it
         run: |
           mkdir -p dist
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hamster-time-tracker-3.0.3~1/README.md 
new/hamster-time-tracker-3.0.3~20/README.md
--- old/hamster-time-tracker-3.0.3~1/README.md  2021-06-16 10:56:56.000000000 
+0200
+++ new/hamster-time-tracker-3.0.3~20/README.md 2023-04-29 20:31:17.000000000 
+0200
@@ -64,6 +64,7 @@
 (or graphical package installer).
 
 ##### Snap
+
 Easy installation on any distribution supporting snap:  
 https://snapcraft.io/hamster-snap
 
@@ -77,18 +78,16 @@
 at runtime. Permissions are limited to what the application really needs to
 function properly.
 
-If you downloaded the file with the Hamster bundle (ending in ``.flatpak``), 
you
-can directly install it with:
+You can install the Hamster Flatpak from 
[Flathub](https://flathub.org/apps/details/org.gnome.Hamster) via:
 
 ```bash
-flatpak install --reinstall Hamster.flatpak
+flatpak install flathub org.gnome.Hamster
 ```
 
-If you would like to install Hamster only for your user, please pass the
-``--user`` option to the above command.
+If you would like to install Hamster only for your user, simply pass the
+`--user` option to the above command.
 
-After installation, if you need to invoke Hamster from the command line,
-you can do so with:
+To invoke Hamster from the command line, use:
 
 ```bash
 flatpak run org.gnome.Hamster [args...]
@@ -97,7 +96,7 @@
 ### Install from sources
 
 #### Dependencies
-Hamster needs python 3.5 or newer (not included in below install
+Hamster needs python 3.6 or newer (not included in below install
 commands). Older versions are not supported.
 
 ##### Debian-based
@@ -105,7 +104,7 @@
 ###### Ubuntu (tested in 19.04 and 18.04)
 
 ```bash
-sudo apt install gettext intltool python3-gi python3-cairo python3-distutils 
python3-dbus python3-xdg libglib2.0-dev libglib2.0-bin gir1.2-gtk-3.0 
gtk-update-icon-cache
+sudo apt install gettext intltool python3-gi python3-cairo python3-gi-cairo 
python3-distutils python3-dbus python3-xdg libglib2.0-dev libglib2.0-bin 
gir1.2-gtk-3.0 gtk-update-icon-cache
 # and for documentation
 sudo apt install itstool yelp
 ```
@@ -171,7 +170,7 @@
 
 ```bash
 flatpak-builder --force-clean --user --install \
-    build/flatpak org.gnome.Hamster.json
+    build/flatpak org.gnome.Hamster.yml
 ```
 
 This creates a temporary flatpack build folder in the ``build/flatpak``
@@ -243,7 +242,7 @@
 To run the tests inside the flatpak, use:
 
 ```bash
-flatpak-builder --run build/flatpak org.gnome.Hamster.json \
+flatpak-builder --run build/flatpak org.gnome.Hamster.yml \
     python3 -m unittest
 ```
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hamster-time-tracker-3.0.3~1/data/report_template.html 
new/hamster-time-tracker-3.0.3~20/data/report_template.html
--- old/hamster-time-tracker-3.0.3~1/data/report_template.html  2021-06-16 
10:56:56.000000000 +0200
+++ new/hamster-time-tracker-3.0.3~20/data/report_template.html 2023-04-29 
20:31:17.000000000 +0200
@@ -260,25 +260,6 @@
                 return false;
             })
 
-            $("#show_details").click(function() {
-                if ($(this).attr("checked")) {
-                    $(".by_date_row").show();
-                } else {
-                    $(".by_date_row").hide();
-                }
-
-            })
-
-            $("#show_totals").click(function() {
-                if ($(this).attr("checked")) {
-                    $(".by_date_total_row").show();
-                } else {
-                    $(".by_date_total_row").hide();
-                }
-
-
-            })
-
             populateFactTable();
 
 
@@ -297,13 +278,13 @@
 
             // determine if we will be doing any internal counting
             var keys = [];
-            if ($("#show_activities").attr("checked"))
+            if ($("#show_activities")[0].checked)
                 keys.push("activity");
 
-            if ($("#show_categories").attr("checked"))
+            if ($("#show_categories")[0].checked)
                 keys.push("category");
 
-            if ($("#show_tags").attr("checked"))
+            if ($("#show_tags")[0].checked)
                 keys.push("tags");
 
 
@@ -404,13 +385,13 @@
                 <div class="by_day_controls">
                     $show_prompt
                     <input type="checkbox" id="show_activities" 
checked="checked"></input>
-                    <label for="show_details">$activity_totals_heading</label>
+                    <label 
for="show_activities">$activity_totals_heading</label>
 
                     <input type="checkbox" id="show_categories" 
checked="checked"></input>
-                    <label for="show_totals">$category_totals_heading</label>
+                    <label 
for="show_categories">$category_totals_heading</label>
 
                     <input type="checkbox" id="show_tags" 
checked="checked"></input>
-                    <label for="show_totals">$tag_totals_heading</label>
+                    <label for="show_tags">$tag_totals_heading</label>
                 </div>
 
                 <table id="date_facts"></table>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hamster-time-tracker-3.0.3~1/org.gnome.Hamster.json 
new/hamster-time-tracker-3.0.3~20/org.gnome.Hamster.json
--- old/hamster-time-tracker-3.0.3~1/org.gnome.Hamster.json     2021-06-16 
10:56:56.000000000 +0200
+++ new/hamster-time-tracker-3.0.3~20/org.gnome.Hamster.json    1970-01-01 
01:00:00.000000000 +0100
@@ -1,68 +0,0 @@
-{
-    "app-id": "org.gnome.Hamster",
-    "runtime": "org.gnome.Platform",
-    "runtime-version": "3.36",
-    "sdk": "org.gnome.Sdk",
-    "command": "hamster",
-    "modules": [
-        {
-            "name": "intltool",
-            "sources": [
-                {
-                    "type": "archive",
-                    "url": 
"https://launchpad.net/intltool/trunk/0.51.0/+download/intltool-0.51.0.tar.gz";,
-                    "md5": "12e517cac2b57a0121cda351570f1e63"
-                }
-            ],
-            "cleanup": [ "*" ]
-        },
-        {
-            "name": "python3-hamster-dependencies",
-            "buildsystem": "simple",
-            "ensure-writable": [
-                "easy-install.pth",
-                "setuptools.pth"
-            ],
-            "build-commands": [
-                  "pip3 install --no-index --find-links=\"file://${PWD}\" 
--prefix=${FLATPAK_DEST} dbus-python pyxdg"
-            ],
-            "sources": [
-                {
-                    "type": "file",
-                    "url": 
"https://files.pythonhosted.org/packages/62/7e/d4fb56a1695fa65da0c8d3071855fa5408447b913c58c01933c2f81a269a/dbus-python-1.2.16.tar.gz";,
-                    "sha256": 
"11238f1d86c995d8aed2e22f04a1e3779f0d70e587caffeab4857f3c662ed5a4"
-                },
-                {
-                    "type": "file",
-                    "url": 
"https://files.pythonhosted.org/packages/39/03/12eb9062f43adb94e30f366743cb5c83fd15fef026500cd4de42c7c12280/pyxdg-0.26-py2.py3-none-any.whl";,
-                    "sha256": 
"1948ff8e2db02156c0cccd2529b43c0cff56ebaa71f5f021bbd755bc1419190e"
-                }
-            ]
-        },
-        {
-            "name": "hamster",
-            "buildsystem": "simple",
-            "builddir": true,
-            "prefix": "/app",
-            "build-commands": [
-                "./waf configure --prefix=${FLATPAK_DEST}",
-                "./waf build",
-                "./waf install"
-            ],
-            "sources": [
-                {
-                        "type": "dir",
-                        "path": "."
-                }
-            ]
-        }
-    ],
-    "finish-args": [
-        "--socket=wayland",
-        "--socket=fallback-x11",
-        "--filesystem=xdg-documents",
-        "--own-name=org.gnome.Hamster",
-        "--own-name=org.gnome.Hamster.GUI",
-        "--own-name=org.gnome.Hamster.WindowServer"
-    ]
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hamster-time-tracker-3.0.3~1/org.gnome.Hamster.yml 
new/hamster-time-tracker-3.0.3~20/org.gnome.Hamster.yml
--- old/hamster-time-tracker-3.0.3~1/org.gnome.Hamster.yml      1970-01-01 
01:00:00.000000000 +0100
+++ new/hamster-time-tracker-3.0.3~20/org.gnome.Hamster.yml     2023-04-29 
20:31:17.000000000 +0200
@@ -0,0 +1,47 @@
+---
+app-id: org.gnome.Hamster
+runtime: org.gnome.Platform
+runtime-version: '41'
+sdk: org.gnome.Sdk
+command: hamster
+modules:
+- name: intltool
+  sources:
+  - type: archive
+    url: 
https://launchpad.net/intltool/trunk/0.51.0/+download/intltool-0.51.0.tar.gz
+    md5: 12e517cac2b57a0121cda351570f1e63
+  cleanup:
+  - "*"
+- name: python3-hamster-dependencies
+  buildsystem: simple
+  ensure-writable:
+  - easy-install.pth
+  - setuptools.pth
+  build-commands:
+  - pip3 install --no-index --find-links="file://${PWD}" 
--prefix=${FLATPAK_DEST}
+    dbus-python pyxdg
+  sources:
+  - type: file
+    url: 
https://dbus.freedesktop.org/releases/dbus-python/dbus-python-1.2.18.tar.gz
+    sha256: 92bdd1e68b45596c833307a5ff4b217ee6929a1502f5341bae28fd120acf7260
+  - type: file
+    url: 
https://files.pythonhosted.org/packages/ea/13/de39ddf4f9f9cea0c7684cd54a50d79c97ea99c9f6aed798fd13d0bd4609/pyxdg-0.27-py2.py3-none-any.whl
+    sha256: 2d6701ab7c74bbab8caa6a95e0a0a129b1643cf6c298bf7c569adec06d0709a0
+- name: hamster
+  buildsystem: simple
+  builddir: true
+  prefix: "/app"
+  build-commands:
+  - "./waf configure --prefix=${FLATPAK_DEST}"
+  - "./waf build"
+  - "./waf install"
+  sources:
+  - type: dir
+    path: "."
+finish-args:
+- "--socket=wayland"
+- "--socket=fallback-x11"
+- "--filesystem=xdg-documents"
+- "--own-name=org.gnome.Hamster"
+- "--own-name=org.gnome.Hamster.GUI"
+- "--own-name=org.gnome.Hamster.WindowServer"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hamster-time-tracker-3.0.3~1/po/LINGUAS 
new/hamster-time-tracker-3.0.3~20/po/LINGUAS
--- old/hamster-time-tracker-3.0.3~1/po/LINGUAS 2021-06-16 10:56:56.000000000 
+0200
+++ new/hamster-time-tracker-3.0.3~20/po/LINGUAS        2023-04-29 
20:31:17.000000000 +0200
@@ -25,6 +25,7 @@
 gu
 he
 hi
+hr
 hu
 id
 it
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hamster-time-tracker-3.0.3~1/po/hr.po 
new/hamster-time-tracker-3.0.3~20/po/hr.po
--- old/hamster-time-tracker-3.0.3~1/po/hr.po   1970-01-01 01:00:00.000000000 
+0100
+++ new/hamster-time-tracker-3.0.3~20/po/hr.po  2023-04-29 20:31:17.000000000 
+0200
@@ -0,0 +1,921 @@
+# Croatian translation of hamster-time-tracker
+# Copyright (C) 2008 Project Hamster Team
+# This file is distributed under the same license as the hamster-time-tracker 
package.
+# Milo Ivir <m...@milotype.de>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: hamster-time-tracker\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2012-12-02 19:21+0100\n"
+"PO-Revision-Date: 2023-03-27 16:44+0200\n"
+"Last-Translator: Milo Ivir <m...@milotype.de>\n"
+"Language-Team: \n"
+"Language: hr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n"
+"X-Project-Style: gnome\n"
+"X-Generator: Poedit 3.0\n"
+
+#: ../data/edit_activity.ui.h:1 ../data/today.ui.h:15
+msgid "Add Earlier Activity"
+msgstr "Dodaj raniju aktivnost"
+
+#: ../data/edit_activity.ui.h:2 ../data/range_pick.ui.h:5
+msgid "to"
+msgstr "do"
+
+#: ../data/edit_activity.ui.h:3
+msgid "in progress"
+msgstr "u tijeku"
+
+#: ../data/edit_activity.ui.h:4
+msgid "Description:"
+msgstr "Opis:"
+
+#: ../data/edit_activity.ui.h:5
+msgid "Time:"
+msgstr "Vrijeme:"
+
+#: ../data/edit_activity.ui.h:6
+msgid "Activity:"
+msgstr "Aktivnost:"
+
+#: ../data/edit_activity.ui.h:7
+msgid "Tags:"
+msgstr "Oznake:"
+
+#: ../data/hamster.schemas.in.h:1
+msgid "Stop tracking on idle"
+msgstr "Prekini praćenje kad nema aktivnosti"
+
+#: ../data/hamster.schemas.in.h:2
+msgid "Stop tracking current activity when computer becomes idle"
+msgstr "Prekini praćenje trenutačne aktivnosti kad računalo ništa ne radi"
+
+#: ../data/hamster.schemas.in.h:3 ../data/preferences.ui.h:2
+msgid "Stop tracking on shutdown"
+msgstr "Prekini praćenje kad se računalo isključa"
+
+#: ../data/hamster.schemas.in.h:4
+msgid "Stop tracking current activity on shutdown"
+msgstr "Prekini praćenje trenutačne aktivnosti kad se računalo isključa"
+
+#: ../data/hamster.schemas.in.h:5
+msgid "Remind of current task every x minutes"
+msgstr "Podsjeti o trenutačnom zadatku svakih x minuta"
+
+#: ../data/hamster.schemas.in.h:6
+msgid ""
+"Remind of current task every specified amount of minutes. Set to 0 or "
+"greater than 120 to disable reminder."
+msgstr ""
+"Podsjeti o trenutačnom zadatku nakon određenog intervala u minutama. 
Postavi "
+"na 0 ili na više od 120 minuta za isključivanje podsjetnika."
+
+#: ../data/hamster.schemas.in.h:7 ../data/preferences.ui.h:4
+msgid "Also remind when no activity is set"
+msgstr "Takođe me i podseti kada nema aktivnosti"
+
+#: ../data/hamster.schemas.in.h:8
+msgid ""
+"Also remind every notify_interval minutes if no activity has been started."
+msgstr ""
+"Ukoliko ni jedna aktivnost nije započeta podseti me nakon određenog boja "
+"minuta, koje određuje ključ notify_interval."
+
+#: ../data/hamster.schemas.in.h:9
+msgid "At what time does the day start (defaults to 5:30AM)"
+msgstr "Kada počinje novi dan (podrazumevano je 5:30)"
+
+#: ../data/hamster.schemas.in.h:10
+msgid ""
+"Activities will be counted as to belong to yesterday if the current time is "
+"less than the specified day start; and today, if it is over the time. "
+"Activities that span two days, will tip over to the side where the largest "
+"part of the activity is."
+msgstr ""
+"Aktivnosti se smatraju jučerašnjim ukoliko je trenutno vreme u prošlosti u 
"
+"odnosu na dan početka; današnjim ako je preko tog vremena. Ukoliko 
aktivnost "
+"obuhvata dva dana, ona će preći u onaj dan kada je izvršen veći deo te "
+"aktivnosti."
+
+#: ../data/hamster.schemas.in.h:11
+msgid "Should workspace switch trigger activity switch"
+msgstr "Treba li mijenjanje radnog prostora pokrenuti mijenjanje aktivnost"
+
+#: ../data/hamster.schemas.in.h:12
+msgid ""
+"List of enabled tracking methods. \"name\" will enable switching activities "
+"by name defined in workspace_mapping. \"memory\" will enable switching to "
+"the last activity when returning to a previous workspace."
+msgstr ""
+"Popis uključenih načina praćenja. „name“ (ime) će omogućiti 
mijenjanje "
+"aktivnosti po imenima koje su definirane u workspace_mapping. "
+"„memory“ (memorija) će omogućiti prebacivanje na zadnju aktivnosti pri "
+"povratku na prethodni radni prostor."
+
+#: ../data/hamster.schemas.in.h:13
+msgid "Switch activity on workspace change"
+msgstr "Promijeni aktivnost pri mijenjaju radnog prostora"
+
+#: ../data/hamster.schemas.in.h:14
+msgid ""
+"If switching by name is enabled, this list sets the activity names that "
+"should be switched to, workspaces represented by the index of item."
+msgstr ""
+"Ako je mijenjanje po imenu uključeno, ovaj popis postavlja imena aktivnosti "
+"na koje se treba prebaciti (radni prostori predstavljeni njihovim indeksima)."
+
+#: ../data/hamster.schemas.in.h:15
+msgid "Show / hide Time Tracker Window"
+msgstr "Prikaži / sakrij prozor praćenja vremena"
+
+#: ../data/hamster.schemas.in.h:16
+msgid "Keyboard shortcut for showing / hiding the Time Tracker window."
+msgstr "Tipkovni prečac za prikazivanje / skrivanje prozora praćenja 
vremena."
+
+#: ../data/hamster.schemas.in.h:17
+msgid "Toggle hamster application window action"
+msgstr "Radnja za mijenjanje vidljivosti prozora programa Hamster"
+
+#: ../data/hamster.schemas.in.h:18
+msgid "Command for toggling visibility of the hamster application window."
+msgstr "Naredba za mijenjanje vidljivosti glavnog prozora programa Hamster."
+
+#: ../data/hamster.schemas.in.h:19
+msgid "Toggle hamster application window"
+msgstr "Promijeni vidljivost prozora programa"
+
+#: ../data/hamster.schemas.in.h:20
+msgid "Toggle visibility of the hamster application window."
+msgstr "Promijeni vidljivost prozora programa Hamster."
+
+#: ../data/hamster.desktop.in.in.h:1
+#: ../data/hamster-windows-service.desktop.in.in.h:1 ../data/today.ui.h:1
+#: ../src/hamster-cli:133 ../src/hamster/about.py:39 ../src/hamster/about.py:40
+#: ../src/hamster/today.py:63
+msgid "Time Tracker"
+msgstr "Praćenja vremena"
+
+#: ../data/hamster.desktop.in.in.h:2
+#: ../data/hamster-windows-service.desktop.in.in.h:2
+msgid "Project Hamster - track your time"
+msgstr "Projekt Hamster – prati svoje vreme"
+
+#: ../data/hamster-time-tracker-overview.desktop.in.in.h:1
+msgid "Time Tracking Overview"
+msgstr "Pregled praćenja vremena"
+
+#: ../data/hamster-time-tracker-overview.desktop.in.in.h:2
+msgid "The overview window of hamster time tracker"
+msgstr "Prozor pregleda programa Hamster za praćenje vremena"
+
+#: ../data/overview_totals.ui.h:1
+msgid "Show Statistics"
+msgstr "Prikaži statistiku"
+
+#: ../data/overview_totals.ui.h:2
+msgid "Categories"
+msgstr "Kategorije"
+
+#: ../data/overview_totals.ui.h:3 ../data/overview.ui.h:9
+msgid "Activities"
+msgstr "Aktivnosti"
+
+#: ../data/overview_totals.ui.h:4 ../src/hamster-cli:278
+#: ../src/hamster/reports.py:319 ../src/hamster/today.py:150
+msgid "Tags"
+msgstr "Oznake"
+
+#: ../data/overview_totals.ui.h:5
+msgid "No data for this interval"
+msgstr "Nema podataka za ovaj interval"
+
+#: ../data/overview.ui.h:1
+msgid "Save report..."
+msgstr "Spremi izveštaj …"
+
+#: ../data/overview.ui.h:2
+msgid "Day"
+msgstr "Dan"
+
+#: ../data/overview.ui.h:3
+msgid "Week"
+msgstr "Tjedan"
+
+#: ../data/overview.ui.h:4
+msgid "Month"
+msgstr "Mjesec"
+
+#: ../data/overview.ui.h:5
+msgid "Overview — Hamster"
+msgstr "Pregled – Hamster"
+
+#: ../data/overview.ui.h:6
+msgid "_Overview"
+msgstr "_Pregled"
+
+#: ../data/overview.ui.h:7 ../src/hamster-cli:276
+#: ../src/hamster/preferences.py:212 ../src/hamster/reports.py:317
+#: ../src/hamster/today.py:144
+msgid "Activity"
+msgstr "Aktivnost"
+
+#: ../data/overview.ui.h:8
+msgid "_View"
+msgstr "P_rikaz"
+
+#: ../data/overview.ui.h:10 ../src/hamster/reports.py:308
+msgid "Totals"
+msgstr "Ukupno"
+
+#: ../data/overview.ui.h:11
+msgid "Remove"
+msgstr "Ukloni"
+
+#: ../data/overview.ui.h:12
+msgid "Add new"
+msgstr "Dodaj novo"
+
+#: ../data/overview.ui.h:13
+msgid "Edit"
+msgstr "Uredi"
+
+#: ../data/preferences.ui.h:1
+msgid "Time Tracker Preferences"
+msgstr "Postavke praćenja vremena"
+
+#: ../data/preferences.ui.h:3
+msgid "Stop tracking when computer becomes idle"
+msgstr "Prekini praćenje kad računalo ništa ne radi"
+
+#: ../data/preferences.ui.h:5
+msgid "Remind of current activity every:"
+msgstr "Podsjeti o trenutačnoj aktivnosti svakih:"
+
+#: ../data/preferences.ui.h:6
+msgid "New day starts at"
+msgstr "Novi dan počinje u"
+
+#: ../data/preferences.ui.h:7
+msgid "Use following todo list if available:"
+msgstr "Koristi sljedeći popis zadataka ako je dostupan:"
+
+#: ../data/preferences.ui.h:8
+msgid "Integration"
+msgstr "Integracija"
+
+#: ../data/preferences.ui.h:9
+msgid "Tracking"
+msgstr "Praćenje"
+
+#: ../data/preferences.ui.h:10
+msgid "_Categories"
+msgstr "_Kategorije"
+
+#: ../data/preferences.ui.h:11
+msgid "Category list"
+msgstr "Popis kategorija"
+
+#: ../data/preferences.ui.h:12
+msgid "Add category"
+msgstr "Dodaj kategoriju"
+
+#: ../data/preferences.ui.h:13
+msgid "Remove category"
+msgstr "Ukloni kategoriju"
+
+#: ../data/preferences.ui.h:14
+msgid "Edit category"
+msgstr "Uredi kategoriju"
+
+#: ../data/preferences.ui.h:15
+msgid "_Activities"
+msgstr "_Aktivnosti"
+
+#: ../data/preferences.ui.h:16
+msgid "Activity list"
+msgstr "Popis aktivnosti"
+
+#: ../data/preferences.ui.h:17
+msgid "Add activity"
+msgstr "Dodaj aktivnost"
+
+#: ../data/preferences.ui.h:18
+msgid "Remove activity"
+msgstr "Ukloni aktivnost"
+
+#: ../data/preferences.ui.h:19
+msgid "Edit activity"
+msgstr "Uredi aktivnost"
+
+#: ../data/preferences.ui.h:20
+msgid "Tags that should appear in autocomplete"
+msgstr "Oznake koje se pojavljuju u automatskom dovršavanju"
+
+#: ../data/preferences.ui.h:21
+msgid "Categories and Tags"
+msgstr "Kategorije i oznake"
+
+#: ../data/preferences.ui.h:22
+msgid "Resume the last activity when returning to a workspace"
+msgstr "Nastavi zadnju aktivnost pri povratku u radni prostor"
+
+#: ../data/preferences.ui.h:23
+msgid "Start new activity when switching workspaces:"
+msgstr "Započni novu aktivnost pri mijenjanju radnih prostora:"
+
+#: ../data/preferences.ui.h:24
+msgid "Workspaces"
+msgstr "Radni prostori"
+
+#: ../data/range_pick.ui.h:1
+msgid "Day:"
+msgstr "Dan:"
+
+#: ../data/range_pick.ui.h:2
+msgid "Week:"
+msgstr "Tjedan:"
+
+#: ../data/range_pick.ui.h:3
+msgid "Month:"
+msgstr "Mjesec:"
+
+#: ../data/range_pick.ui.h:4
+msgid "Range:"
+msgstr "Raspon:"
+
+#: ../data/range_pick.ui.h:6
+msgid "Apply"
+msgstr "Primijeni"
+
+#: ../data/today.ui.h:2
+msgid "_Tracking"
+msgstr "Prać_enje"
+
+#: ../data/today.ui.h:3
+msgid "Add earlier activity"
+msgstr "Dodaj raniju aktivnost"
+
+#: ../data/today.ui.h:4
+msgid "Overview"
+msgstr "Pregled"
+
+#: ../data/today.ui.h:5
+msgid "Statistics"
+msgstr "Statistike"
+
+#: ../data/today.ui.h:6
+msgid "_Edit"
+msgstr "_Uredi"
+
+#: ../data/today.ui.h:7
+msgid "_Help"
+msgstr "_Pomoć"
+
+#: ../data/today.ui.h:8
+msgid "Contents"
+msgstr "Sadržaj"
+
+#: ../data/today.ui.h:9
+msgid "Sto_p tracking"
+msgstr "Prekini _praćenje"
+
+#: ../data/today.ui.h:10
+msgid "S_witch"
+msgstr "Pro_mijeni"
+
+#: ../data/today.ui.h:11
+msgid "Start _Tracking"
+msgstr "Po_kreni praćenje"
+
+#: ../data/today.ui.h:12
+msgid "Start new activity"
+msgstr "Pokreni novu aktivnost"
+
+#: ../data/today.ui.h:13
+msgid "Today"
+msgstr "Danas"
+
+#: ../data/today.ui.h:14
+msgid "totals"
+msgstr "ukupno"
+
+#: ../data/today.ui.h:16
+msgid "Show Overview"
+msgstr "Prikaži pregled"
+
+#: ../src/hamster-cli:254 ../src/hamster/today.py:289
+msgid "No activity"
+msgstr "Nema aktivnosti"
+
+#: ../src/hamster-cli:277 ../src/hamster/preferences.py:155
+#: ../src/hamster/reports.py:318
+msgid "Category"
+msgstr "Kategorija"
+
+#: ../src/hamster-cli:279 ../src/hamster/reports.py:323
+msgid "Description"
+msgstr "Opis"
+
+#: ../src/hamster-cli:280 ../src/hamster/reports.py:320
+msgid "Start"
+msgstr "Početak"
+
+#: ../src/hamster-cli:281 ../src/hamster/reports.py:321
+msgid "End"
+msgstr "Kraj"
+
+#: ../src/hamster-cli:282 ../src/hamster/reports.py:322
+msgid "Duration"
+msgstr "Trajanje"
+
+#: ../src/hamster-cli:308
+msgid "Uncategorized"
+msgstr "Nekategorizirano"
+
+#: ../src/hamster/about.py:42
+msgid "Project Hamster — track your time"
+msgstr "Projekt Hamster – prati svoje vreme"
+
+#: ../src/hamster/about.py:43
+msgid "Copyright © 2007–2010 Toms Bauģis and others"
+msgstr "Autorska prava © 2007. – 2010. Toms Bauģis i ostali"
+
+#: ../src/hamster/about.py:45
+msgid "Project Hamster Website"
+msgstr "Web-stranica projekta Hamster"
+
+#: ../src/hamster/about.py:46
+msgid "About Time Tracker"
+msgstr "O programu Praćenje vremena"
+
+#: ../src/hamster/about.py:56
+msgid "translator-credits"
+msgstr "Milo Ivir <m...@milotype.de>"
+
+#: ../src/hamster/db.py:288 ../src/hamster/db.py:298 ../src/hamster/db.py:354
+#: ../src/hamster/db.py:658 ../src/hamster/db.py:845
+#: ../src/hamster/edit_activity.py:59 ../src/hamster/preferences.py:58
+#: ../src/hamster/reports.py:88 ../src/hamster/reports.py:127
+#: ../src/hamster/reports.py:256 ../src/hamster/today.py:275
+msgid "Unsorted"
+msgstr "Nerazvrstano"
+
+#. defaults
+#: ../src/hamster/db.py:937
+msgid "Work"
+msgstr "Posao"
+
+#: ../src/hamster/db.py:938
+msgid "Reading news"
+msgstr "Čitanje vijesti"
+
+#: ../src/hamster/db.py:939
+msgid "Checking stocks"
+msgstr "Provjeravanje dionica"
+
+#: ../src/hamster/db.py:940
+msgid "Super secret project X"
+msgstr "Super tajni projekt X"
+
+#: ../src/hamster/db.py:941
+msgid "World domination"
+msgstr "World domination"
+
+#: ../src/hamster/db.py:943
+msgid "Day-to-day"
+msgstr "Iz dana u dan"
+
+#: ../src/hamster/db.py:944
+msgid "Lunch"
+msgstr "Ručak"
+
+#: ../src/hamster/db.py:945
+msgid "Watering flowers"
+msgstr "Zalijevanje cvijeća"
+
+#: ../src/hamster/db.py:946
+msgid "Doing handstands"
+msgstr "Izvođenje stoja na rukama"
+
+#: ../src/hamster/edit_activity.py:75
+msgid "Update activity"
+msgstr "Aktualiziraj aktivnost"
+
+#. duration in round hours
+#: ../src/hamster/lib/stuff.py:57
+#, python-format
+msgid "%dh"
+msgstr "%d h"
+
+#. duration less than hour
+#: ../src/hamster/lib/stuff.py:60
+#, python-format
+msgid "%dmin"
+msgstr "%d min"
+
+#. x hours, y minutes
+#: ../src/hamster/lib/stuff.py:63
+#, python-format
+msgid "%dh %dmin"
+msgstr "%d h %d min"
+
+#. label of date range if looking on single day
+#. date format for overview label when only single day is visible
+#. Using python datetime formatting syntax. See:
+#. http://docs.python.org/library/time.html#time.strftime
+#: ../src/hamster/lib/stuff.py:80
+msgid "%B %d, %Y"
+msgstr "%d. %m. %Y."
+
+#. label of date range if start and end years don't match
+#. letter after prefixes (start_, end_) is the one of
+#. standard python date formatting ones- you can use all of them
+#. see http://docs.python.org/library/time.html#time.strftime
+#: ../src/hamster/lib/stuff.py:86
+#, python-format
+msgid "%(start_B)s %(start_d)s, %(start_Y)s – %(end_B)s %(end_d)s, %(end_Y)s"
+msgstr ""
+"%(start_d)s. %(start_m)s. %(start_Y)s. – %(end_d)s. %(end_m)s. %(end_Y)s."
+
+#. label of date range if start and end month do not match
+#. letter after prefixes (start_, end_) is the one of
+#. standard python date formatting ones- you can use all of them
+#. see http://docs.python.org/library/time.html#time.strftime
+#: ../src/hamster/lib/stuff.py:92
+#, python-format
+msgid "%(start_B)s %(start_d)s – %(end_B)s %(end_d)s, %(end_Y)s"
+msgstr "%(start_d)s. %(start_m)s. – %(end_d)s. %(end_m)s. %(end_Y)s."
+
+#. label of date range for interval in same month
+#. letter after prefixes (start_, end_) is the one of
+#. standard python date formatting ones- you can use all of them
+#. see http://docs.python.org/library/time.html#time.strftime
+#: ../src/hamster/lib/stuff.py:98
+#, python-format
+msgid "%(start_B)s %(start_d)s – %(end_d)s, %(end_Y)s"
+msgstr "%(start_d)s. – %(end_d)s. %(start_m)s. %(end_Y)s."
+
+#: ../src/hamster/overview_activities.py:88
+msgctxt "overview list"
+msgid "%A, %b %d"
+msgstr "%A, %d. %m."
+
+#: ../src/hamster/overview_totals.py:161
+#, python-format
+msgid "%s hours tracked total"
+msgstr "Ukupno je praćeno %s h"
+
+#. Translators: 'None' refers here to the Todo list choice in Hamster 
preferences (Tracking tab)
+#: ../src/hamster/preferences.py:113
+msgid "None"
+msgstr "Ništa"
+
+#: ../src/hamster/preferences.py:130 ../src/hamster/preferences.py:208
+msgid "Name"
+msgstr "Ime"
+
+#: ../src/hamster/preferences.py:664
+msgid "New category"
+msgstr "Nova kategorija"
+
+#: ../src/hamster/preferences.py:677
+msgid "New activity"
+msgstr "Nova aktivnost"
+
+#. notify interval slider value label
+#: ../src/hamster/preferences.py:738
+#, python-format
+msgid "%(interval_minutes)d minute"
+msgid_plural "%(interval_minutes)d minutes"
+msgstr[0] "%(interval_minutes)d minuta"
+msgstr[1] "%(interval_minutes)d minute"
+msgstr[2] "%(interval_minutes)d minuta"
+
+#. notify interval slider value label
+#: ../src/hamster/preferences.py:743
+msgid "Never"
+msgstr "Nikada"
+
+#. column title in the TSV export format
+#: ../src/hamster/reports.py:148
+msgid "activity"
+msgstr "aktivnost"
+
+#. column title in the TSV export format
+#: ../src/hamster/reports.py:150
+msgid "start time"
+msgstr "vrijeme početka"
+
+#. column title in the TSV export format
+#: ../src/hamster/reports.py:152
+msgid "end time"
+msgstr "vrijeme kraja"
+
+#. column title in the TSV export format
+#: ../src/hamster/reports.py:154
+msgid "duration minutes"
+msgstr "trajanje u minutima"
+
+#. column title in the TSV export format
+#: ../src/hamster/reports.py:156
+msgid "category"
+msgstr "kategorija"
+
+#. column title in the TSV export format
+#: ../src/hamster/reports.py:158
+msgid "description"
+msgstr "opis"
+
+#. column title in the TSV export format
+#: ../src/hamster/reports.py:160 ../src/hamster/reports.py:312
+msgid "tags"
+msgstr "oznake"
+
+#: ../src/hamster/reports.py:207
+#, python-format
+msgid ""
+"Activity report for %(start_B)s %(start_d)s, %(start_Y)s – %(end_B)s "
+"%(end_d)s, %(end_Y)s"
+msgstr ""
+"Izvještaj o aktivnostima za %(start_d)s. %(start_m)s. %(start_Y)s. – "
+"%(end_d)s. %(end_m)s. %(end_Y)s."
+
+#: ../src/hamster/reports.py:209
+#, python-format
+msgid ""
+"Activity report for %(start_B)s %(start_d)s – %(end_B)s %(end_d)s, 
%(end_Y)s"
+msgstr ""
+"Izvještaj o aktivnostima za %(start_d)s. %(start_m)s. – %(end_d)s. "
+"%(end_m)s. %(end_Y)s."
+
+#: ../src/hamster/reports.py:211
+#, python-format
+msgid "Activity report for %(start_B)s %(start_d)s, %(start_Y)s"
+msgstr "Izvještaj o aktivnostima za %(start_d)s. %(start_m)s. %(start_Y)s."
+
+#: ../src/hamster/reports.py:213
+#, python-format
+msgid "Activity report for %(start_B)s %(start_d)s – %(end_d)s, %(end_Y)s"
+msgstr ""
+"Izvještaj o aktivnostima za %(start_d)s – %(end_d)s. %(start_m)s. 
%(end_Y)s."
+
+#. date column format for each row in HTML report
+#. Using python datetime formatting syntax. See:
+#. http://docs.python.org/library/time.html#time.strftime
+#: ../src/hamster/reports.py:265 ../src/hamster/reports.py:297
+msgctxt "html report"
+msgid "%b %d, %Y"
+msgstr "%d. %m. %Y."
+
+#. grand_total = _("%s hours") % ("%.1f" % (total_duration.seconds / 60.0 / 60 
+ total_duration.days * 24)),
+#: ../src/hamster/reports.py:306
+msgid "Totals by Day"
+msgstr "Ukupno po danima"
+
+#: ../src/hamster/reports.py:307
+msgid "Activity Log"
+msgstr "Dnevnik aktivnosti"
+
+#: ../src/hamster/reports.py:310
+msgid "activities"
+msgstr "aktivnosti"
+
+#: ../src/hamster/reports.py:311
+msgid "categories"
+msgstr "kategorije"
+
+#: ../src/hamster/reports.py:314
+msgid "Distinguish:"
+msgstr "Razlikuj:"
+
+#: ../src/hamster/reports.py:316
+msgid "Date"
+msgstr "Datum"
+
+#: ../src/hamster/reports.py:326
+msgid "Show template"
+msgstr "Prikaži predložak"
+
+#: ../src/hamster/reports.py:327
+#, python-format
+msgid "You can override it by storing your version in %(home_folder)s"
+msgstr "Možeš ga promijeniti spremanjem tvoje verzije u mapu %(home_folder)s"
+
+#: ../src/hamster/stats.py:147
+msgctxt "years"
+msgid "All"
+msgstr "Sve"
+
+#: ../src/hamster/stats.py:177
+msgid ""
+"There is no data to generate statistics yet.\n"
+"A week of usage would be nice!"
+msgstr ""
+"Još nema podataka za generiranje statistike.\n"
+"Tjedan dana korištenja bi pomoglo!"
+
+#: ../src/hamster/stats.py:180
+msgid "Collecting data — check back after a week has passed!"
+msgstr "Prikupljanje podataka – pogledaj ponovo za tjedan dana!"
+
+#. date format for the first record if the year has not been selected
+#. Using python datetime formatting syntax. See:
+#. http://docs.python.org/library/time.html#time.strftime
+#: ../src/hamster/stats.py:331
+msgctxt "first record"
+msgid "%b %d, %Y"
+msgstr "%d. %m. %Y."
+
+#. date of first record when year has been selected
+#. Using python datetime formatting syntax. See:
+#. http://docs.python.org/library/time.html#time.strftime
+#: ../src/hamster/stats.py:336
+msgctxt "first record"
+msgid "%b %d"
+msgstr "%d. %m."
+
+#: ../src/hamster/stats.py:338
+#, python-format
+msgid "First activity was recorded on %s."
+msgstr "Prva aktivnost je zabilježena %s."
+
+#: ../src/hamster/stats.py:347 ../src/hamster/stats.py:351
+#, python-format
+msgid "%(num)s year"
+msgid_plural "%(num)s years"
+msgstr[0] "%(num)s godina"
+msgstr[1] "%(num)s godine"
+msgstr[2] "%(num)s godina"
+
+#. FIXME: difficult string to properly pluralize
+#: ../src/hamster/stats.py:356
+#, python-format
+msgid ""
+"Time tracked so far is %(human_days)s human days (%(human_years)s) or "
+"%(working_days)s working days (%(working_years)s)."
+msgstr ""
+"Do sada praćeno vrijeme iznosi %(human_days)s dana (%(human_years)s) ili "
+"%(working_days)s radnih dana (%(working_years)s)."
+
+#. How the date of the longest activity should be displayed in statistics
+#. Using python datetime formatting syntax. See:
+#. http://docs.python.org/library/time.html#time.strftime
+#: ../src/hamster/stats.py:374
+msgctxt "date of the longest activity"
+msgid "%b %d, %Y"
+msgstr "%d. %m. %Y."
+
+#: ../src/hamster/stats.py:379
+#, python-format
+msgid "Longest continuous work happened on %(date)s and was %(hours)s hour."
+msgid_plural ""
+"Longest continuous work happened on %(date)s and was %(hours)s hours."
+msgstr[0] "Najduži neprekidni posao je bio %(date)s i trajao je %(hours)s 
sat."
+msgstr[1] ""
+"Najduži neprekidni posao je bio %(date)s i trajao je %(hours)s sata."
+msgstr[2] ""
+"Najduži neprekidni posao je bio %(date)s i trajao je %(hours)s sati."
+
+#. total records (in selected scope)
+#: ../src/hamster/stats.py:387
+#, python-format
+msgid "There is %s record."
+msgid_plural "There are %s records."
+msgstr[0] "Postoji %s zapis."
+msgstr[1] "Postoje %s zapisa."
+msgstr[2] "Postoji %s zapisa."
+
+#: ../src/hamster/stats.py:407
+msgid "Hamster would like to observe you some more!"
+msgstr "Hamster bi te želio još malo više nadgledati!"
+
+#: ../src/hamster/stats.py:409
+#, python-format
+msgid ""
+"With %s percent of all activities starting before 9am, you seem to be an "
+"early bird."
+msgstr ""
+"Sa %s posto svih aktivnosti započete prije 9 sati prijepodne, izgleda da si "
+"ranoranilac."
+
+#: ../src/hamster/stats.py:412
+#, python-format
+msgid ""
+"With %s percent of all activities starting after 11pm, you seem to be a "
+"night owl."
+msgstr ""
+"Sa %s posto svih aktivnosti započete nakon 11 sati navečer, izgleda da si "
+"noćna ptica."
+
+#: ../src/hamster/stats.py:415
+#, python-format
+msgid ""
+"With %s percent of all activities being shorter than 15 minutes, you seem to "
+"be a busy bee."
+msgstr ""
+"Sa %s posto svih aktivnosti kraće od 15 minuta, izgleda da si zaposlena "
+"pčelica."
+
+#: ../src/hamster/today.py:243
+msgid "No records today"
+msgstr "Danas nema zapisa"
+
+#: ../src/hamster/today.py:250
+#, python-format
+msgid "%(category)s: %(duration)s"
+msgstr "%(category)s: %(duration)s"
+
+#. duration in main drop-down per category in hours
+#: ../src/hamster/today.py:253
+#, python-format
+msgid "%sh"
+msgstr "%s h"
+
+#: ../src/hamster/today.py:280
+msgid "Just started"
+msgstr "Upravo pokrenuto"
+
+#: ../src/hamster/widgets/reportchooserdialog.py:39
+msgid "Save Report — Time Tracker"
+msgstr "Spremi izveštaj – Praćenje vremena"
+
+#: ../src/hamster/widgets/reportchooserdialog.py:57
+msgid "HTML Report"
+msgstr "HTML izveštaj"
+
+#: ../src/hamster/widgets/reportchooserdialog.py:65
+msgid "Tab-Separated Values (TSV)"
+msgstr "Tabulatorom odvojene vrijednosti (TSV)"
+
+#: ../src/hamster/widgets/reportchooserdialog.py:73
+msgid "XML"
+msgstr "XML"
+
+#: ../src/hamster/widgets/reportchooserdialog.py:80
+msgid "iCal"
+msgstr "iCal"
+
+#. title in the report file name
+#: ../src/hamster/widgets/reportchooserdialog.py:97
+msgid "Time track"
+msgstr "Praćenje vremena"
+
+#~| msgid "activities"
+#~ msgid "Show activities window"
+#~ msgstr "Prikažite prozor aktivnosti"
+
+#~ msgid "Sto_p Tracking"
+#~ msgstr "Zaustavi _praćenje"
+
+#~ msgid "To_day"
+#~ msgstr "_Danas"
+
+#~ msgid "_Add earlier activity"
+#~ msgstr "Dod_aj raniju aktivnost"
+
+#~ msgid "Show _Overview"
+#~ msgstr "Prikaži _pregled"
+
+#~ msgid "_Preferences"
+#~ msgstr "_Postavke"
+
+#~ msgid "_About"
+#~ msgstr "_O programu"
+
+#~ msgid "Year:"
+#~ msgstr "Godina:"
+
+#~ msgid "Starts and ends"
+#~ msgstr "Početak i kraj"
+
+#~ msgid "Preferences"
+#~ msgstr "Postavke"
+
+#~ msgid "Changed activity"
+#~ msgstr "Izmenjena aktivnost"
+
+#~ msgid "Switched to '%s'"
+#~ msgstr "Prebačena u „%s“"
+
+#~ msgid "Working on <b>%s</b>"
+#~ msgstr "Radim na <b>%s</b>"
+
+#~ msgid "Hamster time tracker. Usage:"
+#~ msgstr "Vredni hrčak praćenje vremena. Korišćenje:"
+
+#~ msgid "Project Hamster (GNOME Time Tracker)"
+#~ msgstr "Vredni hrčak (Praćenje vremena za Gnom)"
+
+#~ msgid "totals by activity"
+#~ msgstr "ukupno po aktivnostima"
+
+#~ msgid "totals by category"
+#~ msgstr "ukupno po kategorijama"
+
+#~ msgid "Show:"
+#~ msgstr "Prikaži:"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hamster-time-tracker-3.0.3~1/src/hamster/lib/i18n.py 
new/hamster-time-tracker-3.0.3~20/src/hamster/lib/i18n.py
--- old/hamster-time-tracker-3.0.3~1/src/hamster/lib/i18n.py    2021-06-16 
10:56:56.000000000 +0200
+++ new/hamster-time-tracker-3.0.3~20/src/hamster/lib/i18n.py   2023-04-29 
20:31:17.000000000 +0200
@@ -21,8 +21,6 @@
             module.bindtextdomain('hamster', locale_dir)
             module.textdomain('hamster')
 
-            module.bind_textdomain_codeset('hamster','utf8')
-
         gettext.install("hamster", locale_dir)
 
     else:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hamster-time-tracker-3.0.3~1/src/hamster/lib/pytweener.py 
new/hamster-time-tracker-3.0.3~20/src/hamster/lib/pytweener.py
--- old/hamster-time-tracker-3.0.3~1/src/hamster/lib/pytweener.py       
2021-06-16 10:56:56.000000000 +0200
+++ new/hamster-time-tracker-3.0.3~20/src/hamster/lib/pytweener.py      
2023-04-29 20:31:17.000000000 +0200
@@ -314,7 +314,7 @@
 
 
     def _elastic_in(t, springiness = 0, wave_length = 0):
-        if t in(0, 1):
+        if t in (0, 1):
             return t
 
         wave_length = wave_length or (1 - t) * 0.3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hamster-time-tracker-3.0.3~1/src/hamster/reports.py 
new/hamster-time-tracker-3.0.3~20/src/hamster/reports.py
--- old/hamster-time-tracker-3.0.3~1/src/hamster/reports.py     2021-06-16 
10:56:56.000000000 +0200
+++ new/hamster-time-tracker-3.0.3~20/src/hamster/reports.py    2023-04-29 
20:31:17.000000000 +0200
@@ -26,6 +26,7 @@
 import itertools
 import re
 import codecs
+import html
 from string import Template
 from textwrap import dedent
 
@@ -248,9 +249,9 @@
                    # http://docs.python.org/library/time.html#time.strftime
                    C_("html report","%b %d, %Y")),
             date_iso = fact.date.isoformat(),
-            activity = fact.activity,
-            category = category,
-            tags = ", ".join(fact.tags),
+            activity = html.escape(fact.activity),
+            category = html.escape(category),
+            tags = html.escape(", ".join(fact.tags)),
             start = fact.start_time.strftime('%H:%M'),
             start_iso = fact.start_time.isoformat(),
             end = end_time_str,
@@ -258,7 +259,8 @@
             duration = fact.delta.format(),
             duration_minutes = "%d" % (stuff.duration_minutes(fact.delta)),
             duration_decimal = "%.2f" % (stuff.duration_minutes(fact.delta) / 
60.0),
-            description = fact.description or ""
+            # not only escape html characters, but ensure \n is respected in 
output
+            description = html.escape(fact.description).replace('\n', '<br 
/>') or ""
         )
         
self.fact_rows.append(Template(self.fact_row_template).safe_substitute(data))
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hamster-time-tracker-3.0.3~1/src/hamster/widgets/facttree.py 
new/hamster-time-tracker-3.0.3~20/src/hamster/widgets/facttree.py
--- old/hamster-time-tracker-3.0.3~1/src/hamster/widgets/facttree.py    
2021-06-16 10:56:56.000000000 +0200
+++ new/hamster-time-tracker-3.0.3~20/src/hamster/widgets/facttree.py   
2023-04-29 20:31:17.000000000 +0200
@@ -76,7 +76,7 @@
         self._label_context = 
cairo.Context(cairo.ImageSurface(cairo.FORMAT_A1, 0, 0))
         self.layout = pangocairo.create_layout(self._label_context)
         
self.layout.set_font_description(pango.FontDescription(graphics._font_desc))
-        self.set_text("Hamster")  # dummy
+        self.set_text("00:00 - 00:00")  # dummy time_label for finding width
 
     @property
     def height(self):
@@ -128,7 +128,8 @@
 class FactRow(object):
     def __init__(self):
         self.time_label = Label()
-        self.activity_label = Label(x=100)
+        x = self.time_label.layout.get_pixel_size()[0] + 10
+        self.activity_label = Label(x=x)
 
         self.category_label = Label()
         self.description_label = Label()

Reply via email to