diff --git a/0001-fix-Use-different-variables-for-display-name-and-fil.patch b/0001-fix-Use-different-variables-for-display-name-and-fil.patch new file mode 100644 index 00000000..2da08adc --- /dev/null +++ b/0001-fix-Use-different-variables-for-display-name-and-fil.patch @@ -0,0 +1,125 @@ +From 1d58f7292f500999b7c8c5efb2f602371d972704 Mon Sep 17 00:00:00 2001 +From: tfuxu <73042332+tfuxu@users.noreply.github.com> +Date: Tue, 11 Oct 2022 20:34:04 +0200 +Subject: [PATCH] fix: Use different variables for display name and filename + +--- + gradience/main.py | 4 ++-- + gradience/utils/preset.py | 29 +++++++++++++++++------------ + 2 files changed, 19 insertions(+), 14 deletions(-) + +diff --git a/gradience/main.py b/gradience/main.py +index 36a39e1..04deaac 100644 +--- a/gradience/main.py ++++ b/gradience/main.py +@@ -335,7 +335,7 @@ class GradienceApplication(Adw.Application): + self.preset = preset + self.is_ready = False + buglog(self.preset) +- self.preset_name = self.preset.preset_name ++ self.preset_name = self.preset.display_name + self.variables = self.preset.variables + self.palette = self.preset.palette + self.custom_css = self.preset.custom_css +@@ -783,7 +783,7 @@ class GradienceApplication(Adw.Application): + + def save_preset(self, _unused, response, preset_entry): + if response == "save": +- self.preset.save_preset(to_slug_case(preset_entry.get_text()), self.plugins_list) ++ self.preset.save_preset(preset_entry.get_text(), self.plugins_list) + self.clear_dirty() + self.win.toast_overlay.add_toast( + Adw.Toast(title=_("Preset saved"))) +diff --git a/gradience/utils/preset.py b/gradience/utils/preset.py +index 791ad2c..84bb78f 100644 +--- a/gradience/utils/preset.py ++++ b/gradience/utils/preset.py +@@ -32,13 +32,19 @@ presets_dir = os.path.join( + class Preset: + variables = {} + palette = {} ++ + custom_css = { + "gtk4": "", + "gtk3": "", + } ++ + plugins = {} ++ + repo = "user" +- name = "new_preset" ++ ++ display_name = "New Preset" ++ filename = "new_preset" ++ + badges = {} + + def __init__(self, name=None, repo=None, preset_path=None, text=None, preset=None): +@@ -47,14 +53,13 @@ class Preset: + elif preset: # css or dict + self.load_preset(preset=preset) + else: +- self.preset_name = name + if name is not None: +- self.name = to_slug_case(name) ++ self.filename = to_slug_case(name) + if repo is not None: + self.repo = repo + if preset_path is None: + self.preset_path = os.path.join( +- presets_dir, repo, self.name + ".json") ++ presets_dir, repo, self.filename + ".json") + else: + self.preset_path = preset_path + self.load_preset() +@@ -69,8 +74,8 @@ class Preset: + preset_text = file.read() + preset = json.loads(preset_text) + +- self.name = preset["name"] +- self.preset_name = to_slug_case(self.name) ++ self.display_name = preset["name"] ++ self.filename = to_slug_case(self.display_name) + self.variables = preset["variables"] + self.palette = preset["palette"] + +@@ -88,12 +93,15 @@ class Preset: + buglog(error, " -> preset : ", self.preset_path) + + def save_preset(self, name=None, plugins_list=None, to=None): +- self.name = name if name else self.name ++ self.display_name = name if name else self.display_name ++ self.filename = to_slug_case(name) if name else self.filename ++ + if to is None: + self.preset_path = os.path.join( +- presets_dir, self.repo, self.name + ".json") ++ presets_dir, self.repo, self.filename + ".json") + else: + self.preset_path = to ++ + if not os.path.exists( + os.path.join( + presets_dir, +@@ -107,9 +115,6 @@ class Preset: + ) + ) + +- if name is None: +- name = self.preset_name +- + if plugins_list is None: + plugins_list = {} + else: +@@ -121,7 +126,7 @@ class Preset: + encoding="utf-8", + ) as file: + object_to_write = { +- "name": name, ++ "name": self.display_name, + "variables": self.variables, + "palette": self.palette, + "custom_css": self.custom_css, +-- +2.38.0 + diff --git a/gradience/main.py b/gradience/main.py index 8ad01351..84807ee2 100644 --- a/gradience/main.py +++ b/gradience/main.py @@ -335,7 +335,7 @@ class GradienceApplication(Adw.Application): self.preset = preset self.is_ready = False buglog(self.preset) - self.preset_name = self.preset.preset_name + self.preset_name = self.preset.display_name self.variables = self.preset.variables self.palette = self.preset.palette self.custom_css = self.preset.custom_css diff --git a/gradience/ui/preset_row.py b/gradience/ui/preset_row.py index b97eacdb..1645cdd5 100644 --- a/gradience/ui/preset_row.py +++ b/gradience/ui/preset_row.py @@ -111,7 +111,7 @@ class GradiencePresetRow(Adw.ExpanderRow): os.path.join( presets_dir, self.prefix, - to_slug_case(self.name) + ".json", + to_slug_case(to_slug_case(self.name)) + ".json", ) ) @@ -166,12 +166,12 @@ class GradiencePresetRow(Adw.ExpanderRow): os.path.join( presets_dir, self.prefix, - self.preset.name + ".json", + to_slug_case(self.preset.filename) + ".json", ), os.path.join( presets_dir, self.prefix, - self.preset.name + ".json.to_delete", + to_slug_case(self.preset.filename) + ".json.to_delete", ), ) @@ -184,14 +184,19 @@ class GradiencePresetRow(Adw.ExpanderRow): self.delete_preset = True def update_value(self): - self.preset.preset_name = self.name - self.preset.name = to_slug_case(self.name) - self.preset.save_preset() + print(self.name_entry.get_text()) + old = self.preset.filename + self.preset.save_preset(self.name_entry.get_text()) + print(os.path.join( + presets_dir, + self.prefix, + to_slug_case(old) + ".json", + )) os.remove( os.path.join( presets_dir, self.prefix, - self.preset.name + ".json", + to_slug_case(old) + ".json", ) ) @@ -200,11 +205,16 @@ class GradiencePresetRow(Adw.ExpanderRow): if self.delete_preset: buglog("delete") try: + buglog(os.path.join( + presets_dir, + self.prefix, + to_slug_case(self.preset.filename) + ".json.to_delete", + )) os.remove( os.path.join( presets_dir, self.prefix, - self.preset.name + ".json.to_delete", + to_slug_case(self.preset.filename) + ".json.to_delete", ) ) except Exception as exception: @@ -221,12 +231,12 @@ class GradiencePresetRow(Adw.ExpanderRow): os.path.join( presets_dir, self.prefix, - self.preset.name + ".json.to_delete", + to_slug_case(self.preset.filename) + ".json.to_delete", ), os.path.join( presets_dir, self.prefix, - self.preset.name + ".json", + to_slug_case(self.preset.filename) + ".json", ), ) except Exception as exception: diff --git a/gradience/ui/presets_manager_window.py b/gradience/ui/presets_manager_window.py index cdcf23b3..f62ecc42 100644 --- a/gradience/ui/presets_manager_window.py +++ b/gradience/ui/presets_manager_window.py @@ -386,7 +386,7 @@ class GradiencePresetWindow(Adw.Window): ) ) - buglog(f"custom_presets values: {self.custom_presets.values()}") + buglog(f"custom_presets: {self.custom_presets}") presets_check = not ( len(self.custom_presets["user"]) == 0 diff --git a/gradience/utils/preset.py b/gradience/utils/preset.py index bf1462c7..48923d1e 100644 --- a/gradience/utils/preset.py +++ b/gradience/utils/preset.py @@ -38,7 +38,8 @@ class Preset: } plugins = {} repo = "user" - name = "new_preset" + display_name = "New Preset" + filename = "new_preset" badges = {} def __init__(self, name=None, repo=None, preset_path=None, text=None, preset=None): @@ -47,14 +48,13 @@ class Preset: elif preset: # css or dict self.load_preset(preset=preset) else: - self.preset_name = name if name is not None: - self.name = to_slug_case(name) + self.filename = to_slug_case(name) if repo is not None: self.repo = repo if preset_path is None: self.preset_path = os.path.join( - presets_dir, repo, self.name + ".json") + presets_dir, repo, self.filename + ".json") else: self.preset_path = preset_path self.load_preset() @@ -69,8 +69,8 @@ class Preset: preset_text = file.read() preset = json.loads(preset_text) - self.name = preset["name"] - self.preset_name = to_slug_case(self.name) + self.display_name = preset["name"] + self.filename = to_slug_case(self.display_name) self.variables = preset["variables"] self.palette = preset["palette"] @@ -88,9 +88,12 @@ class Preset: buglog(error, " -> preset : ", self.preset_path) def save_preset(self, name=None, plugins_list=None, to=None): + self.display_name = name if name else self.display_name + self.filename = to_slug_case(name) if name else self.filename + if to is None: self.preset_path = os.path.join( - presets_dir, self.repo, self.name + ".json") + presets_dir, self.repo, self.filename + ".json") else: self.preset_path = to if not os.path.exists( @@ -106,21 +109,20 @@ class Preset: ) ) - if name is None: - name = self.preset_name - if plugins_list is None: plugins_list = {} else: plugins_list = plugins_list.save() + print(self.preset_path) + with open( self.preset_path, "w", encoding="utf-8", ) as file: object_to_write = { - "name": name, + "name": self.display_name, "variables": self.variables, "palette": self.palette, "custom_css": self.custom_css,