diff options
author | Miodrag Milanović <mmicko@gmail.com> | 2018-08-08 09:18:03 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-08 09:18:03 -0700 |
commit | 330bb86bfcfd0e1727c6e786f41b1f4c2440cac4 (patch) | |
tree | ea6a0c6531aed19796cfa6ab50a24fb1408ad72f /gui/basewindow.cc | |
parent | 8553573d2485ac2ec60d1c49949c254e02d35490 (diff) | |
parent | fc5cee6fb896bc4d7a8b79dcde789e03c787bd89 (diff) | |
download | nextpnr-330bb86bfcfd0e1727c6e786f41b1f4c2440cac4.tar.gz nextpnr-330bb86bfcfd0e1727c6e786f41b1f4c2440cac4.tar.bz2 nextpnr-330bb86bfcfd0e1727c6e786f41b1f4c2440cac4.zip |
Merge pull request #43 from YosysHQ/common_main
Common main and project
Diffstat (limited to 'gui/basewindow.cc')
-rw-r--r-- | gui/basewindow.cc | 42 |
1 files changed, 40 insertions, 2 deletions
diff --git a/gui/basewindow.cc b/gui/basewindow.cc index 53720156..857919ea 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); }
@@ -302,8 +303,7 @@ void BaseMainWindow::load_json(std::string filename) if (parse_json_file(f, filename, ctx.get())) {
log("Loading design successful.\n");
Q_EMIT updateTreeView();
- actionPack->setEnabled(true);
- onJsonLoaded();
+ updateJsonLoaded();
} else {
actionLoadJSON->setEnabled(true);
log("Loading design failed.\n");
@@ -425,4 +425,42 @@ void BaseMainWindow::disableActions() onDisableActions();
}
+void BaseMainWindow::updateJsonLoaded()
+{
+ disableActions();
+ actionPack->setEnabled(true);
+ 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
|