Browse Source

Fix for checking unsaved changes

rsredsq 10 years ago
parent
commit
28d3b83fd6

+ 15 - 0
Script/AtomicEditor/ui/frames/HierarchyFrame.ts

@@ -8,6 +8,7 @@
 import HierarchyFrameMenu = require("./menus/HierarchyFrameMenu");
 import MenuItemSources = require("./menus/MenuItemSources");
 import EditorEvents = require("editor/EditorEvents");
+import EditorUI = require("ui/EditorUI");
 
 var IconTemporary = "ComponentBitmap";
 
@@ -67,6 +68,11 @@ class HierarchyFrame extends Atomic.UIWidget {
 
         this.subscribeToEvent("ComponentAdded", (ev: Atomic.ComponentAddedEvent) => {
 
+            var resourceEditor = EditorUI.getMainFrame().resourceframe.currentResourceEditor;
+            if (resourceEditor) {
+                resourceEditor.setModified(true);
+            }
+
             if (!ev.component || ev.component.typeName != "PrefabComponent") return;
 
             var node = ev.node;
@@ -83,6 +89,11 @@ class HierarchyFrame extends Atomic.UIWidget {
 
         this.subscribeToEvent("ComponentRemoved", (ev: Atomic.ComponentRemovedEvent) => {
 
+            var resourceEditor = EditorUI.getMainFrame().resourceframe.currentResourceEditor;
+            if (resourceEditor) {
+                resourceEditor.setModified(true);
+            }
+
             if (!ev.component || ev.component.typeName != "PrefabComponent") return;
 
             var node = ev.node;
@@ -131,6 +142,8 @@ class HierarchyFrame extends Atomic.UIWidget {
         if (!node.parent || node.scene != this.scene)
             return;
 
+        EditorUI.getMainFrame().resourceframe.currentResourceEditor.setModified(true);
+
         var parentID = this.nodeIDToItemID[node.parent.id];
 
         var childItemID = this.recursiveAddNode(parentID, node);
@@ -145,6 +158,8 @@ class HierarchyFrame extends Atomic.UIWidget {
         if (!this.scene)
             return;
 
+        EditorUI.getMainFrame().resourceframe.currentResourceEditor.setModified(true);
+
         var node = ev.node;
 
         if (this.filterNode(node))

+ 2 - 1
Script/AtomicEditor/ui/frames/ResourceFrame.ts

@@ -37,8 +37,9 @@ class ResourceFrame extends ScriptWidget {
 
     handleSaveResource(ev: EditorEvents.SaveResourceEvent) {
 
-        if (this.currentResourceEditor)
+        if (this.currentResourceEditor){
             this.currentResourceEditor.save();
+        }
 
     }
 

+ 2 - 1
Script/AtomicEditor/ui/frames/inspector/ComponentInspector.ts

@@ -211,7 +211,8 @@ class ComponentInspector extends Atomic.UISection {
 
             // refresh entire inspector, fix this...
             this.sendEvent("EditorActiveNodeChange", { node: node });
-
+            this.sendEvent("ComponentRemoved");
+            
             return true;
 
         }

+ 1 - 0
Script/AtomicEditor/ui/frames/inspector/CreateComponentButton.ts

@@ -138,6 +138,7 @@ class CreateComponentButton extends Atomic.UIButton {
 
               this.parent.addChildRelative(ci, Atomic.UI_WIDGET_Z_REL_BEFORE, this);
 
+              this.sendEvent("ComponentAdded");
             }
 
             return true;

+ 1 - 1
Source/AtomicEditor/Editors/ResourceEditor.cpp

@@ -42,7 +42,7 @@ public:
             TBMessageWindowSettings settings(TB_MSG_OK_CANCEL, TBID(uint32(0)));
             settings.dimmer = true;
             settings.styling = true;
-            msg_win->Show("Unsaved Modifications", "There are unsaved modications.\nDo you wish to discard them and close?", &settings, 640, 360);
+            msg_win->Show("Unsaved Modifications", "There are unsaved modifications.\nDo you wish to discard them and close?", &settings, 640, 360);
         }
         else
         {

+ 14 - 3
Source/AtomicEditor/Editors/SceneEditor3D/SceneEditor3D.cpp

@@ -255,6 +255,8 @@ bool SceneEditor3D::Save()
         file.Close();
     }
 
+    SetModified(false);
+
     return true;
 
 }
@@ -263,9 +265,18 @@ void SceneEditor3D::SetModified(bool modified)
 {
     ResourceEditor::SetModified(modified);
 
-    String filename = GetFileNameAndExtension(fullpath_);
-    filename += "*";
-    button_->SetText(filename.CString());
+    if (modified)
+    {
+        String filename = GetFileNameAndExtension(fullpath_);
+        filename += "*";
+        button_->SetText(filename.CString());
+    }
+    else
+    {
+        String filename = GetFileNameAndExtension(fullpath_);
+        button_->SetText(filename.CString());
+    }
+
 }
 
 }