diff --git a/src/Mod/Drawing/App/FeaturePage.cpp b/src/Mod/Drawing/App/FeaturePage.cpp
index 28959032d..3d5efa956 100644
--- a/src/Mod/Drawing/App/FeaturePage.cpp
+++ b/src/Mod/Drawing/App/FeaturePage.cpp
@@ -57,7 +57,7 @@ FeaturePage::FeaturePage(void) : numChildren(0)
static const char *group = "Drawing view";
ADD_PROPERTY_TYPE(PageResult ,(0),group,App::Prop_Output,"Resulting SVG document of that page");
- ADD_PROPERTY_TYPE(Template ,(""),group,App::Prop_None ,"Template for the page");
+ ADD_PROPERTY_TYPE(Template ,(""),group,App::Prop_Transient ,"Template for the page");
ADD_PROPERTY_TYPE(EditableTexts,(""),group,App::Prop_None,"Substitution values for the editable strings in the template");
}
@@ -104,6 +104,12 @@ void FeaturePage::onChanged(const App::Property* prop)
App::DocumentObjectGroup::onChanged(prop);
}
+void FeaturePage::onDocumentRestored()
+{
+ Base::FileInfo fi(PageResult.getValue());
+ Template.setValue(App::Application::getResourceDir() + "Mod/Drawing/Templates/" + fi.fileName());
+}
+
App::DocumentObjectExecReturn *FeaturePage::execute(void)
{
std::string temp = Template.getValue();
diff --git a/src/Mod/Drawing/App/FeaturePage.h b/src/Mod/Drawing/App/FeaturePage.h
index 96e96e569..dd5af8739 100644
--- a/src/Mod/Drawing/App/FeaturePage.h
+++ b/src/Mod/Drawing/App/FeaturePage.h
@@ -64,6 +64,8 @@ public:
protected:
void onBeforeChange(const App::Property* prop);
void onChanged(const App::Property* prop);
+ /// get called after a document has been fully restored
+ virtual void onDocumentRestored();
private:
int numChildren;
diff --git a/src/Mod/Raytracing/App/LuxProject.cpp b/src/Mod/Raytracing/App/LuxProject.cpp
index c293dbbad..a983fa841 100644
--- a/src/Mod/Raytracing/App/LuxProject.cpp
+++ b/src/Mod/Raytracing/App/LuxProject.cpp
@@ -30,6 +30,7 @@
#include
#include
+#include
#include "LuxProject.h"
#include "LuxFeature.h"
#include "LuxTools.h"
@@ -46,10 +47,16 @@ PROPERTY_SOURCE(Raytracing::LuxProject, App::DocumentObjectGroup)
LuxProject::LuxProject(void)
{
ADD_PROPERTY_TYPE(PageResult ,(0),0,App::Prop_Output,"Resulting Luxrender Scene file");
- ADD_PROPERTY_TYPE(Template ,(""),0,App::Prop_None ,"Template for the Luxrender project");
+ ADD_PROPERTY_TYPE(Template ,(""),0,App::Prop_Transient ,"Template for the Luxrender project");
ADD_PROPERTY_TYPE(Camera ,(""),0,App::Prop_None ,"Camera settings");
}
+void LuxProject::onDocumentRestored()
+{
+ Base::FileInfo fi(PageResult.getValue());
+ Template.setValue(App::Application::getResourceDir() + "Mod/Drawing/Templates/" + fi.fileName());
+}
+
App::DocumentObjectExecReturn *LuxProject::execute(void)
{
if (std::string(PageResult.getValue()) == "")
diff --git a/src/Mod/Raytracing/App/LuxProject.h b/src/Mod/Raytracing/App/LuxProject.h
index 00b363360..6b0024290 100644
--- a/src/Mod/Raytracing/App/LuxProject.h
+++ b/src/Mod/Raytracing/App/LuxProject.h
@@ -59,6 +59,8 @@ public:
const char* getViewProviderName(void) const {
return "RaytracingGui::ViewProviderLux";
}
+ /// get called after a document has been fully restored
+ virtual void onDocumentRestored();
//@}
diff --git a/src/Mod/Raytracing/App/RayProject.cpp b/src/Mod/Raytracing/App/RayProject.cpp
index c9401efdd..dc07230a4 100644
--- a/src/Mod/Raytracing/App/RayProject.cpp
+++ b/src/Mod/Raytracing/App/RayProject.cpp
@@ -30,6 +30,7 @@
#include
#include
+#include
#include "RayProject.h"
#include "RayFeature.h"
@@ -45,10 +46,16 @@ PROPERTY_SOURCE(Raytracing::RayProject, App::DocumentObjectGroup)
RayProject::RayProject(void)
{
ADD_PROPERTY_TYPE(PageResult ,(0),0,App::Prop_Output,"Resulting povray Project file");
- ADD_PROPERTY_TYPE(Template ,(""),0,App::Prop_None ,"Template for the Povray project");
+ ADD_PROPERTY_TYPE(Template ,(""),0,App::Prop_Transient ,"Template for the Povray project");
ADD_PROPERTY_TYPE(Camera ,(""),0,App::Prop_None ,"Camera settings");
}
+void RayProject::onDocumentRestored()
+{
+ Base::FileInfo fi(PageResult.getValue());
+ Template.setValue(App::Application::getResourceDir() + "Mod/Drawing/Templates/" + fi.fileName());
+}
+
App::DocumentObjectExecReturn *RayProject::execute(void)
{
if (std::string(PageResult.getValue()) == "")
diff --git a/src/Mod/Raytracing/App/RayProject.h b/src/Mod/Raytracing/App/RayProject.h
index 002c37e1e..c21d2fc16 100644
--- a/src/Mod/Raytracing/App/RayProject.h
+++ b/src/Mod/Raytracing/App/RayProject.h
@@ -59,6 +59,8 @@ public:
const char* getViewProviderName(void) const {
return "RaytracingGui::ViewProviderPovray";
}
+ /// get called after a document has been fully restored
+ virtual void onDocumentRestored();
//@}