From 5533114cb5c140ec654d75a3e26a266eba10e94b Mon Sep 17 00:00:00 2001 From: kintel Date: Fri, 22 Jan 2010 15:20:52 +0000 Subject: Added examples menu git-svn-id: http://svn.clifford.at/openscad/trunk@338 b57f626f-c46c-0410-a088-ec61d464b74c diff --git a/MainWindow.h b/MainWindow.h index f344711..17269ae 100644 --- a/MainWindow.h +++ b/MainWindow.h @@ -46,6 +46,7 @@ public: static const int maxRecentFiles = 10; QAction *actionRecentFile[maxRecentFiles]; + QString examplesdir; MainWindow(const char *filename = 0); ~MainWindow(); @@ -70,6 +71,7 @@ private slots: void actionNew(); void actionOpen(); void actionOpenRecent(); + void actionOpenExample(); void clearRecentFiles(); void updateRecentFileActions(); void actionSave(); diff --git a/MainWindow.ui b/MainWindow.ui index 24c0903..93428da 100644 --- a/MainWindow.ui +++ b/MainWindow.ui @@ -130,9 +130,15 @@ Open Recent + + + Examples + + + diff --git a/mainwin.cc b/mainwin.cc index 09b5c5e..0797a46 100644 --- a/mainwin.cc +++ b/mainwin.cc @@ -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(sender()); + if (action) { + openFile(this->examplesdir + QDir::separator() + action->text()); + } +} + void MainWindow::actionSave() { if (this->fileName.isEmpty()) { -- cgit v0.10.1