From fa44dd40154447fd77be4cdb0eb60d8f8968b941 Mon Sep 17 00:00:00 2001 From: "deepsource-autofix[bot]" <62050782+deepsource-autofix[bot]@users.noreply.github.com> Date: Wed, 7 Sep 2022 15:51:36 +0000 Subject: [PATCH] Format code with black and autopep8 This commit fixes the style issues introduced in 193be77 according to the output from black and autopep8. Details: https://deepsource.io/gh/GradienceTeam/Gradience/transform/069f9a3a-ee72-4608-b35d-a182358b7836/ --- src/app_type_dialog.py | 2 +- src/builtin_preset_row.py | 3 +- src/custom_css_group.py | 9 +- src/explore_preset_row.py | 22 ++-- src/main.py | 181 ++++++++++++++++--------------- src/modules/custom_presets.py | 13 ++- src/modules/flatpak_overrides.py | 145 ++++++++++++------------- src/modules/utils.py | 1 + src/option.py | 11 +- src/palette_shades.py | 5 +- src/plugin.py | 5 +- src/plugins_list.py | 23 ++-- src/preferences.py | 34 ++++-- src/preset_row.py | 125 +++++++++++---------- src/presets_manager_window.py | 78 +++++++------ src/repo_row.py | 9 +- src/run_async.py | 8 +- src/setting.py | 8 +- src/welcome.py | 29 ++--- src/window.py | 61 +++++------ 20 files changed, 403 insertions(+), 369 deletions(-) diff --git a/src/app_type_dialog.py b/src/app_type_dialog.py index 744e84e0..f0ba04cc 100644 --- a/src/app_type_dialog.py +++ b/src/app_type_dialog.py @@ -37,7 +37,7 @@ class GradienceAppTypeDialog(Adw.MessageDialog): ok_response_name, ok_response_label, ok_response_appearance, - **kwargs + **kwargs, ): super().__init__(**kwargs) self.set_heading(heading) diff --git a/src/builtin_preset_row.py b/src/builtin_preset_row.py index ff23f0ed..b14568b6 100644 --- a/src/builtin_preset_row.py +++ b/src/builtin_preset_row.py @@ -32,6 +32,5 @@ class GradienceBuiltinPresetRow(Adw.ActionRow): buglog("apply") self.app.load_preset_from_resource( - f"{rootdir}/presets/" - + to_slug_case(self.name) + ".json" + f"{rootdir}/presets/" + to_slug_case(self.name) + ".json" ) diff --git a/src/custom_css_group.py b/src/custom_css_group.py index 50e9d5d2..12db202a 100644 --- a/src/custom_css_group.py +++ b/src/custom_css_group.py @@ -35,14 +35,16 @@ class GradienceCustomCSSGroup(Adw.PreferencesGroup): def load_custom_css(self, custom_css): self.custom_css = custom_css self.custom_css_text_view.get_buffer().set_text( - list(self.custom_css.values())[self.app_type_dropdown.get_selected()] + list(self.custom_css.values())[ + self.app_type_dropdown.get_selected()] ) @Gtk.Template.Callback() def on_custom_css_changed(self, buffer): Gtk.Application.get_default().mark_as_dirty() Gtk.Application.get_default().update_custom_css_text( - list(self.custom_css.keys())[self.app_type_dropdown.get_selected()], + list(self.custom_css.keys())[ + self.app_type_dropdown.get_selected()], buffer.props.text, ) @@ -50,5 +52,6 @@ class GradienceCustomCSSGroup(Adw.PreferencesGroup): def on_dropdown_notify(self, _unused, pspec): if pspec.name == "selected": self.custom_css_text_view.get_buffer().set_text( - list(self.custom_css.values())[self.app_type_dropdown.get_selected()] + list(self.custom_css.values())[ + self.app_type_dropdown.get_selected()] ) diff --git a/src/explore_preset_row.py b/src/explore_preset_row.py index 0b582aaa..ec6cd2bb 100644 --- a/src/explore_preset_row.py +++ b/src/explore_preset_row.py @@ -60,17 +60,18 @@ class GradienceExplorePresetRow(Adw.ActionRow): ) buglog(exception) else: - self.app.load_preset_from_file(os.path.join( - os.environ.get("XDG_CONFIG_HOME", - os.environ["HOME"] + "/.config"), - "presets", - self.prefix, - to_slug_case(self.name) + ".json", - )) + self.app.load_preset_from_file( + os.path.join( + os.environ.get("XDG_CONFIG_HOME", + os.environ["HOME"] + "/.config"), + "presets", + self.prefix, + to_slug_case(self.name) + ".json", + ) + ) self.toast_overlay.add_toast( - Adw.Toast(title=_("Preset downloaded")) - ) + Adw.Toast(title=_("Preset downloaded"))) self.win.reload_pref_group() buglog("Apply and download compeleted") @@ -86,7 +87,6 @@ class GradienceExplorePresetRow(Adw.ActionRow): buglog(exception) else: self.toast_overlay.add_toast( - Adw.Toast(title=_("Preset downloaded")) - ) + Adw.Toast(title=_("Preset downloaded"))) self.win.reload_pref_group() buglog("Download compeleted") diff --git a/src/main.py b/src/main.py index 91948f20..b552fbf3 100644 --- a/src/main.py +++ b/src/main.py @@ -31,7 +31,15 @@ from .palette_shades import GradiencePaletteShades from .option import GradienceOption from .app_type_dialog import GradienceAppTypeDialog from .custom_css_group import GradienceCustomCSSGroup -from .constants import rootdir, app_id, rel_ver, version, bugtracker_url, help_url, project_url +from .constants import ( + rootdir, + app_id, + rel_ver, + version, + bugtracker_url, + help_url, + project_url, +) from .welcome import GradienceWelcomeWindow from .preferences import GradiencePreferencesWindow from .modules.utils import to_slug_case, buglog @@ -40,15 +48,13 @@ from .plugins_list import GradiencePluginsList class GradienceApplication(Adw.Application): """The main application singleton class.""" + __gtype_name__ = "GradienceApplication" settings = Gio.Settings.new(app_id) def __init__(self): - super().__init__( - application_id=app_id, - flags=Gio.ApplicationFlags.FLAGS_NONE - ) + super().__init__(application_id=app_id, flags=Gio.ApplicationFlags.FLAGS_NONE) self.set_resource_base_path(rootdir) self.portal = Xdp.Portal() @@ -95,41 +101,31 @@ class GradienceApplication(Adw.Application): GLib.Variant("s", "adwaita"), self.load_preset_action, ) - self.create_action( - "apply_color_scheme", - self.show_apply_color_scheme_dialog) + self.create_action("apply_color_scheme", + self.show_apply_color_scheme_dialog) + + self.create_action("show_adwaita_demo", self.show_adwaita_demo) + + self.create_action("show_gtk4_widget_factory", + self.show_gtk4_widget_factory) + + self.create_action("show_gtk4_demo", self.show_gtk4_demo) self.create_action( - "show_adwaita_demo", - self.show_adwaita_demo) + "restore_color_scheme", self.show_restore_color_scheme_dialog + ) - self.create_action( - "show_gtk4_widget_factory", - self.show_gtk4_widget_factory) - - self.create_action( - "show_gtk4_demo", - self.show_gtk4_demo) - - self.create_action( - "restore_color_scheme", - self.show_restore_color_scheme_dialog) - - self.create_action( - "reset_color_scheme", - self.show_reset_color_scheme_dialog) + self.create_action("reset_color_scheme", + self.show_reset_color_scheme_dialog) self.create_action("preferences", self.show_preferences) self.create_action("save_preset", self.show_save_preset_dialog) self.create_action("about", self.show_about_window) if self.style_manager.get_dark(): self.load_preset_from_resource( - f"{rootdir}/presets/adwaita-dark.json" - ) + f"{rootdir}/presets/adwaita-dark.json") else: - self.load_preset_from_resource( - f"{rootdir}/presets/adwaita.json" - ) + self.load_preset_from_resource(f"{rootdir}/presets/adwaita.json") if self.first_run: buglog("first run") @@ -147,12 +143,10 @@ class GradienceApplication(Adw.Application): self.portal.open_uri( parent, - "file://" + - os.path.join( - os.environ.get( - "XDG_CONFIG_HOME", - os.environ["HOME"] + - "/.config"), + "file://" + + os.path.join( + os.environ.get("XDG_CONFIG_HOME", + os.environ["HOME"] + "/.config"), "presets", ), Xdp.OpenUriFlags.NONE, @@ -286,13 +280,17 @@ class GradienceApplication(Adw.Application): "window_fg_color": self.rgba_from_argb(light_theme.onSurface), "view_bg_color": self.rgba_from_argb(light_theme.secondaryContainer), "view_fg_color": self.rgba_from_argb(light_theme.onSurface), - "headerbar_bg_color": self.rgba_from_argb(light_theme.secondaryContainer), + "headerbar_bg_color": self.rgba_from_argb( + light_theme.secondaryContainer + ), "headerbar_fg_color": self.rgba_from_argb(light_theme.onSurface), "headerbar_border_color": self.rgba_from_argb( light_theme.primary, "0.8" ), "headerbar_backdrop_color": "@window_bg_color", - "headerbar_shade_color": self.rgba_from_argb(light_theme.secondaryContainer), + "headerbar_shade_color": self.rgba_from_argb( + light_theme.secondaryContainer + ), "card_bg_color": self.rgba_from_argb(light_theme.primary, "0.05"), "card_fg_color": self.rgba_from_argb(light_theme.onSecondaryContainer), "card_shade_color": self.rgba_from_argb(light_theme.shadow), @@ -331,8 +329,9 @@ class GradienceApplication(Adw.Application): ) self.props.active_window.save_preset_button.add_css_class("warning") - self.props.active_window.save_preset_button.get_child( - ).set_tooltip_text(_("Unsaved changes")) + self.props.active_window.save_preset_button.get_child().set_tooltip_text( + _("Unsaved changes") + ) def clear_dirty(self): self.is_dirty = False @@ -341,8 +340,9 @@ class GradienceApplication(Adw.Application): ) self.props.active_window.save_preset_button.remove_css_class("warning") self.props.active_window.save_preset_button.get_child().set_label("") - self.props.active_window.save_preset_button.get_child( - ).set_tooltip_text(_("Save changes")) + self.props.active_window.save_preset_button.get_child().set_tooltip_text( + _("Save changes") + ) def reload_variables(self): parsing_errors = [] @@ -385,29 +385,24 @@ class GradienceApplication(Adw.Application): if args[0].get_string().startswith("custom-"): self.load_preset_from_file( os.path.join( - os.environ.get( - "XDG_CONFIG_HOME", - os.environ["HOME"] + - "/.config"), + os.environ.get("XDG_CONFIG_HOME", + os.environ["HOME"] + "/.config"), "presets", - args[0].get_string().replace( - "custom-", - "", - 1) + - ".json", - )) + args[0].get_string().replace("custom-", "", 1) + ".json", + ) + ) else: self.load_preset_from_resource( - f"{rootdir}/presets/" - + args[0].get_string() - + ".json" + f"{rootdir}/presets/" + args[0].get_string() + ".json" ) Gio.SimpleAction.set_state(self.lookup_action("load_preset"), args[0]) def show_apply_color_scheme_dialog(self, *_args): dialog = GradienceAppTypeDialog( _("Apply this color scheme?"), - _("Warning: any custom CSS files for those app types will be irreversibly overwritten!"), + _( + "Warning: any custom CSS files for those app types will be irreversibly overwritten!" + ), "apply", _("Apply"), Adw.ResponseAppearance.SUGGESTED, @@ -513,18 +508,23 @@ class GradienceApplication(Adw.Application): def save_preset(self, _unused, response, entry): if response == "save": - if not os.path.exists(os.path.join( - os.environ.get("XDG_CONFIG_HOME", - os.environ["HOME"] + "/.config"), - "presets", - "user", - )): - os.makedirs(os.path.join( + if not os.path.exists( + os.path.join( os.environ.get("XDG_CONFIG_HOME", os.environ["HOME"] + "/.config"), "presets", "user", - )) + ) + ): + os.makedirs( + os.path.join( + os.environ.get( + "XDG_CONFIG_HOME", os.environ["HOME"] + "/.config" + ), + "presets", + "user", + ) + ) with open( os.path.join( @@ -547,8 +547,7 @@ class GradienceApplication(Adw.Application): file.write(json.dumps(object_to_write, indent=4)) self.clear_dirty() self.win.toast_overlay.add_toast( - Adw.Toast(title=_("Preset saved")) - ) + Adw.Toast(title=_("Preset saved"))) def apply_color_scheme(self, widget, response): if response == "apply": @@ -584,9 +583,8 @@ class GradienceApplication(Adw.Application): # if widget.get_color_mode()["light"]: if widget.get_app_types()["gtk4"]: gtk4_dir = os.path.join( - os.environ.get( - "XDG_CONFIG_HOME", os.environ["HOME"] + "/.config" - ), + os.environ.get("XDG_CONFIG_HOME", + os.environ["HOME"] + "/.config"), "gtk-4.0", ) if not os.path.exists(gtk4_dir): @@ -595,14 +593,14 @@ class GradienceApplication(Adw.Application): contents = "" try: with open( - os.path.join(gtk4_dir, "gtk.css"), "r", encoding="utf-8" + os.path.join(gtk4_dir, "gtk.css"), "r", encoding="utf-8" ) as file: contents = file.read() except FileNotFoundError: # first run pass else: with open( - os.path.join(gtk4_dir, "gtk.css.bak"), "w", encoding="utf-8" + os.path.join(gtk4_dir, "gtk.css.bak"), "w", encoding="utf-8" ) as file: file.write(contents) finally: @@ -612,9 +610,8 @@ class GradienceApplication(Adw.Application): file.write(gtk4_css) if widget.get_app_types()["gtk3"]: gtk3_dir = os.path.join( - os.environ.get( - "XDG_CONFIG_HOME", os.environ["HOME"] + "/.config" - ), + os.environ.get("XDG_CONFIG_HOME", + os.environ["HOME"] + "/.config"), "gtk-3.0", ) if not os.path.exists(gtk3_dir): @@ -623,14 +620,14 @@ class GradienceApplication(Adw.Application): contents = "" try: with open( - os.path.join(gtk3_dir, "gtk.css"), "r", encoding="utf-8" + os.path.join(gtk3_dir, "gtk.css"), "r", encoding="utf-8" ) as file: contents = file.read() except FileNotFoundError: # first run pass else: with open( - os.path.join(gtk3_dir, "gtk.css.bak"), "w", encoding="utf-8" + os.path.join(gtk3_dir, "gtk.css.bak"), "w", encoding="utf-8" ) as file: file.write(contents) finally: @@ -657,9 +654,9 @@ class GradienceApplication(Adw.Application): backup = open( os.path.join( os.environ.get( - "XDG_CONFIG_HOME", - os.environ["HOME"] + - "/.config"), + "XDG_CONFIG_HOME", os.environ["HOME"] + + "/.config" + ), "gtk-4.0/gtk.css.bak", ), "r", @@ -670,9 +667,9 @@ class GradienceApplication(Adw.Application): gtk4css = open( os.path.join( os.environ.get( - "XDG_CONFIG_HOME", - os.environ["HOME"] + - "/.config"), + "XDG_CONFIG_HOME", os.environ["HOME"] + + "/.config" + ), "gtk-4.0/gtk.css", ), "w", @@ -737,9 +734,8 @@ class GradienceApplication(Adw.Application): "0xMRTT https://github.com/0xMRTT", "Verantor https://github.com/Verantor", ], - artists=['David Lapshin https://github.com/daudix-UFO'], - designers=[ - 'David Lapshin https://github.com/daudix-UFO'], + artists=["David Lapshin https://github.com/daudix-UFO"], + designers=["David Lapshin https://github.com/daudix-UFO"], # Translators: This is a place to put your credits (formats: "Name # https://example.com" or "Name ", no quotes) # and is not meant to be translated literally. @@ -760,7 +756,8 @@ class GradienceApplication(Adw.Application): license_type=Gtk.License.GPL_3_0, version=version, release_notes_version=rel_ver, - release_notes=_(""" + release_notes=_( + """ - """), - comments=_(""" + """ + ), + comments=_( + """ Gradience is a tool for customizing Libadwaita applications and the adw-gtk3 theme. With Gradience you can: @@ -789,7 +788,8 @@ With Gradience you can: - Extend functionality using plugins This app is written in Python and uses GTK 4 and libadwaita. - """) + """ + ), ) about.present() @@ -852,7 +852,8 @@ This app is written in Python and uses GTK 4 and libadwaita. def show_gtk4_widget_factory(self, *_args): GLib.spawn_command_line_async( - 'sh -c "/bin/gtk4-widget-factory > /dev/null 2>&1"') + 'sh -c "/bin/gtk4-widget-factory > /dev/null 2>&1"' + ) def main(): diff --git a/src/modules/custom_presets.py b/src/modules/custom_presets.py index 023db54a..cc854e7c 100644 --- a/src/modules/custom_presets.py +++ b/src/modules/custom_presets.py @@ -29,9 +29,7 @@ poolmgr = urllib3.PoolManager() def fetch_presets(repo): try: - http = poolmgr.request( - "GET", - repo) + http = poolmgr.request("GET", repo) raw = json.loads(http.data) preset_dict = {} @@ -62,13 +60,16 @@ def download_preset(name, repo_name, url): data = json.dumps(raw) - with open(os.path.join( + with open( + os.path.join( os.environ.get("XDG_CONFIG_HOME", os.environ["HOME"] + "/.config"), "presets", repo_name, - to_slug_case(name) + ".json"), - "w") as f: + to_slug_case(name) + ".json", + ), + "w", + ) as f: f.write(data) f.close() except Exception: diff --git a/src/modules/flatpak_overrides.py b/src/modules/flatpak_overrides.py index d3066ff3..5afa8ef2 100644 --- a/src/modules/flatpak_overrides.py +++ b/src/modules/flatpak_overrides.py @@ -23,12 +23,16 @@ from gi.repository import GLib, Gio, Adw from .utils import buglog -''' Custom exception class ''' +""" Custom exception class """ + + class InvalidGTKVersion(Exception): pass -''' Internal helper functions (shouldn't be used outside this file) ''' +""" Internal helper functions (shouldn't be used outside this file) """ + + def get_system_flatpak_path(): systemPath = GLib.getenv("FLATPAK_SYSTEM_DIR") buglog(f"systemPath: {systemPath}") @@ -36,9 +40,7 @@ def get_system_flatpak_path(): if systemPath: return systemPath - systemDataDir = GLib.build_filenamev([ - GLib.DIR_SEPARATOR_S, "var", "lib" - ]) + systemDataDir = GLib.build_filenamev([GLib.DIR_SEPARATOR_S, "var", "lib"]) return GLib.build_filenamev([systemDataDir, "flatpak"]) @@ -50,19 +52,13 @@ def get_user_flatpak_path(): if userPath: return userPath - userDataDir = GLib.build_filenamev([ - GLib.get_home_dir(), ".local", "share" - ]) + userDataDir = GLib.build_filenamev( + [GLib.get_home_dir(), ".local", "share"]) return GLib.build_filenamev([userDataDir, "flatpak"]) -def user_save_keyfile( - toast_overlay, - settings, - user_keyfile, - filename, - gtk_ver): +def user_save_keyfile(toast_overlay, settings, user_keyfile, filename, gtk_ver): try: user_keyfile.save_to_file(filename) except Glib.GError as e: @@ -72,19 +68,16 @@ def user_save_keyfile( if gtk_ver == "gtk4": settings.set_boolean("user-flatpak-theming-gtk4", True) buglog( - f"user-flatpak-theming-gtk4: {settings.get_boolean('user-flatpak-theming-gtk4')}") + f"user-flatpak-theming-gtk4: {settings.get_boolean('user-flatpak-theming-gtk4')}" + ) elif gtk_ver == "gtk3": settings.set_boolean("user-flatpak-theming-gtk3", True) buglog( - f"user-flatpak-theming-gtk3: {settings.get_boolean('user-flatpak-theming-gtk3')}") + f"user-flatpak-theming-gtk3: {settings.get_boolean('user-flatpak-theming-gtk3')}" + ) -def global_save_keyfile( - toast_overlay, - settings, - global_keyfile, - filename, - gtk_ver): +def global_save_keyfile(toast_overlay, settings, global_keyfile, filename, gtk_ver): try: global_keyfile.save_to_file(filename) except Glib.GError as e: @@ -94,23 +87,23 @@ def global_save_keyfile( if gtk_ver == "gtk4": settings.set_boolean("global-flatpak-theming-gtk4", True) buglog( - f"global-flatpak-theming-gtk4: {settings.get_boolean('global-flatpak-theming-gtk4')}") + f"global-flatpak-theming-gtk4: {settings.get_boolean('global-flatpak-theming-gtk4')}" + ) elif gtk_ver == "gtk3": settings.set_boolean("global-flatpak-theming-gtk3", True) buglog( - f"global-flatpak-theming-gtk3: {settings.get_boolean('global-flatpak-theming-gtk3')}") + f"global-flatpak-theming-gtk3: {settings.get_boolean('global-flatpak-theming-gtk3')}" + ) + + +""" Main functions """ -''' Main functions ''' def create_gtk_user_override(toast_overlay, settings, gtk_ver): - override_dir = GLib.build_filenamev([ - get_user_flatpak_path(), "overrides" - ]) + override_dir = GLib.build_filenamev([get_user_flatpak_path(), "overrides"]) print(f"override_dir: {override_dir}") - filename = GLib.build_filenamev([ - override_dir, "global" - ]) + filename = GLib.build_filenamev([override_dir, "global"]) user_keyfile = GLib.KeyFile.new() @@ -122,7 +115,8 @@ def create_gtk_user_override(toast_overlay, settings, gtk_ver): gtk_path = "xdg-config/gtk-3.0" else: raise InvalidGTKVersion( - f"Invalid GTK version chosen: {gtk_ver}. Please choose between two options: gtk4, gtk3") + f"Invalid GTK version chosen: {gtk_ver}. Please choose between two options: gtk4, gtk3" + ) try: user_keyfile.load_from_file(filename, GLib.KeyFileFlags.NONE) @@ -151,12 +145,12 @@ def create_gtk_user_override(toast_overlay, settings, gtk_ver): user_keyfile.load_from_file(filename, GLib.KeyFileFlags.NONE) user_keyfile.set_string("Context", "filesystems", gtk_path) - user_save_keyfile( - toast_overlay, settings, user_keyfile, filename, gtk_ver) + user_save_keyfile(toast_overlay, settings, + user_keyfile, filename, gtk_ver) else: toast_overlay.add_toast( - Adw.Toast( - title=_("Unexpected file error occurred"))) + Adw.Toast(title=_("Unexpected file error occurred")) + ) buglog(f"Unhandled GLib.FileError error code. Exc: {e}") else: try: @@ -164,14 +158,16 @@ def create_gtk_user_override(toast_overlay, settings, gtk_ver): "Context", "filesystems") except GLib.GError: user_keyfile.set_string("Context", "filesystems", gtk_path) - user_save_keyfile( - toast_overlay, settings, user_keyfile, filename, gtk_ver) + user_save_keyfile(toast_overlay, settings, + user_keyfile, filename, gtk_ver) else: if gtk_path not in filesys_list: user_keyfile.set_string_list( - "Context", "filesystems", filesys_list + [gtk_path]) + "Context", "filesystems", filesys_list + [gtk_path] + ) user_save_keyfile( - toast_overlay, settings, user_keyfile, filename, gtk_ver) + toast_overlay, settings, user_keyfile, filename, gtk_ver + ) else: if is_gtk4: settings.set_boolean("user-flatpak-theming-gtk4", True) @@ -181,14 +177,10 @@ def create_gtk_user_override(toast_overlay, settings, gtk_ver): def remove_gtk_user_override(toast_overlay, settings, gtk_ver): - override_dir = GLib.build_filenamev([ - get_user_flatpak_path(), "overrides" - ]) + override_dir = GLib.build_filenamev([get_user_flatpak_path(), "overrides"]) print(f"override_dir: {override_dir}") - filename = GLib.build_filenamev([ - override_dir, "global" - ]) + filename = GLib.build_filenamev([override_dir, "global"]) user_keyfile = GLib.KeyFile.new() @@ -200,7 +192,8 @@ def remove_gtk_user_override(toast_overlay, settings, gtk_ver): gtk_path = "xdg-config/gtk-3.0" else: raise InvalidGTKVersion( - f"Invalid GTK version chosen: {gtk_ver}. Please choose between two options: gtk4, gtk3") + f"Invalid GTK version chosen: {gtk_ver}. Please choose between two options: gtk4, gtk3" + ) def set_theming(): if is_gtk4: @@ -216,8 +209,8 @@ def remove_gtk_user_override(toast_overlay, settings, gtk_ver): buglog("remove override: File doesn't exist") else: toast_overlay.add_toast( - Adw.Toast( - title=_("Unexpected file error occurred"))) + Adw.Toast(title=_("Unexpected file error occurred")) + ) buglog(f"Unhandled GLib.FileError error code. Exc: {e}") else: try: @@ -235,24 +228,24 @@ def remove_gtk_user_override(toast_overlay, settings, gtk_ver): user_keyfile.set_string_list( "Context", "filesystems", filesys_list) user_save_keyfile( - toast_overlay, settings, user_keyfile, filename, gtk_ver) + toast_overlay, settings, user_keyfile, filename, gtk_ver + ) buglog("remove override: Value removed.") else: set_theming() buglog("remove override: Value not found.") -''' Do not use this functions for now, as they are lacking authentication''' +""" Do not use this functions for now, as they are lacking authentication""" # TODO: Implement user authentication using Polkit + + def create_gtk_global_override(toast_overlay, settings, gtk_ver): - override_dir = GLib.build_filenamev([ - get_system_flatpak_path(), "overrides" - ]) + override_dir = GLib.build_filenamev( + [get_system_flatpak_path(), "overrides"]) print(f"override_dir: {override_dir}") - filename = GLib.build_filenamev([ - override_dir, "global" - ]) + filename = GLib.build_filenamev([override_dir, "global"]) global_keyfile = GLib.KeyFile.new() @@ -264,7 +257,8 @@ def create_gtk_global_override(toast_overlay, settings, gtk_ver): gtk_path = "xdg-config/gtk-3.0" else: raise InvalidGTKVersion( - f"Invalid GTK version chosen: {gtk_ver}. Please choose between two options: gtk4, gtk3") + f"Invalid GTK version chosen: {gtk_ver}. Please choose between two options: gtk4, gtk3" + ) try: global_keyfile.load_from_file(filename, GLib.KeyFileFlags.NONE) @@ -294,11 +288,12 @@ def create_gtk_global_override(toast_overlay, settings, gtk_ver): global_keyfile.set_string("Context", "filesystems", gtk_path) global_save_keyfile( - toast_overlay, settings, global_keyfile, filename, gtk_ver) + toast_overlay, settings, global_keyfile, filename, gtk_ver + ) else: toast_overlay.add_toast( - Adw.Toast( - title=_("Unexpected file error occurred"))) + Adw.Toast(title=_("Unexpected file error occurred")) + ) buglog(f"Unhandled GLib.FileError error code. Exc: {e}") else: try: @@ -307,13 +302,16 @@ def create_gtk_global_override(toast_overlay, settings, gtk_ver): except GLib.GError: global_keyfile.set_string("Context", "filesystems", gtk_path) global_save_keyfile( - toast_overlay, settings, global_keyfile, filename, gtk_ver) + toast_overlay, settings, global_keyfile, filename, gtk_ver + ) else: if gtk_path not in filesys_list: global_keyfile.set_string_list( - "Context", "filesystems", filesys_list + [gtk_path]) + "Context", "filesystems", filesys_list + [gtk_path] + ) global_save_keyfile( - toast_overlay, settings, global_keyfile, filename, gtk_ver) + toast_overlay, settings, global_keyfile, filename, gtk_ver + ) else: if is_gtk4: settings.set_boolean("global-flatpak-theming-gtk4", True) @@ -323,14 +321,11 @@ def create_gtk_global_override(toast_overlay, settings, gtk_ver): def remove_gtk_global_override(toast_overlay, settings, gtk_ver): - override_dir = GLib.build_filenamev([ - get_system_flatpak_path(), "overrides" - ]) + override_dir = GLib.build_filenamev( + [get_system_flatpak_path(), "overrides"]) print(f"override_dir: {override_dir}") - filename = GLib.build_filenamev([ - override_dir, "global" - ]) + filename = GLib.build_filenamev([override_dir, "global"]) global_keyfile = GLib.KeyFile.new() @@ -342,7 +337,8 @@ def remove_gtk_global_override(toast_overlay, settings, gtk_ver): gtk_path = "xdg-config/gtk-3.0" else: raise InvalidGTKVersion( - f"Invalid GTK version chosen: {gtk_ver}. Please choose between two options: gtk4, gtk3") + f"Invalid GTK version chosen: {gtk_ver}. Please choose between two options: gtk4, gtk3" + ) def set_theming(): if is_gtk4: @@ -358,8 +354,8 @@ def remove_gtk_global_override(toast_overlay, settings, gtk_ver): buglog("remove override: File doesn't exist") else: toast_overlay.add_toast( - Adw.Toast( - title=_("Unexpected file error occurred"))) + Adw.Toast(title=_("Unexpected file error occurred")) + ) buglog(f"Unhandled GLib.FileError error code. Exc: {e}") else: try: @@ -377,7 +373,8 @@ def remove_gtk_global_override(toast_overlay, settings, gtk_ver): global_keyfile.set_string_list( "Context", "filesystems", filesys_list) global_save_keyfile( - toast_overlay, settings, global_keyfile, filename, gtk_ver) + toast_overlay, settings, global_keyfile, filename, gtk_ver + ) buglog("remove override: Value removed.") else: set_theming() diff --git a/src/modules/utils.py b/src/modules/utils.py index a83c6a38..fd887f0c 100644 --- a/src/modules/utils.py +++ b/src/modules/utils.py @@ -31,6 +31,7 @@ else: def to_slug_case(non_slug): return re.sub(r"[^0-9a-z]+", "-", anyascii(non_slug).lower()).strip("-") + # Use it instead of print(), so there isn't any output in stdout if # Gradience was build in release mode diff --git a/src/option.py b/src/option.py index 7fa642ba..15c63ff6 100644 --- a/src/option.py +++ b/src/option.py @@ -34,13 +34,7 @@ class GradienceOption(Adw.ActionRow): explanation_button = Gtk.Template.Child("explanation-button") explanation_label = Gtk.Template.Child("explanation-label") - def __init__( - self, - name, - title, - explanation, - adw_gtk3_support="yes", - **kwargs): + def __init__(self, name, title, explanation, adw_gtk3_support="yes", **kwargs): super().__init__(**kwargs) self.set_name(name) @@ -52,7 +46,8 @@ class GradienceOption(Adw.ActionRow): elif adw_gtk3_support == "partial": self.warning_button.add_css_class("warning") self.warning_label.set_label( - _("This option is only partially supported by the adw-gtk3 theme.")) + _("This option is only partially supported by the adw-gtk3 theme.") + ) elif adw_gtk3_support == "no": self.warning_button.add_css_class("error") self.warning_label.set_label( diff --git a/src/palette_shades.py b/src/palette_shades.py index b461717d..a1bc337b 100644 --- a/src/palette_shades.py +++ b/src/palette_shades.py @@ -59,8 +59,9 @@ class GradiencePaletteShades(Adw.ActionRow): Gtk.Application.get_default().is_ready and kwargs.get("update_from") == "color_value" ): - Gtk.Application.get_default( - ).palette[self.prefix][str(i)] = shades[str(i)] + Gtk.Application.get_default().palette[self.prefix][str(i)] = shades[ + str(i) + ] if ( Gtk.Application.get_default().is_ready diff --git a/src/plugin.py b/src/plugin.py index 9172163c..2a96e654 100644 --- a/src/plugin.py +++ b/src/plugin.py @@ -16,9 +16,10 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -#from .setting import GradienceSetting +# from .setting import GradienceSetting -class GradiencePluginCore(): + +class GradiencePluginCore: def __init__(self): self.title = None self.author = None diff --git a/src/plugins_list.py b/src/plugins_list.py index 16f17325..263a406b 100644 --- a/src/plugins_list.py +++ b/src/plugins_list.py @@ -36,11 +36,15 @@ class GradiencePluginsList: self.win = win self.pm = PluginManager() - self.pm.setPluginPlaces([os.path.join( - os.environ.get("XDG_CONFIG_HOME", - os.environ["HOME"] + "/.config"), - "gradience_plugins", - )]) + self.pm.setPluginPlaces( + [ + os.path.join( + os.environ.get("XDG_CONFIG_HOME", + os.environ["HOME"] + "/.config"), + "gradience_plugins", + ) + ] + ) self.pm.collectPlugins() self.rows = {} @@ -60,7 +64,10 @@ class GradiencePluginsList: group = Adw.PreferencesGroup() group.set_title(_("Plugins")) group.set_description( - _("Plugins add additional features to Gradience, plugins are made by Gradience community and can make issues.")) + _( + "Plugins add additional features to Gradience, plugins are made by Gradience community and can make issues." + ) + ) if self.pm: for pluginInfo in self.pm.getAllPlugins(): row = GradiencePluginRow(pluginInfo.plugin_object) @@ -83,7 +90,5 @@ class GradiencePluginsList: for pluginInfo in self.pm.getAllPlugins(): error, detail = pluginInfo.plugin_object.validate() if error: - errors.append( - detail - ) + errors.append(detail) return errors diff --git a/src/preferences.py b/src/preferences.py index e4558ecf..d28d0646 100644 --- a/src/preferences.py +++ b/src/preferences.py @@ -21,8 +21,14 @@ import os from gi.repository import GLib, Gio, Gtk, Adw from .constants import rootdir, app_id -from .modules.flatpak_overrides import create_gtk_user_override, remove_gtk_user_override -from .modules.flatpak_overrides import create_gtk_global_override, remove_gtk_global_override +from .modules.flatpak_overrides import ( + create_gtk_user_override, + remove_gtk_user_override, +) +from .modules.flatpak_overrides import ( + create_gtk_global_override, + remove_gtk_global_override, +) from .modules.utils import buglog @@ -51,12 +57,14 @@ class GradiencePreferencesWindow(Adw.PreferencesWindow): def setup_flatpak_group(self): user_flatpak_theming_gtk4 = self.settings.get_boolean( - "user-flatpak-theming-gtk4") + "user-flatpak-theming-gtk4" + ) # global_flatpak_theming_gtk4 = self.settings.get_boolean( # "global-flatpak-theming-gtk4") user_flatpak_theming_gtk3 = self.settings.get_boolean( - "user-flatpak-theming-gtk3") + "user-flatpak-theming-gtk3" + ) # global_flatpak_theming_gtk3 = self.settings.get_boolean( # "global-flatpak-theming-gtk3") @@ -69,12 +77,14 @@ class GradiencePreferencesWindow(Adw.PreferencesWindow): # self.allow_gtk3_flatpak_theming_global.set_state(global_flatpak_theming_gtk3) self.allow_gtk4_flatpak_theming_user.connect( - "state-set", self.on_allow_gtk4_flatpak_theming_user_toggled) + "state-set", self.on_allow_gtk4_flatpak_theming_user_toggled + ) # self.allow_gtk4_flatpak_theming_global.connect( # "state-set", self.on_allow_gtk4_flatpak_theming_global_toggled) self.allow_gtk3_flatpak_theming_user.connect( - "state-set", self.on_allow_gtk3_flatpak_theming_user_toggled) + "state-set", self.on_allow_gtk3_flatpak_theming_user_toggled + ) # self.allow_gtk3_flatpak_theming_global.connect( # "state-set", self.on_allow_gtk3_flatpak_theming_global_toggled) @@ -87,7 +97,8 @@ class GradiencePreferencesWindow(Adw.PreferencesWindow): remove_gtk_user_override(self, self.settings, "gtk4") buglog( - f"user-flatpak-theming-gtk4: {self.settings.get_boolean('user-flatpak-theming-gtk4')}") + f"user-flatpak-theming-gtk4: {self.settings.get_boolean('user-flatpak-theming-gtk4')}" + ) def on_allow_gtk3_flatpak_theming_user_toggled(self, *args): state = self.allow_gtk3_flatpak_theming_user.props.state @@ -98,7 +109,8 @@ class GradiencePreferencesWindow(Adw.PreferencesWindow): remove_gtk_user_override(self, self.settings, "gtk3") buglog( - f"user-flatpak-theming-gtk3: {self.settings.get_boolean('user-flatpak-theming-gtk3')}") + f"user-flatpak-theming-gtk3: {self.settings.get_boolean('user-flatpak-theming-gtk3')}" + ) def on_allow_gtk4_flatpak_theming_global_toggled(self, *args): state = self.allow_gtk4_flatpak_theming_global.props.state @@ -109,7 +121,8 @@ class GradiencePreferencesWindow(Adw.PreferencesWindow): remove_gtk_global_override(self, self.settings, "gtk4") buglog( - f"global-flatpak-theming-gtk4: {self.settings.get_boolean('global-flatpak-theming-gtk4')}") + f"global-flatpak-theming-gtk4: {self.settings.get_boolean('global-flatpak-theming-gtk4')}" + ) def on_allow_gtk3_flatpak_theming_global_toggled(self, *args): state = self.allow_gtk3_flatpak_theming_global.props.state @@ -120,4 +133,5 @@ class GradiencePreferencesWindow(Adw.PreferencesWindow): remove_gtk_global_override(self, self.settings, "gtk3") buglog( - f"global-flatpak-theming-gtk3: {self.settings.get_boolean('global-flatpak-theming-gtk3')}") + f"global-flatpak-theming-gtk3: {self.settings.get_boolean('global-flatpak-theming-gtk3')}" + ) diff --git a/src/preset_row.py b/src/preset_row.py index 3c573b8c..ee317086 100644 --- a/src/preset_row.py +++ b/src/preset_row.py @@ -59,13 +59,15 @@ class GradiencePresetRow(Adw.ActionRow): def on_apply_button_clicked(self, *_args): buglog("apply") - self.app.load_preset_from_file(os.path.join( - os.environ.get("XDG_CONFIG_HOME", - os.environ["HOME"] + "/.config"), - "presets", - self.prefix, - to_slug_case(self.name) + ".json", - )) + self.app.load_preset_from_file( + os.path.join( + os.environ.get("XDG_CONFIG_HOME", + os.environ["HOME"] + "/.config"), + "presets", + self.prefix, + to_slug_case(self.name) + ".json", + ) + ) @Gtk.Template.Callback() def on_name_entry_changed(self, *_args): @@ -89,12 +91,9 @@ class GradiencePresetRow(Adw.ActionRow): self.delete_toast.set_button_label(_("Undo")) self.delete_toast.connect("dismissed", self.on_delete_toast_dismissed) self.delete_toast.connect( - "button-clicked", - self.on_undo_button_clicked) + "button-clicked", self.on_undo_button_clicked) - self.toast_overlay.add_toast( - self.delete_toast - ) + self.toast_overlay.add_toast(self.delete_toast) self.win.old_name = self.name @@ -103,13 +102,15 @@ class GradiencePresetRow(Adw.ActionRow): self.win.reload_pref_group() def update_value(self): - os.remove(os.path.join( - os.environ.get("XDG_CONFIG_HOME", - os.environ["HOME"] + "/.config"), - "presets", - self.prefix, - to_slug_case(self.old_name) + ".json", - )) + os.remove( + os.path.join( + os.environ.get("XDG_CONFIG_HOME", + os.environ["HOME"] + "/.config"), + "presets", + self.prefix, + to_slug_case(self.old_name) + ".json", + ) + ) with open( os.path.join( os.environ.get("XDG_CONFIG_HOME", @@ -129,27 +130,30 @@ class GradiencePresetRow(Adw.ActionRow): } file.write(json.dumps(object_to_write, indent=4)) self.app.clear_dirty() - self.toast_overlay.add_toast( - Adw.Toast(title=_("Preset renamed")) - ) + self.toast_overlay.add_toast(Adw.Toast(title=_("Preset renamed"))) self.old_name = self.name def do_delete_preset(self): if self.delete_preset: try: - os.rename(os.path.join( - os.environ.get("XDG_CONFIG_HOME", - os.environ["HOME"] + "/.config"), - "presets", - self.prefix, - to_slug_case(self.old_name) + ".json", - ), os.path.join( - os.environ.get("XDG_CONFIG_HOME", - os.environ["HOME"] + "/.config"), - "presets", - self.prefix, - to_slug_case(self.old_name) + ".json.to_delete", - )) + os.rename( + os.path.join( + os.environ.get( + "XDG_CONFIG_HOME", os.environ["HOME"] + "/.config" + ), + "presets", + self.prefix, + to_slug_case(self.old_name) + ".json", + ), + os.path.join( + os.environ.get( + "XDG_CONFIG_HOME", os.environ["HOME"] + "/.config" + ), + "presets", + self.prefix, + to_slug_case(self.old_name) + ".json.to_delete", + ), + ) except Exception as exception: print(exception.with_traceback()) finally: @@ -160,13 +164,16 @@ class GradiencePresetRow(Adw.ActionRow): def on_delete_toast_dismissed(self, widget): if self.delete_preset: try: - os.remove(os.path.join( - os.environ.get("XDG_CONFIG_HOME", - os.environ["HOME"] + "/.config"), - "presets", - self.prefix, - to_slug_case(self.old_name) + ".json.to_delete", - )) + os.remove( + os.path.join( + os.environ.get( + "XDG_CONFIG_HOME", os.environ["HOME"] + "/.config" + ), + "presets", + self.prefix, + to_slug_case(self.old_name) + ".json.to_delete", + ) + ) except Exception as exception: print(exception.with_traceback()) self.toast_overlay.add_toast( @@ -174,25 +181,29 @@ class GradiencePresetRow(Adw.ActionRow): ) else: self.toast_overlay.add_toast( - Adw.Toast(title=_("Preset removed")) - ) + Adw.Toast(title=_("Preset removed"))) finally: self.win.reload_pref_group() else: try: - os.rename(os.path.join( - os.environ.get("XDG_CONFIG_HOME", - os.environ["HOME"] + "/.config"), - "presets", - self.prefix, - to_slug_case(self.old_name) + ".json.to_delete", - ), os.path.join( - os.environ.get("XDG_CONFIG_HOME", - os.environ["HOME"] + "/.config"), - "presets", - self.prefix, - to_slug_case(self.old_name) + ".json", - )) + os.rename( + os.path.join( + os.environ.get( + "XDG_CONFIG_HOME", os.environ["HOME"] + "/.config" + ), + "presets", + self.prefix, + to_slug_case(self.old_name) + ".json.to_delete", + ), + os.path.join( + os.environ.get( + "XDG_CONFIG_HOME", os.environ["HOME"] + "/.config" + ), + "presets", + self.prefix, + to_slug_case(self.old_name) + ".json", + ), + ) except Exception as exception: print(exception.with_traceback()) finally: diff --git a/src/presets_manager_window.py b/src/presets_manager_window.py index e6fd5e26..0bd67613 100644 --- a/src/presets_manager_window.py +++ b/src/presets_manager_window.py @@ -31,6 +31,7 @@ from .modules.custom_presets import fetch_presets from .constants import rootdir, build_type from .modules.utils import to_slug_case from .repo_row import GradienceRepoRow + PRESETS_LIST_URL = "https://github.com/GradienceTeam/Community/raw/main/presets.json" @@ -55,7 +56,8 @@ class GradiencePresetWindow(Adw.Window): custom_presets = {} official_repositories = { - "Official": "https://github.com/GradienceTeam/Community/raw/main/presets.json"} + "Official": "https://github.com/GradienceTeam/Community/raw/main/presets.json" + } search_results_list = [] @@ -90,9 +92,8 @@ class GradiencePresetWindow(Adw.Window): self.save_repos() def save_repos(self): - self.settings.set_value( - "repos", GLib.Variant( - "a{sv}", self.user_repositories)) + self.settings.set_value("repos", GLib.Variant( + "a{sv}", self.user_repositories)) self.reload_repos_group() self.setup_explore() @@ -131,16 +132,13 @@ class GradiencePresetWindow(Adw.Window): dialog = Adw.MessageDialog( transient_for=self, heading=_("Add new repository"), - body=_( - "Add a repository to install additional presets" - ), + body=_("Add a repository to install additional presets"), body_use_markup=True, ) dialog.add_response("cancel", _("Cancel")) dialog.add_response("add", _("Add")) - dialog.set_response_appearance( - "add", Adw.ResponseAppearance.SUGGESTED) + dialog.set_response_appearance("add", Adw.ResponseAppearance.SUGGESTED) dialog.set_default_response("cancel") dialog.set_close_response("cancel") @@ -191,9 +189,11 @@ class GradiencePresetWindow(Adw.Window): self.search_spinner.props.visible = False for (preset, preset_name), preset_url in zip( - self.explore_presets.items(), urls): + self.explore_presets.items(), urls + ): row = GradienceExplorePresetRow( - preset_name, preset_url, self, repo_name) + preset_name, preset_url, self, repo_name + ) self.search_results.append(row) self.search_results_list.append(row) if not_offline: @@ -205,8 +205,7 @@ class GradiencePresetWindow(Adw.Window): self.file_chooser_dialog.set_transient_for(self) self.file_chooser_dialog.connect( - "response", self.on_file_chooser_response - ) + "response", self.on_file_chooser_response) def connect_signals(self): self.search_entry.connect("search-changed", self.on_search_changed) @@ -240,18 +239,23 @@ class GradiencePresetWindow(Adw.Window): Adw.Toast(title=_("Preset already exists")) ) else: - shutil.copy(self.preset_path.get_path(), os.path.join( - os.environ.get("XDG_CONFIG_HOME", - os.environ["HOME"] + "/.config"), - "presets", - preset_file - )) - self.toast_overlay.add_toast( - Adw.Toast(title=_("Preset imported")) + shutil.copy( + self.preset_path.get_path(), + os.path.join( + os.environ.get( + "XDG_CONFIG_HOME", os.environ["HOME"] + + "/.config" + ), + "presets", + preset_file, + ), ) + self.toast_overlay.add_toast( + Adw.Toast(title=_("Preset imported"))) else: - self.toast_overlay.add_toast(Adw.Toast( - title=_("Unsupported file format, must be .json"))) + self.toast_overlay.add_toast( + Adw.Toast(title=_("Unsupported file format, must be .json")) + ) self.reload_pref_group() @@ -277,7 +281,9 @@ class GradiencePresetWindow(Adw.Window): if file_name.endswith(".json"): try: with open( - os.path.join(preset_directory, file_name), "r", encoding="utf-8" + os.path.join(preset_directory, file_name), + "r", + encoding="utf-8", ) as file: preset_text = file.read() preset = json.loads(preset_text) @@ -285,8 +291,9 @@ class GradiencePresetWindow(Adw.Window): raise KeyError("variables") if preset.get("palette") is None: raise KeyError("palette") - presets_list[file_name.replace( - ".json", "")] = preset["name"] + presets_list[file_name.replace(".json", "")] = preset[ + "name" + ] except Exception: self.toast_overlay.add_toast( Adw.Toast(title=_("Failed to load preset")) @@ -301,7 +308,9 @@ class GradiencePresetWindow(Adw.Window): try: with open( - os.path.join(preset_directory, "user", repo), "r", encoding="utf-8" + os.path.join(preset_directory, "user", repo), + "r", + encoding="utf-8", ) as file: preset_text = file.read() preset = json.loads(preset_text) @@ -309,8 +318,9 @@ class GradiencePresetWindow(Adw.Window): raise KeyError("variables") if preset.get("palette") is None: raise KeyError("palette") - presets_list["user"][file_name.replace( - ".json", "")] = preset["name"] + presets_list["user"][file_name.replace(".json", "")] = preset[ + "name" + ] except Exception: self.toast_overlay.add_toast( Adw.Toast(title=_("Failed to load preset")) @@ -329,7 +339,10 @@ class GradiencePresetWindow(Adw.Window): self.preset_list = Adw.PreferencesGroup() self.preset_list.set_title(_("User Presets")) self.preset_list.set_description( - _("See GradienceTeam/Community on Github for more presets")) + _( + 'See GradienceTeam/Community on Github for more presets' + ) + ) if self.custom_presets: for repo, presets in self.custom_presets.items(): @@ -340,6 +353,9 @@ class GradiencePresetWindow(Adw.Window): else: self.preset_empty = Adw.ActionRow() self.preset_empty.set_title( - _("No preset found! Use the import button to import one or search one on the Explore tab")) + _( + "No preset found! Use the import button to import one or search one on the Explore tab" + ) + ) self.preset_list.add(self.preset_empty) self.installed.add(self.preset_list) diff --git a/src/repo_row.py b/src/repo_row.py index 0d449f13..4c735ec1 100644 --- a/src/repo_row.py +++ b/src/repo_row.py @@ -48,10 +48,9 @@ class GradienceRepoRow(Adw.ActionRow): self.remove_button.set_visible(False) self.path = os.path.join( - os.environ.get("XDG_CONFIG_HOME", - os.environ["HOME"] + "/.config"), + os.environ.get("XDG_CONFIG_HOME", os.environ["HOME"] + "/.config"), "presets", - to_slug_case(repo_name) + to_slug_case(repo_name), ) if not os.path.exists(self.path): @@ -59,9 +58,7 @@ class GradienceRepoRow(Adw.ActionRow): @Gtk.Template.Callback() def on_remove_button_clicked(self, *_args): - self.toast_overlay.add_toast( - Adw.Toast(title=_("Repository removed")) - ) + self.toast_overlay.add_toast(Adw.Toast(title=_("Repository removed"))) self.win.remove_repo(self.name) diff --git a/src/run_async.py b/src/run_async.py index e91a872a..1feff72a 100644 --- a/src/run_async.py +++ b/src/run_async.py @@ -51,13 +51,15 @@ class RunAsync(threading.Thread): try: result = self.task_func(*args, **kwargs) except Exception as exception: - buglog("Error while running async job: " - f"{self.task_func}\nException: {exception}") + buglog( + "Error while running async job: " + f"{self.task_func}\nException: {exception}" + ) error = exception _ex_type, _ex_value, trace = sys.exc_info() traceback.print_tb(trace) - traceback_info = '\n'.join(traceback.format_tb(trace)) + traceback_info = "\n".join(traceback.format_tb(trace)) buglog([str(exception), traceback_info]) self.source_id = GLib.idle_add(self.callback, result, error) diff --git a/src/setting.py b/src/setting.py index 1a58137d..fe0d77c8 100644 --- a/src/setting.py +++ b/src/setting.py @@ -18,13 +18,7 @@ class GradienceSetting: - def __init__( - self, - name, - title, - value_type, - explanation=None, - default_value=None): + def __init__(self, name, title, value_type, explanation=None, default_value=None): # TODO supported types: # text # integer diff --git a/src/welcome.py b/src/welcome.py index 92443a81..9a600080 100644 --- a/src/welcome.py +++ b/src/welcome.py @@ -22,7 +22,10 @@ from gi.repository import Gtk, Adw, Gio, Gdk from .run_async import RunAsync from .modules.utils import buglog -from .modules.flatpak_overrides import create_gtk_user_override, remove_gtk_user_override +from .modules.flatpak_overrides import ( + create_gtk_user_override, + remove_gtk_user_override, +) from .constants import rootdir, app_id @@ -46,13 +49,8 @@ class GradienceWelcomeWindow(Adw.Window): img_welcome = Gtk.Template.Child() label_skip = Gtk.Template.Child() - carousel_pages = [ - "welcome", - "gradience", - "configure", - "download", - "finish" - ] + carousel_pages = ["welcome", "gradience", + "configure", "download", "finish"] images = [ f"{rootdir}/images/welcome.svg", f"{rootdir}/images/welcome-dark.svg", @@ -69,14 +67,14 @@ class GradienceWelcomeWindow(Adw.Window): # connect signals self.connect("close-request", self.quit) - self.carousel.connect('page-changed', self.page_changed) + self.carousel.connect("page-changed", self.page_changed) self.btn_close.connect("clicked", self.close_window) self.btn_back.connect("clicked", self.previous_page) self.btn_next.connect("clicked", self.next_page) self.btn_install.connect("clicked", self.install_runner) self.settings.connect( - "notify::gtk-application-prefer-dark-theme", - self.theme_changed) + "notify::gtk-application-prefer-dark-theme", self.theme_changed + ) self.btn_close.set_sensitive(False) @@ -87,7 +85,9 @@ class GradienceWelcomeWindow(Adw.Window): def theme_changed(self, settings, key): self.img_welcome.set_from_resource( - self.images[settings.get_property("gtk-application-prefer-dark-theme")]) + self.images[settings.get_property( + "gtk-application-prefer-dark-theme")] + ) def get_page(self, index): return self.carousel_pages[index] @@ -134,7 +134,8 @@ class GradienceWelcomeWindow(Adw.Window): def allow_flatpak_theming_user_toggled(self, *args): create_gtk_user_override(self, self.gio_settings, "gtk4") buglog( - f"user-flatpak-theming: {self.gio_settings.get_boolean('user-flatpak-theming')}") + f"user-flatpak-theming: {self.gio_settings.get_boolean('user-flatpak-theming')}" + ) def install_runner(self, widget): def set_completed(result, error=False): @@ -179,7 +180,7 @@ class GradienceWelcomeWindow(Adw.Window): def pulse(self): # This function update the progress bar every 1s. while True: - time.sleep(.5) + time.sleep(0.5) self.progressbar.pulse() def close_window(self, widget): diff --git a/src/window.py b/src/window.py index db6a4256..0942dc06 100644 --- a/src/window.py +++ b/src/window.py @@ -64,27 +64,19 @@ class GradienceMainWindow(Adw.ApplicationWindow): self.settings = Gio.Settings(app_id) self.settings.bind( - "window-width", - self, - "default-width", - Gio.SettingsBindFlags.DEFAULT) + "window-width", self, "default-width", Gio.SettingsBindFlags.DEFAULT + ) self.settings.bind( - "window-height", - self, - "default-height", - Gio.SettingsBindFlags.DEFAULT) + "window-height", self, "default-height", Gio.SettingsBindFlags.DEFAULT + ) self.settings.bind( - "window-maximized", - self, - "maximized", - Gio.SettingsBindFlags.DEFAULT) + "window-maximized", self, "maximized", Gio.SettingsBindFlags.DEFAULT + ) self.settings.bind( - "window-fullscreen", - self, - "fullscreened", - Gio.SettingsBindFlags.DEFAULT) + "window-fullscreen", self, "fullscreened", Gio.SettingsBindFlags.DEFAULT + ) self.connect("close-request", self.__close_window) self.style_manager = self.get_application().style_manager @@ -97,11 +89,9 @@ class GradienceMainWindow(Adw.ApplicationWindow): def get_default_wallpaper(self): background_settings = Gio.Settings("org.gnome.desktop.background") if self.style_manager.get_dark(): - picture_uri = background_settings.get_string( - "picture-uri-dark") + picture_uri = background_settings.get_string("picture-uri-dark") else: - picture_uri = background_settings.get_string( - "picture-uri") + picture_uri = background_settings.get_string("picture-uri") buglog(picture_uri) if picture_uri.startswith("file://"): self.monet_image_file = Gio.File.new_for_uri(picture_uri) @@ -128,8 +118,7 @@ class GradienceMainWindow(Adw.ApplicationWindow): self.monet_image_file = self.monet_file_chooser_dialog.get_file() image_basename = self.monet_image_file.get_basename() self.monet_file_chooser_button.set_label(image_basename) - self.monet_file_chooser_button.set_tooltip_text( - image_basename) + self.monet_file_chooser_button.set_tooltip_text(image_basename) self.monet_file_chooser_dialog.hide() if response == Gtk.ResponseType.ACCEPT: @@ -142,7 +131,10 @@ class GradienceMainWindow(Adw.ApplicationWindow): self.monet_pref_group.set_name("monet") self.monet_pref_group.set_title(_("Monet Engine")) self.monet_pref_group.set_description( - _("Monet is an engine that generates a Material Design 3 palette from an image's color.")) + _( + "Monet is an engine that generates a Material Design 3 palette from an image's color." + ) + ) self.apply_button = Gtk.Button() self.apply_button.set_label(_("Apply")) @@ -158,7 +150,7 @@ class GradienceMainWindow(Adw.ApplicationWindow): self.monet_file_chooser_button = Gtk.Button() self.monet_file_chooser_button.set_valign(Gtk.Align.CENTER) - #self.monet_file_chooser_button.set_label(_("Choose a file")) + # self.monet_file_chooser_button.set_label(_("Choose a file")) # self.monet_file_chooser_button.set_icon_name("folder-pictures-symbolic") child_button = Gtk.Box() @@ -221,8 +213,9 @@ class GradienceMainWindow(Adw.ApplicationWindow): if self.monet_image_file.endswith(".svg"): drawing = svg2rlg(self.monet_image_file) self.monet_image_file = os.path.join( - os.environ.get("XDG_RUNTIME_DIR"), "gradience_bg.png") - renderPM.drawToFile(drawing, self.monet_image_file, fmt='PNG') + os.environ.get("XDG_RUNTIME_DIR"), "gradience_bg.png" + ) + renderPM.drawToFile(drawing, self.monet_image_file, fmt="PNG") if self.monet_image_file.endswith(".xml"): buglog("XML WIP") @@ -235,10 +228,11 @@ class GradienceMainWindow(Adw.ApplicationWindow): ) else: basewidth = 64 - wpercent = (basewidth / float(self.monet_img.size[0])) + wpercent = basewidth / float(self.monet_img.size[0]) hsize = int((float(self.monet_img.size[1]) * float(wpercent))) self.monet_img = self.monet_img.resize( - (basewidth, hsize), Image.Resampling.LANCZOS) + (basewidth, hsize), Image.Resampling.LANCZOS + ) self.theme = themeFromImage(self.monet_img) self.tone = self.tone_row.get_selected_item() self.monet_theme = self.monet_theme_row.get_selected_item() @@ -278,7 +272,10 @@ class GradienceMainWindow(Adw.ApplicationWindow): palette_pref_group.set_name("palette_colors") palette_pref_group.set_title(_("Palette Colors")) palette_pref_group.set_description( - _('Named palette colors used by some applications. Default colors follow the GNOME Human Interface Guidelines.')) + _( + 'Named palette colors used by some applications. Default colors follow the GNOME Human Interface Guidelines.' + ) + ) for color in settings_schema["palette"]: palette_shades = GradiencePaletteShades( color["prefix"], color["title"], color["n_shades"] @@ -296,10 +293,8 @@ class GradienceMainWindow(Adw.ApplicationWindow): self.errors_button.set_visible(len(errors) > 0) for error in errors: self.errors_list.append( - GradienceError( - error["error"], - error["element"], - error["line"])) + GradienceError(error["error"], error["element"], error["line"]) + ) @Gtk.Template.Callback() def on_presets_button_clicked(self, *args):