mirror of https://github.com/vitalif/openscad
Added examples menu
git-svn-id: http://svn.clifford.at/openscad/trunk@338 b57f626f-c46c-0410-a088-ec61d464b74cstl_dim
parent
109df704ba
commit
5533114cb5
|
@ -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();
|
||||
|
|
|
@ -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"/>
|
||||
|
|
23
mainwin.cc
23
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<QAction *>(sender());
|
||||
if (action) {
|
||||
openFile(this->examplesdir + QDir::separator() + action->text());
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::actionSave()
|
||||
{
|
||||
if (this->fileName.isEmpty()) {
|
||||
|
|
Loading…
Reference in New Issue