Rename transient directory when saving document under new file

This commit is contained in:
wmayer
2013-05-06 11:28:13 +02:00
parent 558d4129f0
commit 17dcb84682
2 changed files with 6 additions and 4 deletions

View File

@@ -459,8 +459,10 @@ void Document::onChanged(const Property* prop)
this->TransientDir.setValue(new_dir);
}
}
// make sure that the uuid is unique
else {
// when reloading an existing document the transient directory doesn't change
// so we must avoid to generate a new uuid
else if (TransDirNew.filePath() != TransDirOld.filePath()) {
// make sure that the uuid is unique
std::string uuid = this->Uid.getValueStr();
Base::Uuid id;
Base::Console().Warning("Document with the UUID '%s' already exists, change to '%s'\n",
@@ -894,6 +896,7 @@ bool Document::saveAs(const char* file)
if (this->FileName.getStrValue() != file) {
this->FileName.setValue(file);
this->Label.setValue(fi.fileNamePure());
this->Uid.touch(); // this forces a rename of the transient directory
}
return save();

View File

@@ -281,7 +281,6 @@ void PropertyFileIncluded::setPyObject(PyObject *value)
void PropertyFileIncluded::Save (Base::Writer &writer) const
{
#if 0
// when saving a document under a new file name the transient directory
// name changes and thus the stored file name doesn't work any more.
if (!_cValue.empty() && !Base::FileInfo(_cValue).exists()) {
@@ -289,7 +288,7 @@ void PropertyFileIncluded::Save (Base::Writer &writer) const
if (fi.exists())
_cValue = fi.filePath();
}
#endif
if (writer.isForceXML()) {
if (!_cValue.empty()) {
Base::FileInfo file(_cValue.c_str());