mirror of
https://github.com/GradienceTeam/Gradience.git
synced 2024-09-29 23:17:53 +00:00
Opening the preset dropdown now updates the menu
I don't think it's that reliable but whatever
This commit is contained in:
parent
bc50c1ebab
commit
2f27fc3563
3 changed files with 20 additions and 7 deletions
16
src/main.py
16
src/main.py
|
@ -126,10 +126,20 @@ class AdwcustomizerApplication(Adw.Application):
|
|||
self.create_action("save_preset", self.show_save_preset_dialog)
|
||||
self.create_action("about", self.show_about_window)
|
||||
|
||||
self.reload_user_defined_presets()
|
||||
|
||||
win.present()
|
||||
self.is_ready = True
|
||||
|
||||
def reload_user_defined_presets(self):
|
||||
if self.props.active_window.presets_menu.get_n_items() > 1:
|
||||
self.props.active_window.presets_menu.remove(1)
|
||||
|
||||
preset_directory = os.path.join(os.environ['XDG_CONFIG_HOME'], "presets")
|
||||
if not os.path.exists(preset_directory):
|
||||
os.makedirs(preset_directory)
|
||||
|
||||
self.custom_presets.clear()
|
||||
for file_name in os.listdir(preset_directory):
|
||||
if file_name.endswith(".json"):
|
||||
try:
|
||||
|
@ -161,12 +171,8 @@ class AdwcustomizerApplication(Adw.Application):
|
|||
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("app.open_preset_directory")
|
||||
# does not work yet for some reason, i asked people in flatpak matrix room
|
||||
custom_menu_section.append_item(open_in_file_manager_item)
|
||||
win.presets_menu.append_section(_("User Defined Presets"), custom_menu_section)
|
||||
win.present()
|
||||
|
||||
self.is_ready = True
|
||||
self.props.active_window.presets_menu.append_section(_("User Defined Presets"), custom_menu_section)
|
||||
|
||||
def open_preset_directory(self, *_args):
|
||||
parent = XdpGtk4.parent_new_gtk(self.props.active_window)
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
using Gtk 4.0;
|
||||
using Adw 1;
|
||||
|
||||
template AdwcustomizerMainWindow : Gtk.ApplicationWindow {
|
||||
template AdwcustomizerMainWindow : ApplicationWindow {
|
||||
title: _("Adwaita Manager");
|
||||
default-width: 1280;
|
||||
default-height: 720;
|
||||
|
||||
titlebar: Gtk.HeaderBar {
|
||||
titlebar: HeaderBar {
|
||||
[start]
|
||||
Button apply-button {
|
||||
styles ["suggested-action"]
|
||||
|
|
|
@ -39,6 +39,10 @@ class AdwcustomizerMainWindow(Gtk.ApplicationWindow):
|
|||
errors_button = Gtk.Template.Child("errors-button")
|
||||
errors_list = Gtk.Template.Child("errors-list")
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
super().__init__(**kwargs)
|
||||
self.presets_dropdown.get_popover().connect("show", self.on_presets_dropdown_activate)
|
||||
|
||||
def set_current_preset_name(self, new_name):
|
||||
self.presets_dropdown.set_label(new_name)
|
||||
|
||||
|
@ -50,3 +54,6 @@ class AdwcustomizerMainWindow(Gtk.ApplicationWindow):
|
|||
self.errors_button.set_visible(len(errors) > 0)
|
||||
for error in errors:
|
||||
self.errors_list.append(AdwcustomizerError(error["error"], error["element"], error["line"]))
|
||||
|
||||
def on_presets_dropdown_activate(self, *args):
|
||||
self.get_application().reload_user_defined_presets()
|
||||
|
|
Loading…
Reference in a new issue