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());
}