diff --git a/src/Mod/Import/App/AppImportPy.cpp b/src/Mod/Import/App/AppImportPy.cpp index 1769b4fa22..2fbeef16c0 100644 --- a/src/Mod/Import/App/AppImportPy.cpp +++ b/src/Mod/Import/App/AppImportPy.cpp @@ -279,7 +279,6 @@ private: std::string Utf8Name = std::string(Name); PyMem_Free(Name); - std::string name8bit = Part::encodeFilename(Utf8Name); try { Py::Sequence list(object); @@ -344,7 +343,7 @@ private: writer.write(hDoc); } else if (file.hasExtension({"glb", "gltf"})) { - Import::WriterGltf writer(name8bit, file); + Import::WriterGltf writer(file); writer.write(hDoc); } diff --git a/src/Mod/Import/App/ReaderGltf.cpp b/src/Mod/Import/App/ReaderGltf.cpp index a32b2f42dc..47da47f2ce 100644 --- a/src/Mod/Import/App/ReaderGltf.cpp +++ b/src/Mod/Import/App/ReaderGltf.cpp @@ -24,7 +24,6 @@ #include "PreCompiled.h" #ifndef _PreComp_ -#include #include #include #include @@ -60,9 +59,7 @@ void ReaderGltf::read(Handle(TDocStd_Document) hDoc) // NOLINT TCollection_AsciiString filename(file.filePath().c_str()); Standard_Boolean ret = aReader.Perform(filename, Message_ProgressRange()); if (!ret) { - std::stringstream str; - str << "Cannot read from file '" - << "" << file.filePath() << "'"; + throw Base::FileException("Cannot read from file: ", file); } Handle(XCAFDoc_ShapeTool) aShapeTool = XCAFDoc_DocumentTool::ShapeTool(hDoc->Main()); @@ -77,6 +74,7 @@ void ReaderGltf::read(Handle(TDocStd_Document) hDoc) // NOLINT } #else + (void)hDoc; throw Base::RuntimeError("gITF support requires OCCT 7.5.0 or later"); #endif } diff --git a/src/Mod/Import/App/ReaderIges.cpp b/src/Mod/Import/App/ReaderIges.cpp index 6f0373eb4c..22171052e2 100644 --- a/src/Mod/Import/App/ReaderIges.cpp +++ b/src/Mod/Import/App/ReaderIges.cpp @@ -66,7 +66,7 @@ void ReaderIges::read(Handle(TDocStd_Document) hDoc) // NOLINT aReader.SetNameMode(true); aReader.SetLayerMode(true); if (aReader.ReadFile(name8bit.c_str()) != IFSelect_RetDone) { - throw Base::FileException("cannot read IGES file", utf8Name.c_str()); + throw Base::FileException("Cannot read IGES file", file); } #if OCC_VERSION_HEX < 0x070500 diff --git a/src/Mod/Import/App/ReaderStep.cpp b/src/Mod/Import/App/ReaderStep.cpp index 3fb24a5dab..47cbb48f5b 100644 --- a/src/Mod/Import/App/ReaderStep.cpp +++ b/src/Mod/Import/App/ReaderStep.cpp @@ -52,7 +52,7 @@ void ReaderStep::read(Handle(TDocStd_Document) hDoc) // NOLINT aReader.SetLayerMode(true); aReader.SetSHUOMode(true); if (aReader.ReadFile(name8bit.c_str()) != IFSelect_RetDone) { - throw Base::FileException("Cannot read STEP file"); + throw Base::FileException("Cannot read STEP file", file); } #if OCC_VERSION_HEX < 0x070500 diff --git a/src/Mod/Import/App/WriterGltf.cpp b/src/Mod/Import/App/WriterGltf.cpp index e6cb037fd0..43ef543c4a 100644 --- a/src/Mod/Import/App/WriterGltf.cpp +++ b/src/Mod/Import/App/WriterGltf.cpp @@ -24,7 +24,6 @@ #include "PreCompiled.h" #ifndef _PreComp_ -#include #include #include #if OCC_VERSION_HEX >= 0x070500 @@ -35,16 +34,19 @@ #include "WriterGltf.h" #include +#include using namespace Import; -WriterGltf::WriterGltf(std::string name8bit, const Base::FileInfo& file) // NOLINT - : name8bit {std::move(name8bit)} - , file {file} +WriterGltf::WriterGltf(const Base::FileInfo& file) // NOLINT + : file {file} {} void WriterGltf::write(Handle(TDocStd_Document) hDoc) const // NOLINT { + std::string utf8Name = file.filePath(); + std::string name8bit = Part::encodeFilename(utf8Name); + #if OCC_VERSION_HEX >= 0x070500 TColStd_IndexedDataMapOfStringString aMetadata; RWGltf_CafWriter aWriter(name8bit.c_str(), file.hasExtension("glb")); @@ -57,9 +59,7 @@ void WriterGltf::write(Handle(TDocStd_Document) hDoc) const // NOLINT #endif Standard_Boolean ret = aWriter.Perform(hDoc, aMetadata, Message_ProgressRange()); if (!ret) { - std::stringstream str; - str << "Cannot save to file '" - << "" << file.filePath() << "'"; + throw Base::FileException("Cannot save to file: ", file); } #else throw Base::RuntimeError("gITF support requires OCCT 7.5.0 or later"); diff --git a/src/Mod/Import/App/WriterGltf.h b/src/Mod/Import/App/WriterGltf.h index 8ab4cba5e4..d7ebcf89ea 100644 --- a/src/Mod/Import/App/WriterGltf.h +++ b/src/Mod/Import/App/WriterGltf.h @@ -34,12 +34,11 @@ namespace Import class ImportExport WriterGltf { public: - WriterGltf(std::string name8bit, const Base::FileInfo& file); + explicit WriterGltf(const Base::FileInfo& file); void write(Handle(TDocStd_Document) hDoc) const; private: - std::string name8bit; Base::FileInfo file; }; } // namespace Import diff --git a/src/Mod/Import/App/WriterIges.cpp b/src/Mod/Import/App/WriterIges.cpp index d77ca1e161..37fe3e367f 100644 --- a/src/Mod/Import/App/WriterIges.cpp +++ b/src/Mod/Import/App/WriterIges.cpp @@ -34,6 +34,7 @@ #include "WriterIges.h" #include #include +#include #include using namespace Import; @@ -44,6 +45,9 @@ WriterIges::WriterIges(const Base::FileInfo& file) // NOLINT void WriterIges::write(Handle(TDocStd_Document) hDoc) const // NOLINT { + std::string utf8Name = file.filePath(); + std::string name8bit = Part::encodeFilename(utf8Name); + IGESControl_Controller::Init(); IGESCAFControl_Writer writer; IGESData_GlobalSection header = writer.Model()->GlobalSection(); @@ -54,7 +58,6 @@ void WriterIges::write(Handle(TDocStd_Document) hDoc) const // NOLINT writer.Transfer(hDoc); Standard_Boolean ret = writer.Write(name8bit.c_str()); if (!ret) { - std::string utf8Name = file.filePath(); - throw Base::FileException("Cannot open file '%s'", utf8Name.c_str()); + throw Base::FileException("Cannot open file: ", file); } } diff --git a/src/Mod/Import/App/WriterIges.h b/src/Mod/Import/App/WriterIges.h index 082d0455b0..4b485eafee 100644 --- a/src/Mod/Import/App/WriterIges.h +++ b/src/Mod/Import/App/WriterIges.h @@ -34,12 +34,11 @@ namespace Import class ImportExport WriterIges { public: - WriterIges(const Base::FileInfo& file); + explicit WriterIges(const Base::FileInfo& file); void write(Handle(TDocStd_Document) hDoc) const; private: - std::string name8bit; Base::FileInfo file; }; } // namespace Import diff --git a/src/Mod/Import/App/WriterStep.cpp b/src/Mod/Import/App/WriterStep.cpp index e5e94add37..31165b2cd2 100644 --- a/src/Mod/Import/App/WriterStep.cpp +++ b/src/Mod/Import/App/WriterStep.cpp @@ -32,6 +32,7 @@ #include "WriterStep.h" #include #include +#include #include using namespace Import; @@ -42,6 +43,9 @@ WriterStep::WriterStep(const Base::FileInfo& file) // NOLINT void WriterStep::write(Handle(TDocStd_Document) hDoc) const // NOLINT { + std::string utf8Name = file.filePath(); + std::string name8bit = Part::encodeFilename(utf8Name); + STEPCAFControl_Writer writer; Part::Interface::writeStepAssembly(Part::Interface::Assembly::On); writer.Transfer(hDoc, STEPControl_AsIs); @@ -67,7 +71,6 @@ void WriterStep::write(Handle(TDocStd_Document) hDoc) const // NOLINT makeHeader.SetDescriptionValue(1, new TCollection_HAsciiString("FreeCAD Model")); IFSelect_ReturnStatus ret = writer.Write(name8bit.c_str()); if (ret == IFSelect_RetError || ret == IFSelect_RetFail || ret == IFSelect_RetStop) { - std::string utf8Name = file.filePath(); - throw Base::FileException("Cannot open file '%s'", utf8Name.c_str()); + throw Base::FileException("Cannot open file: ", file); } } diff --git a/src/Mod/Import/App/WriterStep.h b/src/Mod/Import/App/WriterStep.h index b709855d1b..1e7c32d258 100644 --- a/src/Mod/Import/App/WriterStep.h +++ b/src/Mod/Import/App/WriterStep.h @@ -34,12 +34,11 @@ namespace Import class ImportExport WriterStep { public: - WriterStep(const Base::FileInfo& file); + explicit WriterStep(const Base::FileInfo& file); void write(Handle(TDocStd_Document) hDoc) const; private: - std::string name8bit; Base::FileInfo file; }; } // namespace Import diff --git a/src/Mod/Import/Gui/AppImportGuiPy.cpp b/src/Mod/Import/Gui/AppImportGuiPy.cpp index 266b858c46..515a8425b5 100644 --- a/src/Mod/Import/Gui/AppImportGuiPy.cpp +++ b/src/Mod/Import/Gui/AppImportGuiPy.cpp @@ -588,7 +588,6 @@ private: std::string Utf8Name = std::string(Name); PyMem_Free(Name); - std::string name8bit = Part::encodeFilename(Utf8Name); // determine export options Part::OCAF::ImportExportSettings settings; @@ -680,7 +679,7 @@ private: writer.write(hDoc); } else if (file.hasExtension({"glb", "gltf"})) { - Import::WriterGltf writer(name8bit, file); + Import::WriterGltf writer(file); writer.write(hDoc); }