diff options
author | kintel <kintel@b57f626f-c46c-0410-a088-ec61d464b74c> | 2010-01-22 15:20:52 (GMT) |
---|---|---|
committer | kintel <kintel@b57f626f-c46c-0410-a088-ec61d464b74c> | 2010-01-22 15:20:52 (GMT) |
commit | 5533114cb5c140ec654d75a3e26a266eba10e94b (patch) | |
tree | 743f50d11c4cbcc890c7029da2b5d77494ac0183 /mainwin.cc | |
parent | 109df704bae87a1b24c1101c304d93e6ce0d9e20 (diff) |
Added examples menu
git-svn-id: http://svn.clifford.at/openscad/trunk@338 b57f626f-c46c-0410-a088-ec61d464b74c
Diffstat (limited to 'mainwin.cc')
-rw-r--r-- | mainwin.cc | 23 |
1 files changed, 23 insertions, 0 deletions
@@ -175,6 +175,21 @@ MainWindow::MainWindow(const char *filename) connect(this->fileActionClearRecent, SIGNAL(triggered()), this, SLOT(clearRecentFiles())); + QDir examplesdir(QApplication::instance()->applicationDirPath()); +#ifdef Q_WS_MAC + examplesdir.cd("../Resources"); // Examples can be bundled + if (!examplesdir.exists("examples")) examplesdir.cd("../../.."); +#endif + if (examplesdir.cd("examples")) { + this->examplesdir = examplesdir.path(); + + QStringList examples = examplesdir.entryList(QStringList("*.scad"), + QDir::Files | QDir::Readable, QDir::Name); + foreach (const QString &ex, examples) { + this->menuExamples->addAction(ex, this, SLOT(actionOpenExample())); + } + } + // Edit menu connect(this->editActionUndo, SIGNAL(triggered()), editor, SLOT(undo())); connect(this->editActionRedo, SIGNAL(triggered()), editor, SLOT(redo())); @@ -723,6 +738,14 @@ void MainWindow::updateRecentFileActions() settings.setValue("recentFileList", files); } +void MainWindow::actionOpenExample() +{ + QAction *action = qobject_cast<QAction *>(sender()); + if (action) { + openFile(this->examplesdir + QDir::separator() + action->text()); + } +} + void MainWindow::actionSave() { if (this->fileName.isEmpty()) { |