public void RegularChange() { TestObject[] obj = new TestObject[] { new TestObject { Foo = 42, Bar = "Hello" }, new TestObject { Foo = 10, Bar = "World" }, new TestObject { Foo = 0, Bar = "Not" } }; ObjectPropertyChangedEventArgs args = new ObjectPropertyChangedEventArgs( new ObjectSelection(obj.Take(2)), new PropertyInfo[] { TestObject.FooProperty }); Assert.IsTrue(args.HasObject(obj[0])); Assert.IsTrue(args.HasObject(obj[1])); Assert.IsFalse(args.HasObject(obj[2])); Assert.IsTrue(args.HasAnyObject(obj)); Assert.IsTrue(args.HasAnyObject(obj.Skip(1))); Assert.IsFalse(args.HasAnyObject(obj.Skip(2))); Assert.IsTrue(args.HasProperty(TestObject.FooProperty)); Assert.IsFalse(args.HasProperty(TestObject.BarProperty)); Assert.IsFalse(args.HasProperty(UnrelatedObject.NotProperty)); Assert.IsTrue(args.HasAnyProperty(TestObject.FooProperty)); Assert.IsTrue(args.HasAnyProperty(TestObject.FooProperty, TestObject.BarProperty)); Assert.IsFalse(args.HasAnyProperty(TestObject.BarProperty)); Assert.IsFalse(args.HasAnyProperty(UnrelatedObject.NotProperty)); Assert.IsFalse(args.CompleteChange); }
private void DualityEditorApp_ObjectPropertyChanged(object sender, ObjectPropertyChangedEventArgs e) { // Ignore changes to objects we're not previewing if (!e.HasObject(this.prevImageValue)) return; // Ignore changes to AssetInfo data, as this doesn't directly affect us until Re-Import if (!e.CompleteChange && e.HasProperty(ReflectionInfo.Property_Resource_AssetInfo)) return; // Update the preview to reflect changes. this.InvalidatePreview(); this.PerformGetValue(); }
private void DualityEditorApp_ObjectPropertyChanged(object sender, ObjectPropertyChangedEventArgs e) { if (e is PrefabAppliedEventArgs || (e.HasProperty(ReflectionInfo.Property_GameObject_PrefabLink) && e.HasAnyObject(Scene.Current.AllObjects)) || (e.CompleteChange && e.HasObject(Scene.Current))) this.UpdatePrefabLinkStatus(false); if (e.HasProperty(ReflectionInfo.Property_GameObject_Name)) { foreach (GameObjectNode node in e.Objects.GameObjects.Select(g => this.FindNode(g))) if (node != null) node.Text = node.Obj.Name; } }
private void DualityEditorApp_ObjectPropertyChanged(object sender, ObjectPropertyChangedEventArgs e) { // If something Prefab-related changed, update the display state of all objects // to indicate new, removed or broken prefab links. if (e is PrefabAppliedEventArgs || (e.HasProperty(ReflectionInfo.Property_GameObject_PrefabLink) && e.HasAnyObject(Scene.Current.AllObjects))) { this.UpdatePrefabLinkStatus(false); } // Update the displayed names of objects if (e.HasProperty(ReflectionInfo.Property_GameObject_Name)) { foreach (GameObjectNode node in e.Objects.GameObjects.Select(g => this.FindNode(g))) if (node != null) node.Text = node.Obj.Name; } }