summaryrefslogtreecommitdiff
path: root/src/openscad.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/openscad.cc')
-rw-r--r--src/openscad.cc15
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();
contact: Jan Huwald // Impressum