Przeglądaj źródła

Update level tree view when selection changes

Daniele Bartolini 9 lat temu
rodzic
commit
658114ba42
1 zmienionych plików z 24 dodań i 1 usunięć
  1. 24 1
      tools/level_editor/level_tree_view.vala

+ 24 - 1
tools/level_editor/level_tree_view.vala

@@ -152,7 +152,30 @@ namespace Crown
 		private void on_level_selection_changed(Gee.ArrayList<Guid?> selection)
 		{
 			_tree_selection.changed.disconnect(on_tree_selection_changed);
-			// FIXME
+			_tree_selection.unselect_all();
+
+			_tree_filter.foreach ((model, path, iter) => {
+				Value type;
+				model.get_value(iter, 1, out type);
+				if ((int)type == ItemType.FOLDER)
+					return false;
+
+				Value id;
+				model.get_value(iter, 0, out id);
+				Guid guid_model = Guid.parse((string)id);
+
+				foreach (Guid? guid in selection)
+				{
+					if (guid_model == guid)
+					{
+						_tree_selection.select_iter(iter);
+						return false;
+					}
+				}
+
+				return false;
+			});
+
 			_tree_selection.changed.connect(on_tree_selection_changed);
 		}