mirror of
https://github.com/GradienceTeam/Gradience.git
synced 2024-10-01 07:47:53 +00:00
feat: rename PRESET_DIR to presets_dir, and make it more central
This commit is contained in:
parent
badee5681f
commit
30a5891558
5 changed files with 63 additions and 75 deletions
|
@ -45,13 +45,7 @@ from .preferences import GradiencePreferencesWindow
|
|||
from .modules.utils import to_slug_case, buglog
|
||||
from .plugins_list import GradiencePluginsList
|
||||
from .presets_manager_window import GradiencePresetWindow
|
||||
from .modules.preset import Preset
|
||||
|
||||
|
||||
PRESET_DIR = os.path.join(
|
||||
os.environ.get("XDG_CONFIG_HOME", os.environ["HOME"] + "/.config"),
|
||||
"presets",
|
||||
)
|
||||
from .modules.preset import Preset, presets_dir
|
||||
|
||||
|
||||
class GradienceApplication(Adw.Application):
|
||||
|
@ -164,11 +158,11 @@ class GradienceApplication(Adw.Application):
|
|||
if self.props.active_window.presets_menu.get_n_items() > 1:
|
||||
self.props.active_window.presets_menu.remove(1)
|
||||
|
||||
if not os.path.exists(PRESET_DIR):
|
||||
os.makedirs(PRESET_DIR)
|
||||
if not os.path.exists(presets_dir):
|
||||
os.makedirs(presets_dir)
|
||||
|
||||
self.custom_presets = {"user": {}}
|
||||
for repo in Path(PRESET_DIR).iterdir():
|
||||
for repo in Path(presets_dir).iterdir():
|
||||
if repo.is_dir(): # repo
|
||||
presets_list = {}
|
||||
for file_name in repo.iterdir():
|
||||
|
@ -176,7 +170,7 @@ class GradienceApplication(Adw.Application):
|
|||
if file_name.endswith(".json"):
|
||||
try:
|
||||
with open(
|
||||
os.path.join(PRESET_DIR, file_name),
|
||||
os.path.join(presets_dir, file_name),
|
||||
"r",
|
||||
encoding="utf-8",
|
||||
) as file:
|
||||
|
@ -199,15 +193,15 @@ class GradienceApplication(Adw.Application):
|
|||
buglog("file")
|
||||
# keep compatiblity with old presets
|
||||
if repo.name.endswith(".json"):
|
||||
if not os.path.isdir(os.path.join(PRESET_DIR, "user")):
|
||||
os.mkdir(os.path.join(PRESET_DIR, "user"))
|
||||
if not os.path.isdir(os.path.join(presets_dir, "user")):
|
||||
os.mkdir(os.path.join(presets_dir, "user"))
|
||||
|
||||
os.rename(repo, os.path.join(
|
||||
PRESET_DIR, "user", repo.name))
|
||||
presets_dir, "user", repo.name))
|
||||
|
||||
try:
|
||||
with open(
|
||||
os.path.join(PRESET_DIR, "user", repo),
|
||||
os.path.join(presets_dir, "user", repo),
|
||||
"r",
|
||||
encoding="utf-8",
|
||||
) as file:
|
||||
|
@ -254,12 +248,12 @@ class GradienceApplication(Adw.Application):
|
|||
custom_menu_section.append_item(menu_item)
|
||||
|
||||
except KeyError:
|
||||
if not os.path.exists(os.path.join(PRESET_DIR, "user")):
|
||||
os.makedirs(os.path.join(PRESET_DIR, "user"))
|
||||
if not os.path.exists(os.path.join(PRESET_DIR, "curated")):
|
||||
os.makedirs(os.path.join(PRESET_DIR, "curated"))
|
||||
if not os.path.exists(os.path.join(PRESET_DIR, "official")):
|
||||
os.makedirs(os.path.join(PRESET_DIR, "official"))
|
||||
if not os.path.exists(os.path.join(presets_dir, "user")):
|
||||
os.makedirs(os.path.join(presets_dir, "user"))
|
||||
if not os.path.exists(os.path.join(presets_dir, "curated")):
|
||||
os.makedirs(os.path.join(presets_dir, "curated"))
|
||||
if not os.path.exists(os.path.join(presets_dir, "official")):
|
||||
os.makedirs(os.path.join(presets_dir, "official"))
|
||||
open_in_file_manager_item = Gio.MenuItem()
|
||||
open_in_file_manager_item.set_label(_("Open in File Manager"))
|
||||
open_in_file_manager_item.set_action_and_target_value(
|
||||
|
|
|
@ -1,10 +1,29 @@
|
|||
from ..settings_schema import settings_schema
|
||||
# preset.py
|
||||
#
|
||||
# Change the look of Adwaita, with ease
|
||||
# Copyright (C) 2022 Gradience Team
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
import json
|
||||
import os
|
||||
|
||||
from ..settings_schema import settings_schema
|
||||
from .utils import buglog, to_slug_case
|
||||
|
||||
PRESET_DIR = os.path.join(
|
||||
|
||||
presets_dir = os.path.join(
|
||||
os.environ.get("XDG_CONFIG_HOME", os.environ["HOME"] + "/.config"),
|
||||
"presets",
|
||||
)
|
||||
|
@ -35,7 +54,7 @@ class Preset:
|
|||
self.repo = repo
|
||||
if preset_path is None:
|
||||
self.preset_path = os.path.join(
|
||||
PRESET_DIR, repo, self.name + ".json")
|
||||
presets_dir, repo, self.name + ".json")
|
||||
else:
|
||||
self.preset_path = preset_path
|
||||
self.load_preset()
|
||||
|
@ -71,18 +90,18 @@ class Preset:
|
|||
def save_preset(self, name=None, plugins_list=None, to=None):
|
||||
if to is None:
|
||||
self.preset_path = os.path.join(
|
||||
PRESET_DIR, self.repo, self.name + ".json")
|
||||
presets_dir, self.repo, self.name + ".json")
|
||||
else:
|
||||
self.preset_path = to
|
||||
if not os.path.exists(
|
||||
os.path.join(
|
||||
PRESET_DIR,
|
||||
presets_dir,
|
||||
"user",
|
||||
)
|
||||
):
|
||||
os.makedirs(
|
||||
os.path.join(
|
||||
PRESET_DIR,
|
||||
presets_dir,
|
||||
"user",
|
||||
)
|
||||
)
|
||||
|
|
|
@ -1,19 +1,14 @@
|
|||
from .utils import to_slug_case
|
||||
from .preset import Preset
|
||||
from .preset import Preset, presets_dir
|
||||
import os
|
||||
|
||||
PRESET_DIR = os.path.join(
|
||||
os.environ.get("XDG_CONFIG_HOME", os.environ["HOME"] + "/.config"),
|
||||
"presets",
|
||||
)
|
||||
|
||||
|
||||
class Repo:
|
||||
presets = {}
|
||||
|
||||
def __init__(self, name):
|
||||
self.name = to_slug_case(name)
|
||||
self.path = os.path.join(PRESET_DIR, name)
|
||||
self.path = os.path.join(presets_dir, name)
|
||||
self.presets = self.get_presets()
|
||||
|
||||
def get_presets(self):
|
||||
|
|
|
@ -20,7 +20,7 @@ import os
|
|||
|
||||
from gi.repository import Gtk, Adw, Xdp, XdpGtk4
|
||||
|
||||
from gradience.modules.custom_presets import PRESET_DIR
|
||||
from gradience.modules.preset import presets_dir
|
||||
|
||||
from .constants import rootdir
|
||||
from .modules.utils import to_slug_case, buglog
|
||||
|
@ -113,9 +113,7 @@ class GradiencePresetRow(Adw.ExpanderRow):
|
|||
|
||||
self.app.load_preset_from_file(
|
||||
os.path.join(
|
||||
os.environ.get("XDG_CONFIG_HOME",
|
||||
os.environ["HOME"] + "/.config"),
|
||||
"presets",
|
||||
presets_dir,
|
||||
self.prefix,
|
||||
to_slug_case(self.name) + ".json",
|
||||
)
|
||||
|
@ -170,16 +168,12 @@ class GradiencePresetRow(Adw.ExpanderRow):
|
|||
try:
|
||||
os.rename(
|
||||
os.path.join(
|
||||
os.environ.get("XDG_CONFIG_HOME",
|
||||
os.environ["HOME"] + "/.config"),
|
||||
"presets",
|
||||
presets_dir,
|
||||
self.prefix,
|
||||
self.file_name + ".json",
|
||||
),
|
||||
os.path.join(
|
||||
os.environ.get("XDG_CONFIG_HOME",
|
||||
os.environ["HOME"] + "/.config"),
|
||||
"presets",
|
||||
presets_dir,
|
||||
self.prefix,
|
||||
self.file_name + ".json.to_delete",
|
||||
),
|
||||
|
@ -199,7 +193,7 @@ class GradiencePresetRow(Adw.ExpanderRow):
|
|||
self.preset.save_preset()
|
||||
os.remove(
|
||||
os.path.join(
|
||||
PRESET_DIR,
|
||||
presets_dir,
|
||||
self.prefix,
|
||||
self.file_name + ".json",
|
||||
)
|
||||
|
@ -212,10 +206,7 @@ class GradiencePresetRow(Adw.ExpanderRow):
|
|||
try:
|
||||
os.remove(
|
||||
os.path.join(
|
||||
os.environ.get(
|
||||
"XDG_CONFIG_HOME", os.environ["HOME"] + "/.config"
|
||||
),
|
||||
"presets",
|
||||
presets_dir,
|
||||
self.prefix,
|
||||
self.file_name + ".json.to_delete",
|
||||
)
|
||||
|
@ -232,18 +223,12 @@ class GradiencePresetRow(Adw.ExpanderRow):
|
|||
try:
|
||||
os.rename(
|
||||
os.path.join(
|
||||
os.environ.get(
|
||||
"XDG_CONFIG_HOME", os.environ["HOME"] + "/.config"
|
||||
),
|
||||
"presets",
|
||||
presets_dir,
|
||||
self.prefix,
|
||||
self.file_name + ".json.to_delete",
|
||||
),
|
||||
os.path.join(
|
||||
os.environ.get(
|
||||
"XDG_CONFIG_HOME", os.environ["HOME"] + "/.config"
|
||||
),
|
||||
"presets",
|
||||
presets_dir,
|
||||
self.prefix,
|
||||
self.file_name + ".json",
|
||||
),
|
||||
|
|
|
@ -20,6 +20,7 @@ import os
|
|||
import shutil
|
||||
import json
|
||||
|
||||
from collections import OrderedDict
|
||||
from pathlib import Path
|
||||
|
||||
from gi.repository import Gtk, Adw, GLib
|
||||
|
@ -29,9 +30,9 @@ from .builtin_preset_row import GradienceBuiltinPresetRow
|
|||
from .explore_preset_row import GradienceExplorePresetRow
|
||||
from .modules.custom_presets import fetch_presets
|
||||
from .repo_row import GradienceRepoRow
|
||||
from .modules.preset import presets_dir
|
||||
from .modules.utils import buglog
|
||||
from .constants import rootdir
|
||||
from collections import OrderedDict
|
||||
|
||||
@Gtk.Template(resource_path=f"{rootdir}/ui/presets_manager_window.ui")
|
||||
class GradiencePresetWindow(Adw.Window):
|
||||
|
@ -283,11 +284,7 @@ class GradiencePresetWindow(Adw.Window):
|
|||
shutil.copy(
|
||||
self.preset_path.get_path(),
|
||||
os.path.join(
|
||||
os.environ.get(
|
||||
"XDG_CONFIG_HOME", os.environ["HOME"] +
|
||||
"/.config"
|
||||
),
|
||||
"presets",
|
||||
presets_dir,
|
||||
preset_file,
|
||||
),
|
||||
)
|
||||
|
@ -302,12 +299,9 @@ class GradiencePresetWindow(Adw.Window):
|
|||
|
||||
def reload_pref_group(self):
|
||||
buglog("reload")
|
||||
preset_directory = os.path.join(
|
||||
os.environ.get("XDG_CONFIG_HOME", os.environ["HOME"] + "/.config"),
|
||||
"presets",
|
||||
)
|
||||
if not os.path.exists(preset_directory):
|
||||
os.makedirs(preset_directory)
|
||||
|
||||
if not os.path.exists(presets_dir):
|
||||
os.makedirs(presets_dir)
|
||||
|
||||
self.custom_presets = {"user": {}}
|
||||
self.builtin_presets = {
|
||||
|
@ -315,7 +309,8 @@ class GradiencePresetWindow(Adw.Window):
|
|||
"adwaita-dark": "Adwaita Dark",
|
||||
"pretty-purple": "Pretty Purple",
|
||||
}
|
||||
for repo in Path(preset_directory).iterdir():
|
||||
|
||||
for repo in Path(presets_dir).iterdir():
|
||||
if repo.is_dir(): # repo
|
||||
presets_list = {}
|
||||
for file_name in repo.iterdir():
|
||||
|
@ -323,7 +318,7 @@ class GradiencePresetWindow(Adw.Window):
|
|||
if file_name.endswith(".json"):
|
||||
try:
|
||||
with open(
|
||||
os.path.join(preset_directory, file_name),
|
||||
os.path.join(presets_dir, file_name),
|
||||
"r",
|
||||
encoding="utf-8",
|
||||
) as file:
|
||||
|
@ -345,15 +340,15 @@ class GradiencePresetWindow(Adw.Window):
|
|||
buglog("file")
|
||||
# keep compatiblity with old presets
|
||||
if repo.name.endswith(".json"):
|
||||
if not os.path.isdir(os.path.join(preset_directory, "user")):
|
||||
os.mkdir(os.path.join(preset_directory, "user"))
|
||||
if not os.path.isdir(os.path.join(presets_dir, "user")):
|
||||
os.mkdir(os.path.join(presets_dir, "user"))
|
||||
|
||||
os.rename(repo, os.path.join(
|
||||
preset_directory, "user", repo.name))
|
||||
presets_dir, "user", repo.name))
|
||||
|
||||
try:
|
||||
with open(
|
||||
os.path.join(preset_directory, "user", repo),
|
||||
os.path.join(presets_dir, "user", repo),
|
||||
"r",
|
||||
encoding="utf-8",
|
||||
) as file:
|
||||
|
|
Loading…
Reference in a new issue