void PropertyFileIncluded::Save (Base::Writer &writer) const { if (writer.isForceXML()) { if (!_cValue.empty()) { Base::FileInfo file(_cValue.c_str()); writer.Stream() << writer.ind() << "<FileIncluded data=\"" << file.fileName() << "\">" << std::endl; // write the file in the XML stream writer.incInd(); writer.insertBinFile(_cValue.c_str()); writer.decInd(); writer.Stream() << writer.ind() <<"</FileIncluded>" << endl; } else writer.Stream() << writer.ind() << "<FileIncluded data=\"\"/>" << std::endl; } else { // instead initiate an extra file if (!_cValue.empty()) { Base::FileInfo file(_cValue.c_str()); writer.Stream() << writer.ind() << "<FileIncluded file=\"" << writer.addFile(file.fileName().c_str(), this) << "\"/>" << std::endl; } else writer.Stream() << writer.ind() << "<FileIncluded file=\"\"/>" << std::endl; } }
void PropertyFileIncluded::Save (Base::Writer &writer) const { // 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()) { Base::FileInfo fi(getDocTransientPath() + "/" + _BaseFileName); if (fi.exists()) _cValue = fi.filePath(); } if (writer.isForceXML()) { if (!_cValue.empty()) { Base::FileInfo file(_cValue.c_str()); writer.Stream() << writer.ind() << "<FileIncluded data=\"" << file.fileName() << "\">" << std::endl; // write the file in the XML stream writer.incInd(); writer.insertBinFile(_cValue.c_str()); writer.decInd(); writer.Stream() << writer.ind() <<"</FileIncluded>" << endl; } else { writer.Stream() << writer.ind() << "<FileIncluded data=\"\"/>" << std::endl; } } else { // instead initiate an extra file if (!_cValue.empty()) { Base::FileInfo file(_cValue.c_str()); writer.Stream() << writer.ind() << "<FileIncluded file=\"" << writer.addFile(file.fileName().c_str(), this) << "\"/>" << std::endl; } else { writer.Stream() << writer.ind() << "<FileIncluded file=\"\"/>" << std::endl; } } }