Merge pull request #496 from YosysHQ/gui_fix

Preserve cmd parameters  when loading json from GUI
This commit is contained in:
Miodrag Milanović 2020-09-04 17:29:43 +02:00 committed by GitHub
commit 48cd40773a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 8 additions and 1 deletions

View File

@ -430,7 +430,6 @@ int CommandHandler::exec()
std::unique_ptr<Context> CommandHandler::load_json(std::string filename) std::unique_ptr<Context> CommandHandler::load_json(std::string filename)
{ {
vm.clear();
std::unordered_map<std::string, Property> values; std::unordered_map<std::string, Property> values;
std::unique_ptr<Context> ctx = createContext(values); std::unique_ptr<Context> ctx = createContext(values);
setupContext(ctx.get()); setupContext(ctx.get());
@ -444,6 +443,11 @@ std::unique_ptr<Context> CommandHandler::load_json(std::string filename)
return ctx; return ctx;
} }
void CommandHandler::clear()
{
vm.clear();
}
void CommandHandler::run_script_hook(const std::string &name) void CommandHandler::run_script_hook(const std::string &name)
{ {
#ifndef NO_PYTHON #ifndef NO_PYTHON

View File

@ -38,6 +38,7 @@ class CommandHandler
int exec(); int exec();
std::unique_ptr<Context> load_json(std::string filename); std::unique_ptr<Context> load_json(std::string filename);
void clear();
protected: protected:
virtual void setupArchContext(Context *ctx) = 0; virtual void setupArchContext(Context *ctx) = 0;

View File

@ -110,6 +110,7 @@ void MainWindow::new_proj()
QString package = QInputDialog::getItem(this, "Select package", "Package:", packages, 0, false, &ok); QString package = QInputDialog::getItem(this, "Select package", "Package:", packages, 0, false, &ok);
if (ok && !item.isEmpty()) { if (ok && !item.isEmpty()) {
handler->clear();
currentProj = ""; currentProj = "";
disableActions(); disableActions();
chipArgs.package = package.toStdString().c_str(); chipArgs.package = package.toStdString().c_str();

View File

@ -114,6 +114,7 @@ void MainWindow::new_proj()
QString package = QInputDialog::getItem(this, "Select package", "Package:", packages, 0, false, &ok); QString package = QInputDialog::getItem(this, "Select package", "Package:", packages, 0, false, &ok);
if (ok && !item.isEmpty()) { if (ok && !item.isEmpty()) {
handler->clear();
currentProj = ""; currentProj = "";
disableActions(); disableActions();
chipArgs.package = package.toStdString().c_str(); chipArgs.package = package.toStdString().c_str();