diff options
author | Serge Bazanski <serge@bazanski.pl> | 2018-07-17 16:03:48 +0100 |
---|---|---|
committer | Serge Bazanski <serge@bazanski.pl> | 2018-07-17 16:03:48 +0100 |
commit | 498bef3f3e82ed214daf44ada83eb22a21159993 (patch) | |
tree | b5d982452b972df13c20cabc0c2b2b73256a285d /gui/basewindow.cc | |
parent | f3c6c76fff90d89dd65af2c02124c098dab63892 (diff) | |
parent | 2eb783d626a9a17baf70d2f7750be3c11623d5bc (diff) | |
download | nextpnr-498bef3f3e82ed214daf44ada83eb22a21159993.tar.gz nextpnr-498bef3f3e82ed214daf44ada83eb22a21159993.tar.bz2 nextpnr-498bef3f3e82ed214daf44ada83eb22a21159993.zip |
Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr into q3k/lock-2-electric-boogaloo
Diffstat (limited to 'gui/basewindow.cc')
-rw-r--r-- | gui/basewindow.cc | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/gui/basewindow.cc b/gui/basewindow.cc index 07b71105..81c89e45 100644 --- a/gui/basewindow.cc +++ b/gui/basewindow.cc @@ -29,6 +29,7 @@ #include "log.h"
#include "mainwindow.h"
#include "pythontab.h"
+#include "yosystab.h"
static void initBasenameResource() { Q_INIT_RESOURCE(base); }
@@ -73,8 +74,12 @@ BaseMainWindow::BaseMainWindow(std::unique_ptr<Context> context, QWidget *parent connect(this, SIGNAL(contextChanged(Context *)), console, SLOT(newContext(Context *)));
centralTabWidget = new QTabWidget();
+ centralTabWidget->setTabsClosable(true);
+ connect(centralTabWidget, SIGNAL(tabCloseRequested(int)), this, SLOT(closeTab(int)));
+
FPGAViewWidget *fpgaView = new FPGAViewWidget();
centralTabWidget->addTab(fpgaView, "Graphics");
+ centralTabWidget->tabBar()->tabButton(0, QTabBar::RightSide)->resize(0, 0);
connect(this, SIGNAL(contextChanged(Context *)), fpgaView, SLOT(newContext(Context *)));
connect(designview, SIGNAL(selected(std::vector<DecalXY>)), fpgaView,
@@ -95,6 +100,8 @@ BaseMainWindow::BaseMainWindow(std::unique_ptr<Context> context, QWidget *parent BaseMainWindow::~BaseMainWindow() {}
+void BaseMainWindow::closeTab(int index) { delete centralTabWidget->widget(index); }
+
void BaseMainWindow::displaySplash()
{
splash = new QSplashScreen();
@@ -140,6 +147,10 @@ void BaseMainWindow::createMenusAndBars() actionExit->setStatusTip("Exit the application");
connect(actionExit, SIGNAL(triggered()), this, SLOT(close()));
+ QAction *actionYosys = new QAction("Yosys", this);
+ actionYosys->setStatusTip("Run Yosys");
+ connect(actionYosys, SIGNAL(triggered()), this, SLOT(yosys()));
+
QAction *actionAbout = new QAction("About", this);
menuBar = new QMenuBar();
@@ -172,6 +183,19 @@ void BaseMainWindow::createMenusAndBars() mainToolBar->addAction(actionNew);
mainToolBar->addAction(actionOpen);
mainToolBar->addAction(actionSave);
+ mainToolBar->addAction(actionYosys);
}
+void BaseMainWindow::yosys()
+{
+ QString folder = QFileDialog::getExistingDirectory(0, ("Select Work Folder"), QDir::currentPath(),
+ QFileDialog::ShowDirsOnly);
+ if (!folder.isEmpty() && !folder.isNull()) {
+ YosysTab *yosysTab = new YosysTab(folder);
+ yosysTab->setAttribute(Qt::WA_DeleteOnClose);
+ centralTabWidget->addTab(yosysTab, "Yosys");
+ centralTabWidget->setCurrentWidget(yosysTab);
+ centralTabWidget->setTabToolTip(centralTabWidget->indexOf(yosysTab), folder);
+ }
+}
NEXTPNR_NAMESPACE_END
|