diff options
Diffstat (limited to 'gui/ice40')
-rw-r--r-- | gui/ice40/mainwindow.cc | 34 | ||||
-rw-r--r-- | gui/ice40/mainwindow.h | 7 | ||||
-rw-r--r-- | gui/ice40/nextpnr.qrc | 1 | ||||
-rw-r--r-- | gui/ice40/resources/open_json.png | bin | 0 -> 2093 bytes |
4 files changed, 37 insertions, 5 deletions
diff --git a/gui/ice40/mainwindow.cc b/gui/ice40/mainwindow.cc index 4c9ef0ef..61ceb3e6 100644 --- a/gui/ice40/mainwindow.cc +++ b/gui/ice40/mainwindow.cc @@ -68,6 +68,14 @@ void MainWindow::createMenu() QMenu *menu_Design = new QMenu("&Design", menuBar);
menuBar->addAction(menu_Design->menuAction());
+ actionLoadJSON = new QAction("Open JSON", this);
+ QIcon iconLoadJSON;
+ iconLoadJSON.addFile(QStringLiteral(":/icons/resources/open_json.png"));
+ actionLoadJSON->setIcon(iconLoadJSON);
+ actionLoadJSON->setStatusTip("Open an existing JSON file");
+ connect(actionLoadJSON, SIGNAL(triggered()), this, SLOT(open_json()));
+ actionLoadJSON->setEnabled(false);
+
actionLoadPCF = new QAction("Open PCF", this);
QIcon iconLoadPCF;
iconLoadPCF.addFile(QStringLiteral(":/icons/resources/open_pcf.png"));
@@ -119,6 +127,7 @@ void MainWindow::createMenu() QToolBar *taskFPGABar = new QToolBar();
addToolBar(Qt::TopToolBarArea, taskFPGABar);
+ taskFPGABar->addAction(actionLoadJSON);
taskFPGABar->addAction(actionLoadPCF);
taskFPGABar->addAction(actionPack);
taskFPGABar->addAction(actionAssignBudget);
@@ -126,6 +135,7 @@ void MainWindow::createMenu() taskFPGABar->addAction(actionRoute);
taskFPGABar->addAction(actionSaveAsc);
+ menu_Design->addAction(actionLoadJSON);
menu_Design->addAction(actionLoadPCF);
menu_Design->addAction(actionPack);
menu_Design->addAction(actionAssignBudget);
@@ -165,9 +175,26 @@ void MainWindow::createMenu() taskToolBar->addAction(actionStop);
}
-void MainWindow::open()
+void MainWindow::new_proj()
+{
+ disableActions();
+ actionLoadJSON->setEnabled(true);
+}
+
+void MainWindow::open_proj()
+{
+ QString fileName = QFileDialog::getOpenFileName(this, QString("Open Project"), QString(), QString("*.npnr"));
+ if (!fileName.isEmpty()) {
+ tabWidget->setCurrentWidget(info);
+
+ std::string fn = fileName.toStdString();
+ disableActions();
+ }
+}
+
+void MainWindow::open_json()
{
- QString fileName = QFileDialog::getOpenFileName(this, QString(), QString(), QString("*.json"));
+ QString fileName = QFileDialog::getOpenFileName(this, QString("Open JSON"), QString(), QString("*.json"));
if (!fileName.isEmpty()) {
tabWidget->setCurrentWidget(info);
@@ -190,7 +217,7 @@ void MainWindow::open_pcf() }
}
-bool MainWindow::save() { return false; }
+bool MainWindow::save_proj() { return false; }
void MainWindow::save_asc()
{
@@ -204,6 +231,7 @@ void MainWindow::save_asc() void MainWindow::disableActions()
{
+ actionLoadJSON->setEnabled(false);
actionLoadPCF->setEnabled(false);
actionPack->setEnabled(false);
actionAssignBudget->setEnabled(false);
diff --git a/gui/ice40/mainwindow.h b/gui/ice40/mainwindow.h index 1e20f892..f4037a47 100644 --- a/gui/ice40/mainwindow.h +++ b/gui/ice40/mainwindow.h @@ -37,9 +37,11 @@ class MainWindow : public BaseMainWindow void createMenu();
protected Q_SLOTS:
- virtual void open();
- virtual bool save();
+ virtual void new_proj();
+ virtual void open_proj();
+ virtual bool save_proj();
+ void open_json();
void open_pcf();
void budget();
void place();
@@ -61,6 +63,7 @@ class MainWindow : public BaseMainWindow void disableActions();
TaskManager *task;
+ QAction *actionLoadJSON;
QAction *actionLoadPCF;
QAction *actionPack;
QAction *actionAssignBudget;
diff --git a/gui/ice40/nextpnr.qrc b/gui/ice40/nextpnr.qrc index 40966dba..3c86057d 100644 --- a/gui/ice40/nextpnr.qrc +++ b/gui/ice40/nextpnr.qrc @@ -9,5 +9,6 @@ <file>resources/time_add.png</file> <file>resources/open_pcf.png</file> <file>resources/save_asc.png</file> + <file>resources/open_json.png</file> </qresource> </RCC> diff --git a/gui/ice40/resources/open_json.png b/gui/ice40/resources/open_json.png Binary files differnew file mode 100644 index 00000000..90c07267 --- /dev/null +++ b/gui/ice40/resources/open_json.png |