Explorar o código

tools: add copy-name action

Daniele Bartolini hai 1 ano
pai
achega
40afdccc99

+ 15 - 7
tools/level_editor/level_editor.vala

@@ -471,7 +471,8 @@ public class LevelEditorApplication : Gtk.Application
 		{ "close-project", on_close_project, null, null },
 		{ "close-project", on_close_project, null, null },
 		{ "quit",          on_quit,          null, null },
 		{ "quit",          on_quit,          null, null },
 		{ "open-resource", on_open_resource, "s",  null },
 		{ "open-resource", on_open_resource, "s",  null },
-		{ "copy-path",     on_copy_path,     "s",  null }
+		{ "copy-path",     on_copy_path,     "s",  null },
+		{ "copy-name",     on_copy_name,     "s",  null }
 	};
 	};
 
 
 	private const GLib.ActionEntry[] action_entries_edit =
 	private const GLib.ActionEntry[] action_entries_edit =
@@ -2548,19 +2549,26 @@ public class LevelEditorApplication : Gtk.Application
 		}
 		}
 	}
 	}
 
 
-	private void on_copy_path(GLib.SimpleAction action, GLib.Variant? param)
+	private void copy_string(string str)
 	{
 	{
-		string path  = param.get_string();
-
-		string abs_path = _project.absolute_path(path);
-
 		var clip = Gtk.Clipboard.get_default(Gdk.Display.get_default());
 		var clip = Gtk.Clipboard.get_default(Gdk.Display.get_default());
-		clip.set_text(abs_path, abs_path.length);
+		clip.set_text(str, str.length);
 #if !CROWN_PLATFORM_WINDOWS
 #if !CROWN_PLATFORM_WINDOWS
 		clip.store();
 		clip.store();
 #endif
 #endif
 	}
 	}
 
 
+	private void on_copy_path(GLib.SimpleAction action, GLib.Variant? param)
+	{
+		string path  = param.get_string();
+		copy_string(_project.absolute_path(path));
+	}
+
+	private void on_copy_name(GLib.SimpleAction action, GLib.Variant? param)
+	{
+		copy_string(param.get_string());
+	}
+
 	private void on_show_grid(GLib.SimpleAction action, GLib.Variant? param)
 	private void on_show_grid(GLib.SimpleAction action, GLib.Variant? param)
 	{
 	{
 		_show_grid = !action.get_state().get_boolean();
 		_show_grid = !action.get_state().get_boolean();

+ 12 - 0
tools/level_editor/project_browser.vala

@@ -232,6 +232,12 @@ private Gtk.Menu? project_entry_menu_create(string type, string name)
 		});
 		});
 	menu.add(mi);
 	menu.add(mi);
 
 
+	mi = new Gtk.MenuItem.with_label("Copy Name");
+	mi.activate.connect(() => {
+			GLib.Application.get_default().activate_action("copy-name", new GLib.Variant.string(name));
+		});
+	menu.add(mi);
+
 	if (type != "<folder>" || name != "") {
 	if (type != "<folder>" || name != "") {
 		mi = new Gtk.MenuItem.with_label("Add to Favorites");
 		mi = new Gtk.MenuItem.with_label("Add to Favorites");
 		mi.activate.connect(() => {
 		mi.activate.connect(() => {
@@ -274,6 +280,12 @@ private Gtk.Menu? favorites_entry_menu_create(string type, string name)
 		});
 		});
 	menu.add(mi);
 	menu.add(mi);
 
 
+	mi = new Gtk.MenuItem.with_label("Copy Name");
+	mi.activate.connect(() => {
+			GLib.Application.get_default().activate_action("copy-name", new GLib.Variant.string(name));
+		});
+	menu.add(mi);
+
 	mi = new Gtk.MenuItem.with_label("Remove from Favorites");
 	mi = new Gtk.MenuItem.with_label("Remove from Favorites");
 	mi.activate.connect(() => {
 	mi.activate.connect(() => {
 			var tuple = new GLib.Variant.tuple({type, name});
 			var tuple = new GLib.Variant.tuple({type, name});