summaryrefslogtreecommitdiff
path: root/src/openscad.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/openscad.cc')
-rw-r--r--src/openscad.cc11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/openscad.cc b/src/openscad.cc
index 1e08a51..6bbaedb 100644
--- a/src/openscad.cc
+++ b/src/openscad.cc
@@ -450,6 +450,13 @@ int cmdline(const char *deps_output_file, const std::string &filename, Camera &c
#include <QString>
#include <QDir>
+// Only if "fileName" is not absolute, prepend the "absoluteBase".
+static QString assemblePath(const fs::path& absoluteBase,
+ const string& fileName) {
+ return QDir(QString::fromStdString((const string&) absoluteBase))
+ .absoluteFilePath(QString::fromStdString(fileName));
+}
+
bool QtUseGUI()
{
#ifdef Q_WS_X11
@@ -521,11 +528,11 @@ int gui(vector<string> &inputFiles, const fs::path &original_path, int argc, cha
if (!inputFiles.size()) inputFiles.push_back("");
#ifdef ENABLE_MDI
BOOST_FOREACH(const string &infile, inputFiles) {
- new MainWindow(QString::fromLocal8Bit(infile.empty() ? infile.c_str() : boosty::stringy(original_path / infile).c_str()));
+ new MainWindow(assemblePath(original_path, infile));
}
app.connect(&app, SIGNAL(lastWindowClosed()), &app, SLOT(quit()));
#else
- MainWindow *m = new MainWindow(QString::fromLocal8Bit(inputFiles[0].empty() ? inputFiles[0].c_str() : boosty::stringy(original_path / inputFiles[0]).c_str()));
+ MainWindow *m = new MainWindow(assemblePath(original_path, inputFiles[0]));
app.connect(m, SIGNAL(destroyed()), &app, SLOT(quit()));
#endif
return app.exec();
contact: Jan Huwald // Impressum