Browse Source

Don't display inspector component background if component is empty
Immediately refresh renderable/font inspectors after rebuild

BearishSun 10 years ago
parent
commit
e21a0b2520

+ 2 - 0
MBansheeEditor/Inspector/GenericInspector.cs

@@ -32,6 +32,8 @@ namespace BansheeEditor
 
                     currentIndex += inspectableField.GetNumLayoutElements();
                 }
+
+                base.SetVisible(!isEmpty);
             }
         }
 

+ 2 - 2
MBansheeEditor/Inspector/InspectableArray.cs

@@ -60,7 +60,7 @@ namespace BansheeEditor
         }
 
         /// <inheritdoc/>
-        public override bool GetRebuildOnModify()
+        public override bool ShouldRebuildOnModify()
         {
             return true;
         }
@@ -265,7 +265,7 @@ namespace BansheeEditor
                 {
                     // If rebuild GUI is set to true, we will just rebuild the entire inspectable field, so no need to 
                     // call Update on the existing one.
-                    if (!field.GetRebuildOnModify())
+                    if (!field.ShouldRebuildOnModify())
                     {
                         rebuildGUI = false;
                         return field.Refresh(0);

+ 1 - 1
MBansheeEditor/Inspector/InspectableField.cs

@@ -85,7 +85,7 @@ namespace BansheeEditor
         /// Checks does the field GUI has to be rebuilt if the field is marked as modified.
         /// </summary>
         /// <returns>True if field GUI has to be rebuilt if the field is marked as modified.</returns>
-        public virtual bool GetRebuildOnModify()
+        public virtual bool ShouldRebuildOnModify()
         {
             return false;
         }

+ 5 - 5
MBansheeEditor/Inspector/InspectableList.cs

@@ -62,7 +62,7 @@ namespace BansheeEditor
         }
 
         /// <inheritdoc/>
-        public override bool GetRebuildOnModify()
+        public override bool ShouldRebuildOnModify()
         {
             return true;
         }
@@ -113,10 +113,10 @@ namespace BansheeEditor
                 if (propertyValue != null)
                 {
                     SerializableList list = property.GetList();
-                    newArrayField.Construct<InspectableArrayGUIRow>(title, false, list.GetLength(), layout);
+                    newArrayField.Construct<InspectableListGUIRow>(title, false, list.GetLength(), layout);
                 }
                 else
-                    newArrayField.Construct<InspectableArrayGUIRow>(title, true, 0, layout);
+                    newArrayField.Construct<InspectableListGUIRow>(title, true, 0, layout);
 
                 newArrayField.property = property;
 
@@ -216,7 +216,7 @@ namespace BansheeEditor
         /// <summary>
         /// Contains GUI elements for a single entry in the array.
         /// </summary>
-        private class InspectableArrayGUIRow : GUIListFieldRow
+        private class InspectableListGUIRow : GUIListFieldRow
         {
             private InspectableField field;
 
@@ -238,7 +238,7 @@ namespace BansheeEditor
                 {
                     // If rebuild GUI is set to true, we will just rebuild the entire inspectable field, so no need to 
                     // call Update on the existing one.
-                    if (!field.GetRebuildOnModify())
+                    if (!field.ShouldRebuildOnModify())
                     {
                         rebuildGUI = false;
                         return field.Refresh(0);

+ 1 - 1
MBansheeEditor/Inspector/InspectableObject.cs

@@ -71,7 +71,7 @@ namespace BansheeEditor
         }
 
         /// <inheritdoc/>
-        public override bool GetRebuildOnModify()
+        public override bool ShouldRebuildOnModify()
         {
             return true;
         }

+ 2 - 0
MBansheeEditor/Inspectors/FontInspector.cs

@@ -96,6 +96,7 @@ namespace BansheeEditor
                 importOptions.FontSizes = newFontSizes;
 
                 BuildGUI();
+                Refresh();
             };
 
             charRanges = GUIArrayField.Create<CharRangeArrayRow, CharRange>(
@@ -106,6 +107,7 @@ namespace BansheeEditor
                 importOptions.CharRanges = newRanges;
 
                 BuildGUI();
+                Refresh();
             };
 
             antialiasingField = new GUIToggleField(new LocEdString("Antialiasing"));

+ 1 - 0
MBansheeEditor/Inspectors/RenderableInspector.cs

@@ -121,6 +121,7 @@ namespace BansheeEditor
             {
                 renderable.Materials = (Material[])x;
                 BuildGUI();
+                Refresh();
             };
             meshField.OnChanged += x => renderable.Mesh = x as Mesh;
             layersField.OnSelectionChanged += x =>