Added callbacks for values

For now they're just changing each other
This commit is contained in:
ArtyIF 2022-07-17 15:25:36 +03:00
parent 8d6608e4f7
commit bfcc7f3a54
4 changed files with 26 additions and 10 deletions

View file

@ -122,7 +122,7 @@ class AdwcustomizerApplication(Adw.Application):
modal=True,
program_name='AdwCustomizer',
logo_icon_name='com.github.ArtyIF.AdwCustomizer',
version='0.0.2',
version='0.0.3',
authors=['ArtyIF'],
copyright='© 2022 ArtyIF')

View file

@ -50,6 +50,14 @@ class AdwcustomizerOption(Adw.ActionRow):
self.update_value(value)
@Gtk.Template.Callback()
def on_color_value_changed(self, *args):
self.update_value(self.color_value.get_rgba().to_string(), update_from="color_value")
@Gtk.Template.Callback()
def on_text_value_changed(self, *args):
self.update_value(self.text_value.get_text(), update_from="text_value")
@Gtk.Template.Callback()
def on_text_value_toggled(self, *args):
if (self.text_value_toggle.get_active()):
@ -57,13 +65,19 @@ class AdwcustomizerOption(Adw.ActionRow):
else:
self.value_stack.set_visible_child(self.color_value)
def update_value(self, new_value):
self.text_value.set_text(new_value)
rgba = Gdk.RGBA()
if rgba.parse(new_value):
self.color_value.set_rgba(rgba)
self.text_value_toggle.set_active(False)
else:
self.text_value_toggle.set_active(True)
def update_value(self, new_value, **kwargs):
if kwargs.get("update_from") != "text_value":
self.text_value.set_text(new_value)
if kwargs.get("update_from") != "color_value":
rgba = Gdk.RGBA()
if rgba.parse(new_value):
self.color_value.set_rgba(rgba)
if kwargs.get("update_from") != "text_value":
self.text_value_toggle.set_active(False)
elif kwargs.get("update_from") != "text_value":
self.text_value_toggle.set_active(True)
else:
rgba.parse("#00000000")
self.color_value.set_rgba(rgba)

View file

@ -20,9 +20,11 @@ template AdwcustomizerOption : Adw.ActionRow {
ColorButton color-value {
rgba: "#00000000";
color-set => on_color_value_changed();
}
Entry text-value {
text: "#00000000";
changed => on_text_value_changed();
}
}

View file

@ -26,7 +26,7 @@
# use or other dealings in this Software without prior written
# authorization.
from gi.repository import Gtk, Gdk, Gio, Adw
from gi.repository import Gtk
import json
@Gtk.Template(resource_path='/com/github/ArtyIF/AdwCustomizer/ui/window.ui')