diff options
author | Miodrag Milanovic <mmicko@gmail.com> | 2018-08-08 18:14:22 +0200 |
---|---|---|
committer | Miodrag Milanovic <mmicko@gmail.com> | 2018-08-08 18:14:22 +0200 |
commit | ecc21caa77b09075a97d131890019f6b97281928 (patch) | |
tree | da91ff43084907060d60fd3cae62b70988ec3060 /gui | |
parent | 4a44b1c96118c4a74c75c5d0791ee2395cf09900 (diff) | |
download | nextpnr-ecc21caa77b09075a97d131890019f6b97281928.tar.gz nextpnr-ecc21caa77b09075a97d131890019f6b97281928.tar.bz2 nextpnr-ecc21caa77b09075a97d131890019f6b97281928.zip |
move load/save proj to base
Diffstat (limited to 'gui')
-rw-r--r-- | gui/basewindow.cc | 33 | ||||
-rw-r--r-- | gui/basewindow.h | 7 | ||||
-rw-r--r-- | gui/ice40/mainwindow.cc | 35 | ||||
-rw-r--r-- | gui/ice40/mainwindow.h | 4 |
4 files changed, 40 insertions, 39 deletions
diff --git a/gui/basewindow.cc b/gui/basewindow.cc index 98dc9e20..98315ee9 100644 --- a/gui/basewindow.cc +++ b/gui/basewindow.cc @@ -31,6 +31,7 @@ #include "jsonparse.h"
#include "log.h"
#include "mainwindow.h"
+#include "project.h"
#include "pythontab.h"
static void initBasenameResource() { Q_INIT_RESOURCE(base); }
@@ -431,4 +432,36 @@ void BaseMainWindow::updateJsonLoaded() onJsonLoaded();
}
+void BaseMainWindow::open_proj()
+{
+ QString fileName = QFileDialog::getOpenFileName(this, QString("Open Project"), QString(), QString("*.proj"));
+ if (!fileName.isEmpty()) {
+ try {
+ ProjectHandler proj;
+ disableActions();
+ ctx = proj.load(fileName.toStdString());
+ Q_EMIT contextChanged(ctx.get());
+ log_info("Loaded project %s...\n", fileName.toStdString().c_str());
+ updateJsonLoaded();
+ onProjectLoaded();
+ } catch (log_execution_error_exception) {
+ }
+ }
+}
+
+void BaseMainWindow::save_proj()
+{
+ if (currentProj.empty()) {
+ QString fileName = QFileDialog::getSaveFileName(this, QString("Save Project"), QString(), QString("*.proj"));
+ if (fileName.isEmpty())
+ return;
+ currentProj = fileName.toStdString();
+ }
+ if (!currentProj.empty()) {
+ ProjectHandler proj;
+ proj.save(ctx.get(), currentProj);
+ }
+}
+
+
NEXTPNR_NAMESPACE_END
diff --git a/gui/basewindow.h b/gui/basewindow.h index 67f39ac2..ef3e252c 100644 --- a/gui/basewindow.h +++ b/gui/basewindow.h @@ -56,6 +56,7 @@ class BaseMainWindow : public QMainWindow virtual void onDisableActions(){};
virtual void onJsonLoaded(){};
+ virtual void onProjectLoaded(){};
virtual void onPackFinished(){};
virtual void onBudgetFinished(){};
virtual void onPlaceFinished(){};
@@ -66,8 +67,9 @@ class BaseMainWindow : public QMainWindow void closeTab(int index);
virtual void new_proj() = 0;
- virtual void open_proj() = 0;
- virtual bool save_proj() = 0;
+
+ void open_proj();
+ void save_proj();
void open_json();
void budget();
@@ -93,6 +95,7 @@ class BaseMainWindow : public QMainWindow TaskManager *task;
bool timing_driven;
std::string currentJson;
+ std::string currentProj;
// main widgets
QTabWidget *tabWidget;
diff --git a/gui/ice40/mainwindow.cc b/gui/ice40/mainwindow.cc index 9870cb0d..4a2eaaa9 100644 --- a/gui/ice40/mainwindow.cc +++ b/gui/ice40/mainwindow.cc @@ -29,7 +29,6 @@ #include "jsonparse.h"
#include "log.h"
#include "pcf.h"
-#include "project.h"
#include <fstream>
static void initMainResource() { Q_INIT_RESOURCE(nextpnr); }
@@ -166,23 +165,6 @@ void MainWindow::newContext(Context *ctx) setWindowTitle(title.c_str());
}
-void MainWindow::open_proj()
-{
- QString fileName = QFileDialog::getOpenFileName(this, QString("Open Project"), QString(), QString("*.proj"));
- if (!fileName.isEmpty()) {
- try {
- ProjectHandler proj;
- disableActions();
- ctx = proj.load(fileName.toStdString());
- Q_EMIT contextChanged(ctx.get());
- log_info("Loaded project %s...\n", fileName.toStdString().c_str());
- updateJsonLoaded();
- actionLoadPCF->setEnabled(false);
- } catch (log_execution_error_exception) {
- }
- }
-}
-
void MainWindow::open_pcf()
{
QString fileName = QFileDialog::getOpenFileName(this, QString("Open PCF"), QString(), QString("*.pcf"));
@@ -191,22 +173,6 @@ void MainWindow::open_pcf() }
}
-bool MainWindow::save_proj()
-{
- if (currentProj.empty()) {
- QString fileName = QFileDialog::getSaveFileName(this, QString("Save Project"), QString(), QString("*.proj"));
- if (fileName.isEmpty())
- return false;
- currentProj = fileName.toStdString();
- }
- if (!currentProj.empty()) {
- ProjectHandler proj;
- proj.save(ctx.get(), currentProj);
- return true;
- }
- return false;
-}
-
void MainWindow::save_asc()
{
QString fileName = QFileDialog::getSaveFileName(this, QString("Save ASC"), QString(), QString("*.asc"));
@@ -227,5 +193,6 @@ void MainWindow::onDisableActions() void MainWindow::onJsonLoaded() { actionLoadPCF->setEnabled(true); }
void MainWindow::onRouteFinished() { actionSaveAsc->setEnabled(true); }
+void MainWindow::onProjectLoaded() { actionLoadPCF->setEnabled(false); }
NEXTPNR_NAMESPACE_END
diff --git a/gui/ice40/mainwindow.h b/gui/ice40/mainwindow.h index c235f0a4..201bf1b1 100644 --- a/gui/ice40/mainwindow.h +++ b/gui/ice40/mainwindow.h @@ -41,11 +41,10 @@ class MainWindow : public BaseMainWindow void onDisableActions() override;
void onJsonLoaded() override;
void onRouteFinished() override;
+ void onProjectLoaded() override;
protected Q_SLOTS:
virtual void new_proj();
- virtual void open_proj();
- virtual bool save_proj();
void open_pcf();
void save_asc();
@@ -56,7 +55,6 @@ class MainWindow : public BaseMainWindow QAction *actionLoadPCF;
QAction *actionSaveAsc;
- std::string currentProj;
std::string currentPCF;
};
|