aboutsummaryrefslogtreecommitdiffstats
path: root/gui/basewindow.cc
diff options
context:
space:
mode:
authorMiodrag Milanovic <mmicko@gmail.com>2018-12-14 17:20:25 +0100
committerMiodrag Milanovic <mmicko@gmail.com>2018-12-14 17:20:25 +0100
commite0b4a2eeab91696e54d9ff3acc319d99ab9b96f9 (patch)
tree79b6bc1d50c75b6b7bb78b5d842d9c75178c4a09 /gui/basewindow.cc
parent19cffde375fe63e36bfd880727bdc0a04a2ccf32 (diff)
downloadnextpnr-e0b4a2eeab91696e54d9ff3acc319d99ab9b96f9.tar.gz
nextpnr-e0b4a2eeab91696e54d9ff3acc319d99ab9b96f9.tar.bz2
nextpnr-e0b4a2eeab91696e54d9ff3acc319d99ab9b96f9.zip
Add GUI for executing python file
Diffstat (limited to 'gui/basewindow.cc')
-rw-r--r--gui/basewindow.cc18
1 files changed, 18 insertions, 0 deletions
diff --git a/gui/basewindow.cc b/gui/basewindow.cc
index 49c2d8d5..346efb88 100644
--- a/gui/basewindow.cc
+++ b/gui/basewindow.cc
@@ -189,6 +189,12 @@ void BaseMainWindow::createMenusAndBars()
actionRoute->setEnabled(false);
connect(actionRoute, &QAction::triggered, task, &TaskManager::route);
+ actionExecutePy = new QAction("Execute Python", this);
+ actionExecutePy->setIcon(QIcon(":/icons/resources/py.png"));
+ actionExecutePy->setStatusTip("Execute Python script");
+ actionExecutePy->setEnabled(true);
+ connect(actionExecutePy, &QAction::triggered, this, &BaseMainWindow::execute_python);
+
// Worker control toolbar actions
actionPlay = new QAction("Play", this);
actionPlay->setIcon(QIcon(":/icons/resources/control_play.png"));
@@ -249,6 +255,8 @@ void BaseMainWindow::createMenusAndBars()
menuDesign->addAction(actionAssignBudget);
menuDesign->addAction(actionPlace);
menuDesign->addAction(actionRoute);
+ menuDesign->addSeparator();
+ menuDesign->addAction(actionExecutePy);
// Add Help menu actions
menuHelp->addAction(actionAbout);
@@ -268,6 +276,7 @@ void BaseMainWindow::createMenusAndBars()
mainActionBar->addAction(actionAssignBudget);
mainActionBar->addAction(actionPlace);
mainActionBar->addAction(actionRoute);
+ mainActionBar->addAction(actionExecutePy);
// Add worker control toolbar
QToolBar *workerControlToolBar = new QToolBar("Worker");
@@ -412,6 +421,7 @@ void BaseMainWindow::disableActions()
actionAssignBudget->setEnabled(false);
actionPlace->setEnabled(false);
actionRoute->setEnabled(false);
+ actionExecutePy->setEnabled(true);
actionPlay->setEnabled(false);
actionPause->setEnabled(false);
@@ -454,6 +464,14 @@ void BaseMainWindow::open_proj()
}
}
+void BaseMainWindow::execute_python()
+{
+ QString fileName = QFileDialog::getOpenFileName(this, QString("Execute Python"), QString(), QString("*.py"));
+ if (!fileName.isEmpty()) {
+ console->execute_python(fileName.toStdString());
+ }
+}
+
void BaseMainWindow::notifyChangeContext() { Q_EMIT contextChanged(ctx.get()); }
void BaseMainWindow::save_proj()
{