OSDN Git Service

[denncoCreator] fixed a crash bug.
[dennco/denncoCreator.git] / Source / dccontent.cpp
index b5624d2..898ed7d 100644 (file)
@@ -25,6 +25,8 @@
 #include "DNXMLElement.h"
 #include "DNUtils.h"
 #include "dccontainersaver.h"
+#include "uieditor/dcuieditor.h"
+#include "propertyeditor/dcpropertyeditor.h"
 
 #include <stdlib.h>
 #include <sstream>
@@ -33,6 +35,7 @@
 DCContent::DCContent(DCCreator *creator, std::string contentPath) :
     d_creator(creator), d_valid(false), d_container(0)
 {
+    d_contentRootPath = QString::fromStdString(contentPath);
     d_container = (DCContainer*) TKContainer::createContainer();
     d_container->setContent(this);
 
@@ -80,6 +83,22 @@ DCContent::~DCContent()
     }
 }
 
+bool DCContent::getIsModified() const
+{
+    if (d_valid && d_container && d_container->getIsModified())
+    {
+        return true;
+    }
+
+    if (DCPropertyEditor::getEditor()->isVisible())
+        DCPropertyEditor::getEditor()->close();
+
+    if (DCUIEditor::getEditor()->isVisible())
+        DCUIEditor::getEditor()->close();
+
+    return false;
+}
+
 bool DCContent::parseSettingFile(const char *contentRoot)
 {
     bool valid = false;
@@ -168,8 +187,18 @@ bool DCContent::parseContainerFile(const char *containerRoot)
     return r;
 }
 
-bool DCContent::saveAll(const QString& containerRoot)
+bool DCContent::saveAll(const QString& contentRoot)
+{
+    DCContainerSaver containerSaver(d_container);
+
+    QString containerRoot = contentRoot + "/Container";
+    return containerSaver.saveAll(containerRoot);
+}
+
+bool DCContent::saveForPage(const QString &contentRoot, DCVCPage *page)
 {
-    DCContainerSaver saver(d_container);
-    return saver.saveAll(containerRoot);
+    DCContainerSaver containerSaver(d_container);
+
+    QString containerRoot = contentRoot + "/Container";
+    return containerSaver.saveForPage(containerRoot, page);
 }