From ecc21caa77b09075a97d131890019f6b97281928 Mon Sep 17 00:00:00 2001 From: Miodrag Milanovic Date: Wed, 8 Aug 2018 18:14:22 +0200 Subject: move load/save proj to base --- gui/basewindow.cc | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'gui/basewindow.cc') 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 -- cgit v1.2.3