#include "DNXML.h"
#include "DNXMLElement.h"
#include "DNUtils.h"
+#include "dccontainersaver.h"
+#include "uieditor/dcuieditor.h"
+#include "propertyeditor/dcpropertyeditor.h"
#include <stdlib.h>
#include <sstream>
#include <iostream>
DCContent::DCContent(DCCreator *creator, std::string contentPath) :
- mCreator(creator), mValid(false), mContainer(0)
+ d_creator(creator), d_valid(false), d_container(0)
{
- mContainer = (DCContainer*) TKContainer::createContainer();
- mContainer->setContent(this);
+ d_contentRootPath = QString::fromStdString(contentPath);
+ d_container = (DCContainer*) TKContainer::createContainer();
+ d_container->setContent(this);
dnGlobal()->updateRunningStatus(DNGlobal::STOPPED);
dnGlobal()->resetErrorStatus();
std::string dataStorePath = containerRoot;
dataStorePath.append("/data.db");
- succeeded = mContainer->setDataStore(dataStorePath.c_str());
+ succeeded = d_container->setDataStore(dataStorePath.c_str());
if (!succeeded)
{
dnNotifyError("Initialization failed","Failed to the setup data store");
return;
}
- mValid = true;
+ d_valid = true;
}
DCContent::~DCContent()
{
- mValid = false;
- if (mContainer)
+ d_valid = false;
+ if (d_container)
{
- delete mContainer;
- mContainer = 0;
+ delete d_container;
+ d_container = 0;
}
}
+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;
bool DCContent::parseContainerFile(const char *containerRoot)
{
- DNContainerBuilder builder(mContainer);
- mContainer->beganBuildContainer();
+ DNContainerBuilder builder(d_container);
+ d_container->beganBuildContainer();
bool r = builder.buildContainerFromXHTML(containerRoot);
- mContainer->endedBuildContainer();
+ d_container->endedBuildContainer();
return r;
}
+
+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 containerSaver(d_container);
+
+ QString containerRoot = contentRoot + "/Container";
+ return containerSaver.saveForPage(containerRoot, page);
+}