Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package Komikku for openSUSE:Factory checked 
in at 2024-10-08 17:23:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/Komikku (Old)
 and      /work/SRC/openSUSE:Factory/.Komikku.new.19354 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "Komikku"

Tue Oct  8 17:23:08 2024 rev:24 rq:1202092 version:1.59.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/Komikku/Komikku.changes  2024-09-16 
17:45:59.884307335 +0200
+++ /work/SRC/openSUSE:Factory/.Komikku.new.19354/Komikku.changes       
2024-10-08 17:23:20.822370123 +0200
@@ -1,0 +2,10 @@
+Wed Sep 18 23:17:03 UTC 2024 - Richard Rahl <rra...@opensuse.org>
+
+- update to 1.59.0:
+  * [UX] Added system accent colors support
+  * [Explorer] Fixed Global search
+  * [Servers] Bentoscan (FR): Disabled
+  * [Servers] VF Scan (FR): Disabled
+- new minimum requirement of libadwaita (1.6)
+
+-------------------------------------------------------------------

Old:
----
  Komikku-1.58.0.tar.gz

New:
----
  Komikku-1.59.0.tar.gz

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

Other differences:
------------------
++++++ Komikku.spec ++++++
--- /var/tmp/diff_new_pack.TP8o2V/_old  2024-10-08 17:23:23.598485982 +0200
+++ /var/tmp/diff_new_pack.TP8o2V/_new  2024-10-08 17:23:23.602486149 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           Komikku
-Version:        1.58.0
+Version:        1.59.0
 Release:        0
 Summary:        A manga reader for GNOME
 License:        GPL-3.0-or-later
@@ -33,7 +33,7 @@
 BuildRequires:  python3-gobject
 BuildRequires:  pkgconfig(gobject-introspection-1.0)
 BuildRequires:  pkgconfig(gtk4)
-BuildRequires:  pkgconfig(libadwaita-1) >= 1.5
+BuildRequires:  pkgconfig(libadwaita-1) >= 1.6
 BuildRequires:  pkgconfig(python3)
 Requires:       python3-Brotli
 Requires:       python3-Pillow

++++++ Komikku-1.58.0.tar.gz -> Komikku-1.59.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/komikku/Makefile new/komikku/Makefile
--- old/komikku/Makefile        2024-09-16 11:05:25.000000000 +0200
+++ new/komikku/Makefile        2024-09-18 23:17:50.000000000 +0200
@@ -33,6 +33,7 @@
 
 test:  ## Run tests.
        ninja -C $(BUILD) install
+       ninja -C $(BUILD) test
        TEST_PATH=$(TEST_PATH) ninja -C $(BUILD) tests
 
 clean:  ## Clean build files.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/komikku/data/css/style.css 
new/komikku/data/css/style.css
--- old/komikku/data/css/style.css      2024-09-16 11:05:25.000000000 +0200
+++ new/komikku/data/css/style.css      2024-09-18 23:17:50.000000000 +0200
@@ -1,8 +1,5 @@
-@define-color accent_bg_color #f66151;
-@define-color accent_color @orange_5;  /* #c64600 */
-
-spinner {
-    color: @accent_bg_color;
+.spinner {
+    color: var(--accent-bg-color);
 }
 
 headerbar label {
@@ -28,6 +25,21 @@
     margin: 2px 0;
 }
 
+/* Badges */
+.badge {
+    color: var(--light-1);
+    font-weight: 700;
+    background-color: var(--accent-bg-color);
+    padding: 0 7px;
+    border-radius: 999px;
+}
+
+/* Covers */
+.cover-dropshadow {
+    border-radius: 9px;
+    box-shadow: 0 0 0 1px rgb(0 0 0 / 3%), 0 1px 3px 1px rgb(0 0 0 / 7%), 0 
2px 6px 2px rgb(0 0 0 / 3%);
+}
+
 /*
  * Library
  */
@@ -36,69 +48,65 @@
     border-radius: 12px; /* default is 6px */
 }
 flowbox flowboxchild:selected {
-       background-color: @accent_bg_color;
+       background-color: var(--accent-bg-color);
 }
 
 .library-thumbnail-name-label {
     font-size: 12px;
     font-weight: bold;
-    color: #fff;
+    color: var(--light-1);
     border-bottom-left-radius: 8px;
     border-bottom-right-radius: 8px;
     text-shadow: -1px 1px 0 #444, 1px 1px 0 #444, 1px -1px 0 #444, -1px -1px 0 
#444;
-    background-image: linear-gradient(to top, rgba(0, 0, 0, .5), rgba(0, 0, 0, 
0));
+    background-image: linear-gradient(to top, rgb(0 0 0 / 50%), rgb(0 0 0 / 
0%));
     padding: 20px 8px 4px 8px;
 }
 
 .library-thumbnail-badge-unread-chapters {
-    background-color: @blue_2;
+    background-color: var(--blue-2);
 }
 .library-thumbnail-badge-downloaded-chapters {
     background-color: #f68276;
 }
 .library-thumbnail-badge-recent-chapters {
-    background-color: @green_3;
+    background-color: var(--green-3);
 }
 
 /*
  * Manga card
  */
 .backdrop {
-    background: linear-gradient(127deg, alpha(@background_color_0, .55), 
alpha(@background_color_0, 0) 70.71%),
-                linear-gradient(217deg, alpha(@background_color_1, .55), 
alpha(@background_color_1, 0) 70.71%),
-                linear-gradient(336deg, alpha(@background_color_2, .55), 
alpha(@background_color_2, 0) 70.71%);
+    background: linear-gradient(
+                    127deg,
+                    rgb(from var(--backdrop-background-color-0) r g b / 
calc(alpha * .55)),
+                    rgb(from var(--backdrop-background-color-0) r g b / 
calc(alpha * 0)) 70.71%
+                ),
+                linear-gradient(
+                    217deg,
+                    rgb(from var(--backdrop-background-color-1) r g b / 
calc(alpha * .55)),
+                    rgb(from var(--backdrop-background-color-1) r g b / 
calc(alpha * 0)) 70.71%
+                    ),
+                linear-gradient(
+                    336deg,
+                    rgb(from var(--backdrop-background-color-2) r g b / 
calc(alpha * .55)),
+                    rgb(from var(--backdrop-background-color-2) r g b / 
calc(alpha * 0)) 70.71%
+                );
     transition-property: background;
 }
 .backdrop button:focus:focus-visible,
 .backdrop row:focus:focus-visible {
-    outline-color: alpha(currentColor, .25);
+    outline-color: rgb(from currentColor r g b / calc(alpha * 0.25));
 }
 .backdrop list,
 .backdrop listview,
 .backdrop actionbar box {
     background: transparent;
 }
-.backdrop picture {
-    background: linear-gradient(to bottom, @background_color_0, 
@background_color_1);
-}
-
-.cover-dropshadow {
-    border-radius: 9px;
-    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.03), 0 1px 3px 1px rgba(0, 0, 0, 
.07), 0 2px 6px 2px rgba(0, 0, 0, .03);
-}
 
 listview :last-child {
     border-bottom: none;
 }
 
-.badge {
-    color: white;
-    font-weight: 700;
-    background-color: #f68276;
-    padding: 0 7px;
-    border-radius: 999px;
-}
-
 .synopsis-label {
     line-height: 1.25;
 }
@@ -107,11 +115,11 @@
  * Reader
  */
 carousel slider {
-    background-color: @accent_bg_color;
+    background-color: var(--accent-bg-color);
 }
 
 .reader-page-number-indicator-label {
-    color: #fff;
+    color: var(--light-1);
     letter-spacing: 3px;
     /* bordered text */
     text-shadow: 1px 0px 0px #000, -1px 0px 0px #000, 0px 1px 0px #000, 0px 
-1px 0px #000;
@@ -120,13 +128,13 @@
 }
 
 .background-black {
-    background-color: rgba(0, 0, 0, 1);
+    background-color: var(--dark-5);
 }
 .background-gray {
-    background-color: rgba(36, 36, 36, 1);
+    background-color: var(--dark-4);
 }
 .background-white {
-    background-color: rgba(250, 250, 250, 1);
+    background-color: var(--light-1);
 }
 
 /*
@@ -139,8 +147,8 @@
 .explorer-server-section-listboxrow {
     padding: 12px;
     font-weight: 900;
-    background: @headerbar_bg_color;
-    color: @headerbar_fg_color;
+    background: var(--headerbar-bg-color);
+    color: var(--headerbar-fg-color);
 }
 
 .explorer-search-cover-button {
@@ -151,6 +159,5 @@
  * Download manager
  */
 .download-manager-download-listboxrow {
-    border-bottom: 1px solid @borders;
     padding: 6px 6px 12px 6px;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/komikku/data/info.febvre.Komikku.appdata.xml.in.in 
new/komikku/data/info.febvre.Komikku.appdata.xml.in.in
--- old/komikku/data/info.febvre.Komikku.appdata.xml.in.in      2024-09-16 
11:05:25.000000000 +0200
+++ new/komikku/data/info.febvre.Komikku.appdata.xml.in.in      2024-09-18 
23:17:50.000000000 +0200
@@ -98,6 +98,17 @@
     <url type="donation">https://valos.gitlab.io/Komikku/#sponsor</url>
 
     <releases>
+        <release version="1.59.0" date="2024-09-19">
+            <description translate="no">
+                <ul>
+                    <li>[UX] Added system accent colors support</li>
+                    <li>[Explorer] Fixed Global search</li>
+                    <li>[Servers] Bentoscan (FR): Disabled</li>
+                    <li>[Servers] VF Scan (FR): Disabled</li>
+                </ul>
+                <p>Happy reading.</p>
+            </description>
+        </release>
         <release version="1.58.0" date="2024-09-16">
             <description translate="no">
                 <ul>
@@ -111,6 +122,7 @@
                     <li>[Servers] EZmanga (EN): Update</li>
                     <li>[Servers] Kewn Scans (EN): Update</li>
                     <li>[Servers] MangaCrab (ES): Update</li>
+                    <li>[Servers] MangaWeebs (EN): Update</li>
                     <li>[Servers] Reaper Scans (EN): Update</li>
                     <li>[Servers] Scylla Comics (EN): Update</li>
                     <li>[Servers] Starbound Scans (FR): Update</li>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/komikku/data/info.febvre.Komikku.gschema.xml.in 
new/komikku/data/info.febvre.Komikku.gschema.xml.in
--- old/komikku/data/info.febvre.Komikku.gschema.xml.in 2024-09-16 
11:05:25.000000000 +0200
+++ new/komikku/data/info.febvre.Komikku.gschema.xml.in 2024-09-18 
23:17:50.000000000 +0200
@@ -91,6 +91,11 @@
             <summary>Night Light</summary>
             <description>Automatically enable dark GTK theme at 
night</description>
         </key>
+        <key type="b" name="system-accent-colors">
+            <default>false</default>
+            <summary>Accent Color</summary>
+            <description>Use system accent colors</description>
+        </key>
         <key type="b" name="desktop-notifications">
             <default>false</default>
             <summary>Desktop Notifications</summary>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/komikku/data/ui/application_window.blp 
new/komikku/data/ui/application_window.blp
--- old/komikku/data/ui/application_window.blp  2024-09-16 11:05:25.000000000 
+0200
+++ new/komikku/data/ui/application_window.blp  2024-09-18 23:17:50.000000000 
+0200
@@ -21,13 +21,9 @@
       child: Revealer pool_to_update_revealer {
         can-target: false;
         halign: center;
-        child: Spinner pool_to_update_spinner {
+        child: Adw.Spinner pool_to_update_spinner {
           height-request: 32;
           width-request: 32;
-
-          styles [
-            "spinner",
-          ]
         };
       };
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/komikku/data/ui/explorer_search.blp 
new/komikku/data/ui/explorer_search.blp
--- old/komikku/data/ui/explorer_search.blp     2024-09-16 11:05:25.000000000 
+0200
+++ new/komikku/data/ui/explorer_search.blp     2024-09-18 23:17:50.000000000 
+0200
@@ -123,13 +123,9 @@
                       orientation: vertical;
                       valign: center;
 
-                      Spinner search_spinner {
-                        height-request: 50;
-                        width-request: 50;
-
-                        styles [
-                          "spinner",
-                        ]
+                      Adw.Spinner search_spinner {
+                        height-request: 48;
+                        width-request: 48;
                       }
                     };
                   }
@@ -205,13 +201,9 @@
                     orientation: vertical;
                     valign: center;
 
-                    Spinner most_popular_spinner {
-                      height-request: 50;
-                      width-request: 50;
-
-                      styles [
-                        "spinner",
-                      ]
+                    Adw.Spinner most_popular_spinner {
+                      height-request: 48;
+                      width-request: 48;
                     }
                   };
                 }
@@ -279,13 +271,9 @@
                     orientation: vertical;
                     valign: center;
 
-                    Spinner latest_updates_spinner {
-                      height-request: 50;
-                      width-request: 50;
-
-                      styles [
-                        "spinner",
-                      ]
+                    Adw.Spinner latest_updates_spinner {
+                      height-request: 48;
+                      width-request: 48;
                     }
                   };
                 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/komikku/data/ui/preferences.blp 
new/komikku/data/ui/preferences.blp
--- old/komikku/data/ui/preferences.blp 2024-09-16 11:05:25.000000000 +0200
+++ new/komikku/data/ui/preferences.blp 2024-09-18 23:17:50.000000000 +0200
@@ -31,6 +31,11 @@
         subtitle: _("Automatically enable dark theme at night");
       }
 
+      Adw.SwitchRow system_accent_colors_switch {
+        title: _("Accent Color");
+        subtitle: _("Use system accent colors");
+      }
+
       Adw.SwitchRow desktop_notifications_switch {
         title: _("Desktop Notifications");
         subtitle: _("Use desktop notifications for downloads and library 
updates");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/komikku/flatpak/info.febvre.KomikkuDevel.json 
new/komikku/flatpak/info.febvre.KomikkuDevel.json
--- old/komikku/flatpak/info.febvre.KomikkuDevel.json   2024-09-16 
11:05:25.000000000 +0200
+++ new/komikku/flatpak/info.febvre.KomikkuDevel.json   2024-09-18 
23:17:50.000000000 +0200
@@ -1,7 +1,7 @@
 {
     "app-id": "info.febvre.KomikkuDevel",
     "runtime": "org.gnome.Platform",
-    "runtime-version": "46",
+    "runtime-version": "47",
     "sdk": "org.gnome.Sdk",
     "sdk-extensions": [
         "org.freedesktop.Sdk.Extension.rust-stable"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/komikku/flatpak/python3-pillow-heif.json 
new/komikku/flatpak/python3-pillow-heif.json
--- old/komikku/flatpak/python3-pillow-heif.json        2024-09-16 
11:05:25.000000000 +0200
+++ new/komikku/flatpak/python3-pillow-heif.json        2024-09-18 
23:17:50.000000000 +0200
@@ -7,14 +7,14 @@
     "sources": [
         {
             "type": "file",
-            "url": 
"https://files.pythonhosted.org/packages/83/7a/afca4888bca50f63b5b702e73adaf7db92dc40939f81777a4f002a6928c8/pillow_heif-0.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";,
-            "sha256": 
"a8856cf5f0d53f83d814ae5c8d34433e5e5ad9f3e328480257cd6e9fbdb4a458",
+            "url": 
"https://files.pythonhosted.org/packages/4b/71/a8b3684f64307b96ea0ae14594564b41fdf4d4a6f7df5ef73d180a71db5d/pillow_heif-0.18.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";,
+            "sha256": 
"35b59d599bfdb8454739db6b92f0841ecadbe887babb5ed5abd5299587843eef",
             "only-arches": ["x86_64"]
         },
         {
             "type": "file",
-            "url": 
"https://files.pythonhosted.org/packages/ed/e2/12f85ef4f81442729d378e261bdd5ccb95905d6f45c5facb39b87ce7c5fb/pillow_heif-0.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";,
-            "sha256": 
"28c980bf8d5239ee87986c9217a5954b07993d71d391949a9feafad0a9c5e9a7",
+            "url": 
"https://files.pythonhosted.org/packages/f8/61/f0aac50a7ad051e1cb71ed7a8d3a94b5e54ea8ed1acb03586f0fcdebd730/pillow_heif-0.18.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";,
+            "sha256": 
"eb2eade59c2654c2643a3b637de37c19e75a77c66a3e9a5e0ae26210e4f48aee",
             "only-arches": ["aarch64"]
         }
     ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/komikku/flatpak/python3-pillow.json 
new/komikku/flatpak/python3-pillow.json
--- old/komikku/flatpak/python3-pillow.json     2024-09-16 11:05:25.000000000 
+0200
+++ new/komikku/flatpak/python3-pillow.json     2024-09-18 23:17:50.000000000 
+0200
@@ -7,8 +7,8 @@
     "sources": [
         {
             "type": "file",
-            "url": 
"https://files.pythonhosted.org/packages/ef/43/c50c17c5f7d438e836c169e343695534c38c77f60e7c90389bd77981bc21/pillow-10.3.0.tar.gz";,
-            "sha256": 
"9d2455fbf44c914840c793e89aa82d0e1763a14253a000743719ae5946814b2d"
+            "url": 
"https://files.pythonhosted.org/packages/cd/74/ad3d526f3bf7b6d3f408b73fde271ec69dfac8b81341a318ce825f2b3812/pillow-10.4.0.tar.gz";,
+            "sha256": 
"166c1cd4d24309b30d61f79f4a9114b7b2313d7450912277855ff5dfd7cd4a06"
         }
     ]
 }
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/komikku/komikku/application.py 
new/komikku/komikku/application.py
--- old/komikku/komikku/application.py  2024-09-16 11:05:25.000000000 +0200
+++ new/komikku/komikku/application.py  2024-09-18 23:17:50.000000000 +0200
@@ -238,8 +238,8 @@
         self.css_provider = Gtk.CssProvider.new()
         Gtk.StyleContext.add_provider_for_display(Gdk.Display.get_default(), 
self.css_provider, 400)
 
-        self.activity_indicator = Gtk.Spinner(
-            halign=Gtk.Align.CENTER, valign=Gtk.Align.CENTER, 
width_request=48, height_request=48
+        self.activity_indicator = Adw.Spinner(
+            halign=Gtk.Align.CENTER, valign=Gtk.Align.CENTER, 
width_request=48, height_request=48, visible=False
         )
         self.overlay.add_overlay(self.activity_indicator)
 
@@ -379,8 +379,10 @@
         if self.application.profile in ('beta', 'development'):
             self.add_css_class('devel')
 
-        # Theme (light or dark)
+        # Theme (light or dark) and accent colors
         self.init_theme()
+        self.init_accent_colors()
+        Adw.StyleManager.get_default().connect('notify::accent-color', lambda 
_sm, _p: self.init_accent_colors())
 
         GLib.idle_add(self.library.populate)
 
@@ -423,6 +425,45 @@
 
         GLib.idle_add(self.show_notification)
 
+    def init_accent_colors(self):
+        if Adw.StyleManager.get_default().get_system_supports_accent_colors() 
and Settings.get_default().system_accent_colors:
+            self.css_provider.load_from_string('')
+        else:
+            self.css_provider.load_from_string(':root {--accent-bg-color: 
var(--red-1); --accent-color: oklab(from var(--accent-bg-color) 
var(--standalone-color-oklab));}')
+
+    def init_theme(self):
+        def set_color_scheme():
+            if 
((self._night_light_proxy.get_cached_property('NightLightActive') and 
Settings.get_default().night_light)
+                    or Settings.get_default().color_scheme == 'dark'):
+                color_scheme = Adw.ColorScheme.FORCE_DARK
+            elif Settings.get_default().color_scheme == 'light':
+                color_scheme = Adw.ColorScheme.FORCE_LIGHT
+            else:
+                color_scheme = Adw.ColorScheme.DEFAULT
+
+            Adw.StyleManager.get_default().set_color_scheme(color_scheme)
+
+        if not self._night_light_proxy:
+            # Watch night light changes
+            self._night_light_proxy = Gio.DBusProxy.new_sync(
+                Gio.bus_get_sync(Gio.BusType.SESSION, None),
+                Gio.DBusProxyFlags.NONE,
+                None,
+                'org.gnome.SettingsDaemon.Color',
+                '/org/gnome/SettingsDaemon/Color',
+                'org.gnome.SettingsDaemon.Color',
+                None
+            )
+
+            def property_changed(_proxy, changed_properties, 
_invalidated_properties):
+                properties = changed_properties.unpack()
+                if 'NightLightActive' in properties:
+                    set_color_scheme()
+
+            self._night_light_handler_id = 
self._night_light_proxy.connect('g-properties-changed', property_changed)
+
+        set_color_scheme()
+
     def install_servers_modules(self, reinit=False):
         def run():
             res, status = 
install_servers_modules_from_repo(self.application.version)
@@ -458,39 +499,6 @@
         thread.daemon = True
         thread.start()
 
-    def init_theme(self):
-        def set_color_scheme():
-            if 
((self._night_light_proxy.get_cached_property('NightLightActive') and 
Settings.get_default().night_light)
-                    or Settings.get_default().color_scheme == 'dark'):
-                color_scheme = Adw.ColorScheme.FORCE_DARK
-            elif Settings.get_default().color_scheme == 'light':
-                color_scheme = Adw.ColorScheme.FORCE_LIGHT
-            else:
-                color_scheme = Adw.ColorScheme.DEFAULT
-
-            Adw.StyleManager.get_default().set_color_scheme(color_scheme)
-
-        if not self._night_light_proxy:
-            # Watch night light changes
-            self._night_light_proxy = Gio.DBusProxy.new_sync(
-                Gio.bus_get_sync(Gio.BusType.SESSION, None),
-                Gio.DBusProxyFlags.NONE,
-                None,
-                'org.gnome.SettingsDaemon.Color',
-                '/org/gnome/SettingsDaemon/Color',
-                'org.gnome.SettingsDaemon.Color',
-                None
-            )
-
-            def property_changed(_proxy, changed_properties, 
_invalidated_properties):
-                properties = changed_properties.unpack()
-                if 'NightLightActive' in properties:
-                    set_color_scheme()
-
-            self._night_light_handler_id = 
self._night_light_proxy.connect('g-properties-changed', property_changed)
-
-        set_color_scheme()
-
     def on_about_menu_clicked(self, _action, _param):
         dialog = 
Adw.AboutDialog.new_from_appdata('/info/febvre/Komikku/appdata.xml', 
self.application.version)
 
@@ -511,21 +519,10 @@
         # Override release notes
         dialog.set_release_notes("""
             <ul>
-                <li>Fixed display of covers in animated GIF format</li>
-                <li>Fixed memory leaks</li>
-                <li>[Servers] Added Manga Mana (FR)</li>
-                <li>[Servers] Tecno Scan (ES): Reenable</li>
-                <li>[Servers] Anteiku Scans (FR): Update</li>
-                <li>[Servers] ComicExtra (EN): Update</li>
-                <li>[Servers] ED Scanlation (FR): Update</li>
-                <li>[Servers] EZmanga (EN): Update</li>
-                <li>[Servers] Kewn Scans (EN): Update</li>
-                <li>[Servers] MangaCrab (ES): Update</li>
-                <li>[Servers] MangaWeebs (EN): Update</li>
-                <li>[Servers] Reaper Scans (EN): Update</li>
-                <li>[Servers] Scylla Comics (EN): Update</li>
-                <li>[Servers] Starbound Scans (FR): Update</li>
-                <li>[L10n] Update Portuguese (Brazil) translation</li>
+                <li>[UX] Added system accent colors support</li>
+                <li>[Explorer] Fixed Global search</li>
+                <li>[Servers] Bentoscan (FR): Disabled</li>
+                <li>[Servers] VF Scan (FR): Disabled</li>
             </ul>
             <p>Happy reading.</p>
         """)
@@ -539,7 +536,7 @@
     def on_navigation_popped(self, _nav, _page):
         self.last_navigation_action = 'pop'
 
-        self.activity_indicator.stop()
+        self.activity_indicator.set_visible(False)
 
     def on_navigation_pushed(self, _nav):
         self.last_navigation_action = 'push'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/komikku/komikku/card/__init__.py 
new/komikku/komikku/card/__init__.py
--- old/komikku/komikku/card/__init__.py        2024-09-16 11:05:25.000000000 
+0200
+++ new/komikku/komikku/card/__init__.py        2024-09-18 23:17:50.000000000 
+0200
@@ -72,6 +72,9 @@
         self.builder.add_from_resource('/info/febvre/Komikku/ui/menu/card.xml')
         
self.builder.add_from_resource('/info/febvre/Komikku/ui/menu/card_selection_mode.xml')
 
+        self.css_provider = Gtk.CssProvider.new()
+        Gtk.StyleContext.add_provider_for_display(Gdk.Display.get_default(), 
self.css_provider, 400)
+
         self.connect('shown', self.on_shown)
         self.window.controller_key.connect('key-pressed', self.on_key_pressed)
 
@@ -84,7 +87,6 @@
         # Pool-to-Update
         self.pool_to_update_revealer = self.window.pool_to_update_revealer
         self.pool_to_update_spinner = self.window.pool_to_update_spinner
-        self.pool_to_update_revealer.bind_property('child-revealed', 
self.pool_to_update_spinner, 'spinning', 0)
         # Drag gesture
         self.gesture_drag = Gtk.GestureDrag.new()
         self.gesture_drag.set_touch_only(True)
@@ -346,7 +348,7 @@
             return
 
         if backdrop_colors_css := self.manga.backdrop_colors_css:
-            self.window.css_provider.load_from_string(backdrop_colors_css)
+            self.css_provider.load_from_string(backdrop_colors_css)
             self.add_css_class('backdrop')
 
     def show(self):
@@ -448,7 +450,7 @@
                 self.card.remove_backdrop()
 
         self.cover_picture.props.can_shrink = False
-        self.cover_picture.set_css_classes(['rounded', 'cover-backdrop'])
+        self.cover_picture.add_css_class('cover-dropshadow')
         self.cover_box.append(self.cover_picture)
 
         authors = html_escape(', '.join(manga.authors)) if manga.authors else 
_('Unknown author')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/komikku/komikku/card/chapters_list.py 
new/komikku/komikku/card/chapters_list.py
--- old/komikku/komikku/card/chapters_list.py   2024-09-16 11:05:25.000000000 
+0200
+++ new/komikku/komikku/card/chapters_list.py   2024-09-18 23:17:50.000000000 
+0200
@@ -341,7 +341,7 @@
         chapters_ids = []
         chapters_data = []
 
-        self.card.window.activity_indicator.start()
+        self.card.window.activity_indicator.set_visible(True)
 
         item = self.list_model.get_item(position.get_uint16())
         rank = item.chapter.rank
@@ -380,10 +380,10 @@
 
                 item.emit_changed()
 
-            self.card.window.activity_indicator.stop()
+            self.card.window.activity_indicator.set_visible(False)
             
self.card.window.library.refresh_on_manga_state_changed(self.card.manga)
         else:
-            self.card.window.activity_indicator.stop()
+            self.card.window.activity_indicator.set_visible(False)
             self.card.window.add_notification(_('Failed to update chapters 
reading status'))
 
     def set_sort_order(self, invalidate=True):
@@ -440,7 +440,7 @@
         chapters_ids = []
         chapters_data = []
 
-        self.card.window.activity_indicator.start()
+        self.card.window.activity_indicator.set_visible(True)
 
         # First, update DB
         for item in self.get_selected_chapters_items():
@@ -468,7 +468,7 @@
                     yield True
 
                 self.card.leave_selection_mode()
-                self.card.window.activity_indicator.stop()
+                self.card.window.activity_indicator.set_visible(False)
                 
self.card.window.library.refresh_on_manga_state_changed(self.card.manga)
 
             def run_generator(func):
@@ -477,7 +477,7 @@
 
             run_generator(update_chapters_rows)
         else:
-            self.card.window.activity_indicator.stop()
+            self.card.window.activity_indicator.set_visible(False)
             self.card.leave_selection_mode()
             self.card.window.add_notification(_('Failed to update chapters 
reading status'))
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/komikku/komikku/explorer/common.py 
new/komikku/komikku/explorer/common.py
--- old/komikku/komikku/explorer/common.py      2024-09-16 11:05:25.000000000 
+0200
+++ new/komikku/komikku/explorer/common.py      2024-09-18 23:17:50.000000000 
+0200
@@ -53,9 +53,11 @@
         row = self.listbox.get_first_child()
         while row:
             next_row = row.get_next_sibling()
+
             if isinstance(row, (ExplorerServerRow, ExplorerSearchResultRow)):
                 row.dispose()
-                self.listbox.remove(row)
+
+            self.listbox.remove(row)
             row = next_row
 
     def render_covers(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/komikku/komikku/explorer/search/__init__.py 
new/komikku/komikku/explorer/search/__init__.py
--- old/komikku/komikku/explorer/search/__init__.py     2024-09-16 
11:05:25.000000000 +0200
+++ new/komikku/komikku/explorer/search/__init__.py     2024-09-18 
23:17:50.000000000 +0200
@@ -39,15 +39,12 @@
     search_listbox = Gtk.Template.Child('search_listbox')
     search_no_results_status_page = 
Gtk.Template.Child('search_no_results_status_page')
     search_intro_status_page = Gtk.Template.Child('search_intro_status_page')
-    search_spinner = Gtk.Template.Child('search_spinner')
     most_popular_stack = Gtk.Template.Child('most_popular_stack')
     most_popular_listbox = Gtk.Template.Child('most_popular_listbox')
     most_popular_no_results_status_page = 
Gtk.Template.Child('most_popular_no_results_status_page')
-    most_popular_spinner = Gtk.Template.Child('most_popular_spinner')
     latest_updates_stack = Gtk.Template.Child('latest_updates_stack')
     latest_updates_listbox = Gtk.Template.Child('latest_updates_listbox')
     latest_updates_no_results_status_page = 
Gtk.Template.Child('latest_updates_no_results_status_page')
-    latest_updates_spinner = Gtk.Template.Child('latest_updates_spinner')
     viewswitcherbar = Gtk.Template.Child('viewswitcherbar')
 
     page = None
@@ -455,7 +452,7 @@
             if server != self.server:
                 return False
 
-            self.window.activity_indicator.stop()
+            self.window.activity_indicator.set_visible(False)
 
             manga = Manga.new(manga_data, self.server, 
Settings.get_default().long_strip_detection)
 
@@ -475,7 +472,7 @@
             if server != self.server:
                 return False
 
-            self.window.activity_indicator.stop()
+            self.window.activity_indicator.set_visible(False)
 
             self.window.card.init(manga)
 
@@ -483,13 +480,13 @@
             if server != self.server:
                 return False
 
-            self.window.activity_indicator.stop()
+            self.window.activity_indicator.set_visible(False)
 
             self.window.add_notification(message or _("Oops, failed to 
retrieve manga's information."), timeout=2)
 
             return False
 
-        self.window.activity_indicator.start()
+        self.window.activity_indicator.set_visible(True)
 
         if server is not None:
             self.server = server
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/komikku/komikku/explorer/search/latest_updates.py 
new/komikku/komikku/explorer/search/latest_updates.py
--- old/komikku/komikku/explorer/search/latest_updates.py       2024-09-16 
11:05:25.000000000 +0200
+++ new/komikku/komikku/explorer/search/latest_updates.py       2024-09-18 
23:17:50.000000000 +0200
@@ -20,7 +20,6 @@
         ExplorerSearchStackPage.__init__(self, parent)
 
         self.stack = self.parent.latest_updates_stack
-        self.spinner = self.parent.latest_updates_spinner
         self.listbox = self.parent.latest_updates_listbox
         self.no_results_status_page = 
self.parent.latest_updates_no_results_status_page
 
@@ -44,8 +43,6 @@
                 gc.collect()
 
         def complete(results, server):
-            self.spinner.stop()
-
             if not 
self.parent.can_page_be_updated_with_results('latest_updates', server.id):
                 return
 
@@ -62,8 +59,6 @@
             self.render_covers()
 
         def error(results, server, message=None):
-            self.spinner.stop()
-
             if not 
self.parent.can_page_be_updated_with_results('latest_updates', server.id):
                 return
 
@@ -77,7 +72,6 @@
             self.stack.set_visible_child_name('no_results')
 
         self.clear()
-        self.spinner.start()
         self.stack.set_visible_child_name('loading')
 
         if self.parent.requests.get('latest_updates') and 
self.parent.server.id in self.parent.requests['latest_updates']:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/komikku/komikku/explorer/search/most_popular.py 
new/komikku/komikku/explorer/search/most_popular.py
--- old/komikku/komikku/explorer/search/most_popular.py 2024-09-16 
11:05:25.000000000 +0200
+++ new/komikku/komikku/explorer/search/most_popular.py 2024-09-18 
23:17:50.000000000 +0200
@@ -20,7 +20,6 @@
         ExplorerSearchStackPage.__init__(self, parent)
 
         self.stack = self.parent.most_popular_stack
-        self.spinner = self.parent.most_popular_spinner
         self.listbox = self.parent.most_popular_listbox
         self.no_results_status_page = 
self.parent.most_popular_no_results_status_page
 
@@ -44,8 +43,6 @@
                 gc.collect()
 
         def complete(results, server):
-            self.spinner.stop()
-
             if not 
self.parent.can_page_be_updated_with_results('most_popular', server.id):
                 return
 
@@ -62,8 +59,6 @@
             self.render_covers()
 
         def error(results, server, message=None):
-            self.spinner.stop()
-
             if not 
self.parent.can_page_be_updated_with_results('most_popular', server.id):
                 return
 
@@ -77,7 +72,6 @@
             self.stack.set_visible_child_name('no_results')
 
         self.clear()
-        self.spinner.start()
         self.stack.set_visible_child_name('loading')
 
         if self.parent.requests.get('most_popular') and self.parent.server.id 
in self.parent.requests['most_popular']:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/komikku/komikku/explorer/search/search.py 
new/komikku/komikku/explorer/search/search.py
--- old/komikku/komikku/explorer/search/search.py       2024-09-16 
11:05:25.000000000 +0200
+++ new/komikku/komikku/explorer/search/search.py       2024-09-18 
23:17:50.000000000 +0200
@@ -20,7 +20,6 @@
         ExplorerSearchStackPage.__init__(self, parent)
 
         self.stack = self.parent.search_stack
-        self.spinner = self.parent.search_spinner
         self.listbox = self.parent.search_listbox
         self.no_results_status_page = self.parent.search_no_results_status_page
 
@@ -56,8 +55,6 @@
                 gc.collect()
 
         def complete(results, server):
-            self.spinner.stop()
-
             if not self.parent.can_page_be_updated_with_results('search', 
server.id):
                 return
 
@@ -74,8 +71,6 @@
             self.render_covers()
 
         def error(results, server, message=None):
-            self.spinner.stop()
-
             if not self.parent.can_page_be_updated_with_results('search', 
server.id):
                 return
 
@@ -90,7 +85,6 @@
             self.stack.set_visible_child_name('no_results')
 
         self.clear()
-        self.spinner.start()
         self.stack.set_visible_child_name('loading')
         self.listbox.set_sort_func(None)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/komikku/komikku/explorer/search/search_global.py 
new/komikku/komikku/explorer/search/search_global.py
--- old/komikku/komikku/explorer/search/search_global.py        2024-09-16 
11:05:25.000000000 +0200
+++ new/komikku/komikku/explorer/search/search_global.py        2024-09-18 
23:17:50.000000000 +0200
@@ -8,6 +8,7 @@
 from gettext import gettext as _
 import threading
 
+from gi.repository import Adw
 from gi.repository import GLib
 from gi.repository import Gio
 from gi.repository import Gtk
@@ -233,8 +234,7 @@
             row.results = False
             row.is_result = False
             row.add_css_class('explorer-server-listboxrow')
-            spinner = Gtk.Spinner()
-            spinner.start()
+            spinner = Adw.Spinner()
             row.set_child(spinner)
             self.listbox.append(row)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/komikku/komikku/library/__init__.py 
new/komikku/komikku/library/__init__.py
--- old/komikku/komikku/library/__init__.py     2024-09-16 11:05:25.000000000 
+0200
+++ new/komikku/komikku/library/__init__.py     2024-09-18 23:17:50.000000000 
+0200
@@ -731,7 +731,7 @@
         chapters_ids = []
         chapters_data = []
 
-        self.window.activity_indicator.start()
+        self.window.activity_indicator.set_visible(True)
 
         for thumbnail in self.flowbox.get_selected_children():
             for chapter in thumbnail.manga.chapters:
@@ -748,7 +748,7 @@
             res = update_rows(db_conn, 'chapters', chapters_ids, chapters_data)
         db_conn.close()
 
-        self.window.activity_indicator.stop()
+        self.window.activity_indicator.set_visible(False)
 
         if not res:
             self.window.add_notification(_('Failed to update reading status'))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/komikku/komikku/library/categories_list.py 
new/komikku/komikku/library/categories_list.py
--- old/komikku/komikku/library/categories_list.py      2024-09-16 
11:05:25.000000000 +0200
+++ new/komikku/komikku/library/categories_list.py      2024-09-18 
23:17:50.000000000 +0200
@@ -97,13 +97,13 @@
             GLib.idle_add(complete)
 
         def complete():
-            self.library.window.activity_indicator.stop()
+            self.library.window.activity_indicator.set_visible(False)
 
             # Leave library section mode and refresh library
             self.library.leave_selection_mode()
             GLib.idle_add(self.library.populate)
 
-        self.library.window.activity_indicator.start()
+        self.library.window.activity_indicator.set_visible(True)
 
         thread = threading.Thread(target=run)
         thread.daemon = True
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/komikku/komikku/library/thumbnail.py 
new/komikku/komikku/library/thumbnail.py
--- old/komikku/komikku/library/thumbnail.py    2024-09-16 11:05:25.000000000 
+0200
+++ new/komikku/komikku/library/thumbnail.py    2024-09-18 23:17:50.000000000 
+0200
@@ -119,11 +119,20 @@
 
         self.cover_texture = None
         self.server_logo_texture = None
+
         self.rect = Graphene.Rect().alloc()
         self.rounded_rect = Gsk.RoundedRect()
         self.rounded_rect_size = Graphene.Size().alloc()
         self.rounded_rect_size.init(self.corners_radius, self.corners_radius)
 
+        font = Pango.FontDescription.new()
+        font.set_weight(Pango.Weight.HEAVY)
+        font.set_size(self.cover_font_size * Pango.SCALE)
+        self.badge_layout = 
Pango.Layout(Gio.Application.get_default().window.get_pango_context())
+        self.badge_layout.set_font_description(font)
+        self.badge_text_color = Gdk.RGBA()
+        self.badge_text_color.parse('#ffffff')
+
         self.__get_badges_values()
         self.__create_cover_texture()
         if Settings.get_default().library_servers_logo and 
Settings.get_default().library_display_mode == 'grid-compact':
@@ -169,24 +178,17 @@
         snapshot.pop()  # remove the clip
 
         # Draw badges (top right corner)
-        font = Pango.FontDescription.new()
-        font.set_weight(Pango.Weight.HEAVY)
-        font.set_size(self.cover_font_size * Pango.SCALE)
-        layout = 
Pango.Layout(Gio.Application.get_default().window.get_pango_context())
-        layout.set_font_description(font)
         spacing = 5  # with top border, right border and between badges
-        text_color = Gdk.RGBA()
-        text_color.parse('#ffffff')
         x = width
 
         def draw_badge(value, color):
-            nonlocal x, layout
+            nonlocal x
 
             if not value:
                 return
 
-            layout.set_text(str(value))
-            extent = layout.get_pixel_extents()[1]
+            self.badge_layout.set_text(str(value))
+            extent = self.badge_layout.get_pixel_extents()[1]
             w = extent.width + 2 * 7
             h = extent.height + 2 * 1
 
@@ -197,22 +199,20 @@
             bg_color = Gdk.RGBA()
             bg_color.parse(color)
 
-            rect = Graphene.Rect().init(x, y, w, h)
-            rounded_rect = Gsk.RoundedRect()
-            rounded_rect.init_from_rect(rect, radius=90)
+            rect = self.rect.init(x, y, w, h)
+            self.rounded_rect.init_from_rect(self.rect, radius=90)
 
-            snapshot.push_rounded_clip(rounded_rect)
+            snapshot.push_rounded_clip(self.rounded_rect)
             snapshot.append_color(bg_color, rect)
             snapshot.pop()  # remove the clip
 
             # Draw number
             point = Graphene.Point()
-            point.x = x + 7
-            point.y = y + 1
+            point.init(x + 7, y + 1)
 
             snapshot.save()
             snapshot.translate(point)
-            snapshot.append_layout(layout, text_color)
+            snapshot.append_layout(self.badge_layout, self.badge_text_color)
             snapshot.restore()
 
         draw_badge(self.nb_unread_chapters, '#62a0ea')      # @blue_2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/komikku/komikku/models/database/mangas.py 
new/komikku/komikku/models/database/mangas.py
--- old/komikku/komikku/models/database/mangas.py       2024-09-16 
11:05:25.000000000 +0200
+++ new/komikku/komikku/models/database/mangas.py       2024-09-18 
23:17:50.000000000 +0200
@@ -119,7 +119,11 @@
         path = os.path.join(self.path, 'backdrop_colors.css')
         if os.path.exists(path):
             with open(path) as fp:
-                return fp.read()
+                data = fp.read()
+                # CSS must be regenerated if old format is detected
+                # Named colors are deprecated and will be removed in GTK5
+                if '@define-color' not in data:
+                    return data
 
         try:
             palette = ColorThief(cover_path).get_palette(color_count=2, 
quality=1)[:2]
@@ -127,10 +131,11 @@
             # Single color image?
             return None
 
-        colors = []
+        colors = [':root {\n']
         for index, color in enumerate(palette):
-            colors.append(f'@define-color background_color_{index} 
rgba({color[0]}, {color[1]}, {color[2]}, 1);\n')  # noqa: E702, E231
-        colors.append('@define-color background_color_2 @window_bg_color;')
+            colors.append(f'\t--backdrop-background-color-{index}: 
rgb({color[0]} {color[1]} {color[2]} / 100%);\n')  # noqa: E702, E231
+        colors.append('\t--backdrop-background-color-2: 
var(--window-bg-color);\n')
+        colors.append('}\n')
 
         with open(path, 'w') as fp:
             fp.writelines(colors)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/komikku/komikku/models/settings.py 
new/komikku/komikku/models/settings.py
--- old/komikku/komikku/models/settings.py      2024-09-16 11:05:25.000000000 
+0200
+++ new/komikku/komikku/models/settings.py      2024-09-18 23:17:50.000000000 
+0200
@@ -548,6 +548,14 @@
         self.set_value('servers-languages', codes)
 
     @property
+    def system_accent_colors(self):
+        return self.get_boolean('system-accent-colors')
+
+    @system_accent_colors.setter
+    def system_accent_colors(self, state):
+        self.set_boolean('system-accent-colors', state)
+
+    @property
     def update_at_startup(self):
         return self.get_boolean('update-at-startup')
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/komikku/komikku/preferences.py 
new/komikku/komikku/preferences.py
--- old/komikku/komikku/preferences.py  2024-09-16 11:05:25.000000000 +0200
+++ new/komikku/komikku/preferences.py  2024-09-18 23:17:50.000000000 +0200
@@ -25,6 +25,7 @@
 
     color_scheme_row = Gtk.Template.Child('color_scheme_row')
     night_light_switch = Gtk.Template.Child('night_light_switch')
+    system_accent_colors_switch = 
Gtk.Template.Child('system_accent_colors_switch')
     desktop_notifications_switch = 
Gtk.Template.Child('desktop_notifications_switch')
     card_backdrop_switch = Gtk.Template.Child('card_backdrop_switch')
 
@@ -271,6 +272,11 @@
         elif index == 1:
             self.settings.scaling_filter = 'trilinear'
 
+    def on_system_accent_colors_changed(self, switch_button, _gparam):
+        self.settings.system_accent_colors = switch_button.get_active()
+
+        self.window.init_accent_colors()
+
     def on_update_at_startup_changed(self, switch_button, _gparam):
         if switch_button.get_active():
             self.settings.update_at_startup = True
@@ -295,6 +301,10 @@
         self.night_light_switch.set_active(self.settings.night_light)
         self.night_light_switch.connect('notify::active', 
self.on_night_light_changed)
 
+        # Use system accent colors
+        
self.system_accent_colors_switch.set_active(self.settings.system_accent_colors)
+        self.system_accent_colors_switch.connect('notify::active', 
self.on_system_accent_colors_changed)
+
         # Desktop notifications
         
self.desktop_notifications_switch.set_active(self.settings.desktop_notifications)
         self.desktop_notifications_switch.connect('notify::active', 
self.on_desktop_notifications_changed)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/komikku/komikku/reader/pager/infinite_canvas.py 
new/komikku/komikku/reader/pager/infinite_canvas.py
--- old/komikku/komikku/reader/pager/infinite_canvas.py 2024-09-16 
11:05:25.000000000 +0200
+++ new/komikku/komikku/reader/pager/infinite_canvas.py 2024-09-18 
23:17:50.000000000 +0200
@@ -266,12 +266,12 @@
             if not self.current_page_bottom and page._ic_position <= height 
and page._ic_position + page._ic_height > height:
                 self.current_page_bottom = page
 
-            if page.status in ('rendering', 'allocable') and not 
page.activity_indicator.get_spinning():
+            if page.status in ('rendering', 'allocable') and not 
page.activity_indicator.get_visible():
                 visible = page._ic_position >= 0 and page._ic_position < height
                 visible |= page._ic_position + page_height > 0 and 
page._ic_position + page_height <= height
                 visible |= page._ic_position < 0 and page._ic_position + 
page_height > height
                 if visible:
-                    page.activity_indicator.start()
+                    page.activity_indicator.set_visible(True)
 
             position = Graphene.Point()
             position.init(0, page._ic_position)
@@ -356,7 +356,7 @@
 
     def on_page_rendered(self, page, update, retry):
         if not update:
-            page.activity_indicator.stop()
+            page.activity_indicator.set_visible(False)
 
             if retry:
                 # No idea why this reset is necessary
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/komikku/komikku/reader/pager/page.py 
new/komikku/komikku/reader/pager/page.py
--- old/komikku/komikku/reader/pager/page.py    2024-09-16 11:05:25.000000000 
+0200
+++ new/komikku/komikku/reader/pager/page.py    2024-09-18 23:17:50.000000000 
+0200
@@ -5,6 +5,7 @@
 from gettext import gettext as _
 import threading
 
+from gi.repository import Adw
 from gi.repository import GLib
 from gi.repository import GObject
 from gi.repository import Gtk
@@ -50,8 +51,8 @@
             self.scrollable = False
 
         # Activity indicator
-        self.activity_indicator = Gtk.Spinner(
-            halign=Gtk.Align.CENTER, valign=Gtk.Align.CENTER, 
width_request=48, height_request=48
+        self.activity_indicator = Adw.Spinner(
+            halign=Gtk.Align.CENTER, valign=Gtk.Align.CENTER, 
width_request=48, height_request=48, visible=False
         )
         self.add_overlay(self.activity_indicator)
 
@@ -309,8 +310,8 @@
 
     def start_activity_indicator(self):
         if self.reader.reading_mode != 'webtoon':
-            self.activity_indicator.start()
+            self.activity_indicator.set_visible(True)
 
     def stop_activity_indicator(self, *args):
         if self.reader.reading_mode != 'webtoon':
-            self.activity_indicator.stop()
+            self.activity_indicator.set_visible(False)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/komikku/komikku/servers/bentoscan/__init__.py 
new/komikku/komikku/servers/bentoscan/__init__.py
--- old/komikku/komikku/servers/bentoscan/__init__.py   2024-09-16 
11:05:25.000000000 +0200
+++ new/komikku/komikku/servers/bentoscan/__init__.py   2024-09-18 
23:17:50.000000000 +0200
@@ -11,6 +11,7 @@
     id = 'bentoscan'
     name = 'Bentoscan'
     lang = 'fr'
+    status = 'disabled'
 
     base_url = 'https://bentoscan.com'
     search_url = base_url + '/search'
Binary files old/komikku/komikku/servers/bentoscan/bentoscan.png and 
new/komikku/komikku/servers/bentoscan/bentoscan.png differ
Binary files old/komikku/komikku/servers/grisebouille/grisebouille.png and 
new/komikku/komikku/servers/grisebouille/grisebouille.png differ
Binary files old/komikku/komikku/servers/legacyscans/legacyscans.png and 
new/komikku/komikku/servers/legacyscans/legacyscans.png differ
Binary files old/komikku/komikku/servers/mangaeden/mangaeden.png and 
new/komikku/komikku/servers/mangaeden/mangaeden.png differ
Binary files old/komikku/komikku/servers/scanonepiece/scanonepiece.png and 
new/komikku/komikku/servers/scanonepiece/scanonepiece.png differ
Binary files old/komikku/komikku/servers/scantrad/scantrad.png and 
new/komikku/komikku/servers/scantrad/scantrad.png differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/komikku/komikku/servers/vfscan/__init__.py 
new/komikku/komikku/servers/vfscan/__init__.py
--- old/komikku/komikku/servers/vfscan/__init__.py      2024-09-16 
11:05:25.000000000 +0200
+++ new/komikku/komikku/servers/vfscan/__init__.py      2024-09-18 
23:17:50.000000000 +0200
@@ -9,6 +9,7 @@
     id = 'vfscan'
     name = 'VF Scan'
     lang = 'fr'
+    status = 'disabled'
 
     base_url = 'https://www.vfscan.net'
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/komikku/meson.build new/komikku/meson.build
--- old/komikku/meson.build     2024-09-16 11:05:25.000000000 +0200
+++ new/komikku/meson.build     2024-09-18 23:17:50.000000000 +0200
@@ -1,5 +1,5 @@
 project('komikku',
-    version: '1.58.0',
+    version: '1.59.0',
     meson_version: '>= 0.59.0',
     license: 'GPL-3.0-or-later'
 )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/komikku/tests/servers/test_bentoscan.py 
new/komikku/tests/servers/test_bentoscan.py
--- old/komikku/tests/servers/test_bentoscan.py 2024-09-16 11:05:25.000000000 
+0200
+++ new/komikku/tests/servers/test_bentoscan.py 2024-09-18 23:17:50.000000000 
+0200
@@ -2,6 +2,7 @@
 import pytest
 from pytest_steps import test_steps
 
+from . import do_server_test
 from komikku.utils import log_error_traceback
 
 logging.basicConfig(level=logging.DEBUG)
@@ -14,6 +15,7 @@
     return Bentoscan()
 
 
+@do_server_test
 @test_steps('get_latest_updates', 'get_most_popular', 'search', 
'get_manga_data', 'get_chapter_data', 'get_page_image')
 def test_bentoscan(bentoscan_server):
     # Get latest updates
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/komikku/tests/servers/test_vfscan.py 
new/komikku/tests/servers/test_vfscan.py
--- old/komikku/tests/servers/test_vfscan.py    2024-09-16 11:05:25.000000000 
+0200
+++ new/komikku/tests/servers/test_vfscan.py    2024-09-18 23:17:50.000000000 
+0200
@@ -2,6 +2,7 @@
 import pytest
 from pytest_steps import test_steps
 
+from . import do_server_test
 from komikku.utils import log_error_traceback
 
 logging.basicConfig(level=logging.DEBUG)
@@ -14,6 +15,7 @@
     return Vfscan()
 
 
+@do_server_test
 @test_steps('get_latest_updates', 'get_most_populars', 'search', 
'get_manga_data', 'get_chapter_data', 'get_page_image')
 def test_vfscan(vfscan_server):
     # Get latest updates

++++++ convert-to-modern-colorthief.patch ++++++
--- /var/tmp/diff_new_pack.TP8o2V/_old  2024-10-08 17:23:23.946500506 +0200
+++ /var/tmp/diff_new_pack.TP8o2V/_new  2024-10-08 17:23:23.950500673 +0200
@@ -1,6 +1,6 @@
 diff -rub komikku/komikku/models/database/mangas.py 
komikku-patched/komikku/models/database/mangas.py
---- komikku/komikku/models/database/mangas.py  2024-08-30 00:20:12.000000000 
+0200
-+++ komikku-patched/komikku/models/database/mangas.py  2024-08-30 
08:12:05.056293989 +0200
+--- komikku/komikku/models/database/mangas.py  2024-09-18 23:17:50.000000000 
+0200
++++ komikku-patched/komikku/models/database/mangas.py  2024-09-19 
03:23:15.844776113 +0200
 @@ -11,7 +11,7 @@
  import shutil
  import time
@@ -10,18 +10,19 @@
  
  from komikku.models.database import create_db_connection
  from komikku.models.database import insert_row
-@@ -128,7 +128,7 @@
+@@ -132,7 +132,7 @@
              return None
  
-         colors = []
+         colors = [':root {\n']
 -        for index, color in enumerate(palette):
 +        for index, color in enumerate(get_palette):
-             colors.append(f'@define-color background_color_{index} 
rgba({color[0]}, {color[1]}, {color[2]}, 1);\n')  # noqa: E702, E231
-         colors.append('@define-color background_color_2 @window_bg_color;')
- 
+             colors.append(f'\t--backdrop-background-color-{index}: 
rgb({color[0]} {color[1]} {color[2]} / 100%);\n')  # noqa: E702, E231
+         colors.append('\t--backdrop-background-color-2: 
var(--window-bg-color);\n')
+         colors.append('}\n')
+Only in komikku-patched/komikku/models/database: mangas.py.orig
 diff -rub komikku/requirements.txt komikku-patched/requirements.txt
---- komikku/requirements.txt   2024-08-30 00:20:12.000000000 +0200
-+++ komikku-patched/requirements.txt   2024-08-30 08:12:22.482940241 +0200
+--- komikku/requirements.txt   2024-09-18 23:17:50.000000000 +0200
++++ komikku-patched/requirements.txt   2024-09-19 03:21:44.684673635 +0200
 @@ -1,6 +1,6 @@
  beautifulsoup4
  brotli >= 1.1.0

Reply via email to