fix: Use different variables for display name and filename

This commit is contained in:
tfuxu 2022-10-11 20:34:04 +02:00 committed by 0xMRTT
parent 35e14b3960
commit 281e848ab1
No known key found for this signature in database
5 changed files with 160 additions and 23 deletions

View file

@ -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

View file

@ -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

View file

@ -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:

View file

@ -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

View file

@ -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,