commit Komikku for openSUSE:Factory
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 <rrahl0@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/afca4888bca50f63b5b702e73adaf7...", - "sha256": "a8856cf5f0d53f83d814ae5c8d34433e5e5ad9f3e328480257cd6e9fbdb4a458", + "url": "https://files.pythonhosted.org/packages/4b/71/a8b3684f64307b96ea0ae14594564b...", + "sha256": "35b59d599bfdb8454739db6b92f0841ecadbe887babb5ed5abd5299587843eef", "only-arches": ["x86_64"] }, { "type": "file", - "url": "https://files.pythonhosted.org/packages/ed/e2/12f85ef4f81442729d378e261bdd5c...", - "sha256": "28c980bf8d5239ee87986c9217a5954b07993d71d391949a9feafad0a9c5e9a7", + "url": "https://files.pythonhosted.org/packages/f8/61/f0aac50a7ad051e1cb71ed7a8d3a94...", + "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/c50c17c5f7d438e836c169e3436955...", - "sha256": "9d2455fbf44c914840c793e89aa82d0e1763a14253a000743719ae5946814b2d" + "url": "https://files.pythonhosted.org/packages/cd/74/ad3d526f3bf7b6d3f408b73fde271e...", + "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
participants (1)
-
Source-Sync