From 8344a21282ca63be467ae9c11e0f4dd000fff84c Mon Sep 17 00:00:00 2001 From: Miodrag Milanovic Date: Tue, 26 Jun 2018 14:17:17 +0200 Subject: Preps for more UI functionality --- gui/ice40/mainwindow.cc | 34 +++++++++++++++++++++++++++++++--- gui/ice40/mainwindow.h | 7 +++++-- gui/ice40/nextpnr.qrc | 1 + gui/ice40/resources/open_json.png | Bin 0 -> 2093 bytes 4 files changed, 37 insertions(+), 5 deletions(-) create mode 100644 gui/ice40/resources/open_json.png (limited to 'gui/ice40') 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 @@ resources/time_add.png resources/open_pcf.png resources/save_asc.png + resources/open_json.png diff --git a/gui/ice40/resources/open_json.png b/gui/ice40/resources/open_json.png new file mode 100644 index 00000000..90c07267 Binary files /dev/null and b/gui/ice40/resources/open_json.png differ -- cgit v1.2.3