| 528 | } |
| 529 | |
| 530 | bool ModuleWidget::pasteJsonAction(json_t* moduleJ) { |
| 531 | engine::Module::jsonStripIds(moduleJ); |
| 532 | |
| 533 | json_t* oldModuleJ = toJson(); |
| 534 | DEFER({json_decref(oldModuleJ);}); |
| 535 | |
| 536 | try { |
| 537 | fromJson(moduleJ); |
| 538 | } |
| 539 | catch (Exception& e) { |
| 540 | WARN("%s", e.what()); |
| 541 | return false; |
| 542 | } |
| 543 | |
| 544 | // history::ModuleChange |
| 545 | history::ModuleChange* h = new history::ModuleChange; |
| 546 | h->name = string::translate("ModuleWidget.history.pastePreset"); |
| 547 | h->moduleId = module->id; |
| 548 | json_incref(oldModuleJ); |
| 549 | h->oldModuleJ = oldModuleJ; |
| 550 | json_incref(moduleJ); |
| 551 | h->newModuleJ = moduleJ; |
| 552 | APP->history->push(h); |
| 553 | return true; |
| 554 | } |
| 555 | |
| 556 | void ModuleWidget::copyClipboard() { |
| 557 | json_t* moduleJ = toJson(); |