diff options
Diffstat (limited to 'src/openscad.cc')
-rw-r--r-- | src/openscad.cc | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/openscad.cc b/src/openscad.cc index f23848b..71d0297 100644 --- a/src/openscad.cc +++ b/src/openscad.cc @@ -59,6 +59,7 @@ static void help(const char *progname) QString commandline_commands; const char *make_command = NULL; QSet<QString> dependencies; +QString currentdir; QString examplesdir; QString librarydir; @@ -101,6 +102,7 @@ int main(int argc, char **argv) #ifdef Q_WS_MAC app.installEventFilter(new EventFilter(&app)); #endif + QDir original_path = QDir::current(); // set up groups for QSettings QCoreApplication::setOrganizationName("OpenSCAD"); @@ -161,6 +163,8 @@ int main(int argc, char **argv) help(argv[0]); #endif + currentdir = QDir::currentPath(); + QDir exdir(QApplication::instance()->applicationDirPath()); #ifdef Q_WS_MAC exdir.cd("../Resources"); // Examples can be bundled @@ -232,7 +236,6 @@ int main(int argc, char **argv) root_module = parse((text+commandline_commands).toAscii().data(), fileInfo.absolutePath().toLocal8Bit(), false); } - QString original_path = QDir::currentPath(); QDir::setCurrent(fileInfo.absolutePath()); AbstractNode::resetIndexCounter(); @@ -241,7 +244,7 @@ int main(int argc, char **argv) CGAL_Nef_polyhedron *root_N; root_N = new CGAL_Nef_polyhedron(root_node->render_cgal_nef_polyhedron()); - QDir::setCurrent(original_path); + QDir::setCurrent(original_path.absolutePath()); if (deps_output_file) { fp = fopen(deps_output_file, "wt"); @@ -279,6 +282,8 @@ int main(int argc, char **argv) installAppleEventHandlers(); #endif + QString qfilename = QFileInfo(original_path, filename).absoluteFilePath(); + #if 0 /*** disabled by clifford wolf: adds rendering artefacts with OpenCSG ***/ // turn on anti-aliasing QGLFormat f; @@ -287,12 +292,12 @@ int main(int argc, char **argv) QGLFormat::setDefaultFormat(f); #endif #ifdef ENABLE_MDI - new MainWindow(filename); + new MainWindow(qfilename); while (optind < argc) - new MainWindow(argv[optind++]); + new MainWindow(QFileInfo(original_path, argv[optind++]).absoluteFilePath()); app.connect(&app, SIGNAL(lastWindowClosed()), &app, SLOT(quit())); #else - MainWindow *m = new MainWindow(filename); + MainWindow *m = new MainWindow(qfilename); app.connect(m, SIGNAL(destroyed()), &app, SLOT(quit())); #endif rc = app.exec(); |