From 5de6763ed5889bfec76994e77d9c71b362448790 Mon Sep 17 00:00:00 2001 From: wmayer Date: Sat, 28 Sep 2019 23:35:08 +0200 Subject: [PATCH] add escape sequence when executing as Python string --- src/Gui/Application.cpp | 4 ++++ src/Mod/Mesh/Gui/Command.cpp | 4 +--- src/Mod/Part/Gui/Command.cpp | 3 +++ src/Mod/Points/Gui/Command.cpp | 6 +++--- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/Gui/Application.cpp b/src/Gui/Application.cpp index d197384a86..3961ef6253 100644 --- a/src/Gui/Application.cpp +++ b/src/Gui/Application.cpp @@ -505,6 +505,8 @@ void Application::open(const char* FileName, const char* Module) Base::FileInfo File(FileName); string te = File.extension(); string unicodepath = Base::Tools::escapedUnicodeFromUtf8(File.filePath().c_str()); + unicodepath = Base::Tools::escapeEncodeFilename(unicodepath); + // if the active document is empty and not modified, close it // in case of an automatically created empty document at startup App::Document* act = App::GetApplication().getActiveDocument(); @@ -556,6 +558,7 @@ void Application::importFrom(const char* FileName, const char* DocName, const ch Base::FileInfo File(FileName); std::string te = File.extension(); string unicodepath = Base::Tools::escapedUnicodeFromUtf8(File.filePath().c_str()); + unicodepath = Base::Tools::escapeEncodeFilename(unicodepath); if (Module != 0) { try { @@ -613,6 +616,7 @@ void Application::exportTo(const char* FileName, const char* DocName, const char Base::FileInfo File(FileName); std::string te = File.extension(); string unicodepath = Base::Tools::escapedUnicodeFromUtf8(File.filePath().c_str()); + unicodepath = Base::Tools::escapeEncodeFilename(unicodepath); if (Module != 0) { try { diff --git a/src/Mod/Mesh/Gui/Command.cpp b/src/Mod/Mesh/Gui/Command.cpp index 0167be084d..e45348d18c 100644 --- a/src/Mod/Mesh/Gui/Command.cpp +++ b/src/Mod/Mesh/Gui/Command.cpp @@ -457,10 +457,8 @@ void CmdMeshImport::activated(int) QStringList fn = Gui::FileDialog::getOpenFileNames(Gui::getMainWindow(), QObject::tr("Import mesh"), QString(), filter.join(QLatin1String(";;"))); for (QStringList::Iterator it = fn.begin(); it != fn.end(); ++it) { - QFileInfo fi; - fi.setFile(*it); - std::string unicodepath = Base::Tools::escapedUnicodeFromUtf8((*it).toUtf8().data()); + unicodepath = Base::Tools::escapeEncodeFilename(unicodepath); openCommand("Import Mesh"); doCommand(Doc,"import Mesh"); doCommand(Doc,"Mesh.insert(u\"%s\")", diff --git a/src/Mod/Part/Gui/Command.cpp b/src/Mod/Part/Gui/Command.cpp index df2b46da86..68ed101bea 100644 --- a/src/Mod/Part/Gui/Command.cpp +++ b/src/Mod/Part/Gui/Command.cpp @@ -40,6 +40,7 @@ #include #include +#include #include #include #include @@ -1012,6 +1013,8 @@ void CmdPartImport::activated(int iMsg) Gui::WaitCursor wc; App::Document* pDoc = getDocument(); if (!pDoc) return; // no document + + fn = Base::Tools::escapeEncodeFilename(fn); openCommand("Import Part"); if (select == filter[1] || select == filter[3]) { diff --git a/src/Mod/Points/Gui/Command.cpp b/src/Mod/Points/Gui/Command.cpp index 73c4049f30..f21e905545 100644 --- a/src/Mod/Points/Gui/Command.cpp +++ b/src/Mod/Points/Gui/Command.cpp @@ -32,6 +32,7 @@ #include #include +#include #include #include #include @@ -81,9 +82,7 @@ void CmdPointsImport::activated(int iMsg) return; if (!fn.isEmpty()) { - QFileInfo fi; - fi.setFile(fn); - + fn = Base::Tools::escapeEncodeFilename(fn); Gui::Document* doc = getActiveGuiDocument(); openCommand("Import points"); addModule(Command::App, "Points"); @@ -131,6 +130,7 @@ void CmdPointsExport::activated(int iMsg) break; if (!fn.isEmpty()) { + fn = Base::Tools::escapeEncodeFilename(fn); doCommand(Command::Doc, "Points.export([App.ActiveDocument.%s], \"%s\")", (*it)->getNameInDocument(), fn.toUtf8().data()); }