aboutsummaryrefslogtreecommitdiffstats
path: root/gui/ice40/mainwindow.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gui/ice40/mainwindow.cc')
-rw-r--r--gui/ice40/mainwindow.cc41
1 files changed, 37 insertions, 4 deletions
diff --git a/gui/ice40/mainwindow.cc b/gui/ice40/mainwindow.cc
index 934798bb..9ce7f41e 100644
--- a/gui/ice40/mainwindow.cc
+++ b/gui/ice40/mainwindow.cc
@@ -14,21 +14,54 @@
MainWindow::MainWindow(Context *_ctx, QWidget *parent)
: BaseMainWindow(_ctx, parent)
{
+ Q_INIT_RESOURCE(nextpnr);
+
std::string title = "nextpnr-ice40 - " + ctx->getChipName();
setWindowTitle(title.c_str());
- createMenu();
-
task = new TaskManager(_ctx);
connect(task, SIGNAL(log(std::string)), this, SLOT(writeInfo(std::string)));
+
+ createMenu();
}
-MainWindow::~MainWindow() {}
+MainWindow::~MainWindow() { delete task; }
void MainWindow::createMenu()
{
QMenu *menu_Custom = new QMenu("&ICE 40", menuBar);
menuBar->addAction(menu_Custom->menuAction());
+
+ QAction *actionPlay = new QAction("Play", this);
+ QIcon icon1;
+ icon1.addFile(QStringLiteral(":/icons/resources/control_play.png"));
+ actionPlay->setIcon(icon1);
+ actionPlay->setStatusTip("Continue running task");
+ connect(actionPlay, SIGNAL(triggered()), task,
+ SLOT(continue_thread()));
+
+ QAction *actionPause = new QAction("Pause", this);
+ QIcon icon2;
+ icon2.addFile(QStringLiteral(":/icons/resources/control_pause.png"));
+ actionPause->setIcon(icon2);
+ actionPause->setStatusTip("Pause running task");
+ connect(actionPause, SIGNAL(triggered()), task,
+ SLOT(pause_thread()));
+
+ QAction *actionStop = new QAction("Stop", this);
+ QIcon icon3;
+ icon3.addFile(QStringLiteral(":/icons/resources/control_stop.png"));
+ actionStop->setIcon(icon3);
+ actionStop->setStatusTip("Stop running task");
+ connect(actionStop, SIGNAL(triggered()), task,
+ SLOT(terminate_thread()));
+
+ QToolBar *taskToolBar = new QToolBar();
+ addToolBar(Qt::TopToolBarArea, taskToolBar);
+
+ taskToolBar->addAction(actionPlay);
+ taskToolBar->addAction(actionPause);
+ taskToolBar->addAction(actionStop);
}
void MainWindow::open()
@@ -39,7 +72,7 @@ void MainWindow::open()
tabWidget->setCurrentWidget(info);
std::string fn = fileName.toStdString();
- task->parsejson(fn);
+ Q_EMIT task->parsejson(fn);
}
}
bool MainWindow::save() { return false; } \ No newline at end of file