Bläddra i källkod

tools: make resource chooser non-editable

Part-of: #181
Daniele Bartolini 1 år sedan
förälder
incheckning
c90bc9b399
1 ändrade filer med 9 tillägg och 16 borttagningar
  1. 9 16
      tools/widgets/resource_chooser_button.vala

+ 9 - 16
tools/widgets/resource_chooser_button.vala

@@ -10,7 +10,6 @@ namespace Crown
 public class ResourceChooserButton : Gtk.Box
 {
 	// Data
-	public bool _stop_emit;
 	public string _type;
 
 	// Widgets
@@ -23,13 +22,11 @@ public class ResourceChooserButton : Gtk.Box
 	{
 		get
 		{
-			return _name.text;
+			return _name.value;
 		}
 		set
 		{
-			_stop_emit = true;
-			_name.text = value;
-			_stop_emit = false;
+			_name.value = value;
 		}
 	}
 
@@ -41,14 +38,12 @@ public class ResourceChooserButton : Gtk.Box
 		Object(orientation: Gtk.Orientation.HORIZONTAL, spacing: 0);
 
 		// Data
-		_stop_emit = false;
 		_type = type;
 
 		// Widgets
 		_name = new EntryText();
-		_name.sensitive = false;
+		_name.set_editable(false);
 		_name.hexpand = true;
-		_name.changed.connect(on_value_changed);
 		this.pack_start(_name, true, true);
 
 		_revealer = new Gtk.Button.from_icon_name("go-jump-symbolic");
@@ -62,12 +57,6 @@ public class ResourceChooserButton : Gtk.Box
 		_project_store = store;
 	}
 
-	private void on_value_changed()
-	{
-		if (!_stop_emit)
-			value_changed();
-	}
-
 	private void on_selector_clicked()
 	{
 		Gtk.Dialog dg = new Gtk.Dialog.with_buttons("Select Resource"
@@ -78,7 +67,11 @@ public class ResourceChooserButton : Gtk.Box
 
 		var rb = new ResourceChooser(null, _project_store);
 		rb.set_type_filter(type_filter);
-		rb.resource_selected.connect(() => { _name.text = rb._name; dg.response(ResponseType.OK); });
+		rb.resource_selected.connect(() => {
+				_name.value = rb._name;
+				value_changed();
+				dg.response(ResponseType.OK);
+			});
 
 		dg.key_press_event.connect((ev) => {
 				if (ev.keyval == Gdk.Key.Escape) {
@@ -97,7 +90,7 @@ public class ResourceChooserButton : Gtk.Box
 
 	private void on_revealer_clicked()
 	{
-		var tuple = new GLib.Variant.tuple({_type, _name.text});
+		var tuple = new GLib.Variant.tuple({_type, _name.value});
 		GLib.Application.get_default().activate_action("reveal-resource", tuple);
 	}