aboutsummaryrefslogtreecommitdiffstats
path: root/gui/basewindow.cc
diff options
context:
space:
mode:
authorMiodrag Milanovic <mmicko@gmail.com>2018-08-08 18:14:22 +0200
committerMiodrag Milanovic <mmicko@gmail.com>2018-08-08 18:14:22 +0200
commitecc21caa77b09075a97d131890019f6b97281928 (patch)
treeda91ff43084907060d60fd3cae62b70988ec3060 /gui/basewindow.cc
parent4a44b1c96118c4a74c75c5d0791ee2395cf09900 (diff)
downloadnextpnr-ecc21caa77b09075a97d131890019f6b97281928.tar.gz
nextpnr-ecc21caa77b09075a97d131890019f6b97281928.tar.bz2
nextpnr-ecc21caa77b09075a97d131890019f6b97281928.zip
move load/save proj to base
Diffstat (limited to 'gui/basewindow.cc')
-rw-r--r--gui/basewindow.cc33
1 files changed, 33 insertions, 0 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