Added examples menu

git-svn-id: http://svn.clifford.at/openscad/trunk@338 b57f626f-c46c-0410-a088-ec61d464b74c
stl_dim
kintel 2010-01-22 15:20:52 +00:00
parent 109df704ba
commit 5533114cb5
3 changed files with 31 additions and 0 deletions

View File

@ -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();

View File

@ -130,9 +130,15 @@
<string>Open Recent</string>
</property>
</widget>
<widget class="QMenu" name="menuExamples">
<property name="title">
<string>Examples</string>
</property>
</widget>
<addaction name="fileActionNew"/>
<addaction name="fileActionOpen"/>
<addaction name="menuOpenRecent"/>
<addaction name="menuExamples"/>
<addaction name="separator"/>
<addaction name="fileActionClose"/>
<addaction name="fileActionSave"/>

View File

@ -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()) {