| @@ -42,6 +42,7 @@ ModuleAdd::~ModuleAdd() { | |||||
| } | } | ||||
| void ModuleAdd::setModule(app::ModuleWidget* mw) { | void ModuleAdd::setModule(app::ModuleWidget* mw) { | ||||
| assert(mw); | |||||
| model = mw->model; | model = mw->model; | ||||
| assert(mw->module); | assert(mw->module); | ||||
| moduleId = mw->module->id; | moduleId = mw->module->id; | ||||
| @@ -53,7 +54,8 @@ void ModuleAdd::setModule(app::ModuleWidget* mw) { | |||||
| void ModuleAdd::undo() { | void ModuleAdd::undo() { | ||||
| app::ModuleWidget* mw = APP->scene->rack->getModule(moduleId); | app::ModuleWidget* mw = APP->scene->rack->getModule(moduleId); | ||||
| assert(mw); | |||||
| if (!mw) | |||||
| return; | |||||
| APP->scene->rack->removeModule(mw); | APP->scene->rack->removeModule(mw); | ||||
| delete mw; | delete mw; | ||||
| } | } | ||||
| @@ -72,26 +74,30 @@ void ModuleAdd::redo() { | |||||
| void ModuleMove::undo() { | void ModuleMove::undo() { | ||||
| app::ModuleWidget* mw = APP->scene->rack->getModule(moduleId); | app::ModuleWidget* mw = APP->scene->rack->getModule(moduleId); | ||||
| assert(mw); | |||||
| if (!mw) | |||||
| return; | |||||
| mw->box.pos = oldPos; | mw->box.pos = oldPos; | ||||
| } | } | ||||
| void ModuleMove::redo() { | void ModuleMove::redo() { | ||||
| app::ModuleWidget* mw = APP->scene->rack->getModule(moduleId); | app::ModuleWidget* mw = APP->scene->rack->getModule(moduleId); | ||||
| assert(mw); | |||||
| if (!mw) | |||||
| return; | |||||
| mw->box.pos = newPos; | mw->box.pos = newPos; | ||||
| } | } | ||||
| void ModuleBypass::undo() { | void ModuleBypass::undo() { | ||||
| engine::Module* module = APP->engine->getModule(moduleId); | engine::Module* module = APP->engine->getModule(moduleId); | ||||
| assert(module); | |||||
| if (!module) | |||||
| return; | |||||
| APP->engine->bypassModule(module, !bypassed); | APP->engine->bypassModule(module, !bypassed); | ||||
| } | } | ||||
| void ModuleBypass::redo() { | void ModuleBypass::redo() { | ||||
| engine::Module* module = APP->engine->getModule(moduleId); | engine::Module* module = APP->engine->getModule(moduleId); | ||||
| assert(module); | |||||
| if (!module) | |||||
| return; | |||||
| APP->engine->bypassModule(module, bypassed); | APP->engine->bypassModule(module, bypassed); | ||||
| } | } | ||||
| @@ -103,26 +109,30 @@ ModuleChange::~ModuleChange() { | |||||
| void ModuleChange::undo() { | void ModuleChange::undo() { | ||||
| engine::Module* module = APP->engine->getModule(moduleId); | engine::Module* module = APP->engine->getModule(moduleId); | ||||
| assert(module); | |||||
| if (!module) | |||||
| return; | |||||
| APP->engine->moduleFromJson(module, oldModuleJ); | APP->engine->moduleFromJson(module, oldModuleJ); | ||||
| } | } | ||||
| void ModuleChange::redo() { | void ModuleChange::redo() { | ||||
| engine::Module* module = APP->engine->getModule(moduleId); | engine::Module* module = APP->engine->getModule(moduleId); | ||||
| assert(module); | |||||
| if (!module) | |||||
| return; | |||||
| APP->engine->moduleFromJson(module, newModuleJ); | APP->engine->moduleFromJson(module, newModuleJ); | ||||
| } | } | ||||
| void ParamChange::undo() { | void ParamChange::undo() { | ||||
| engine::Module* module = APP->engine->getModule(moduleId); | engine::Module* module = APP->engine->getModule(moduleId); | ||||
| assert(module); | |||||
| if (!module) | |||||
| return; | |||||
| APP->engine->setParam(module, paramId, oldValue); | APP->engine->setParam(module, paramId, oldValue); | ||||
| } | } | ||||
| void ParamChange::redo() { | void ParamChange::redo() { | ||||
| engine::Module* module = APP->engine->getModule(moduleId); | engine::Module* module = APP->engine->getModule(moduleId); | ||||
| assert(module); | |||||
| if (!module) | |||||
| return; | |||||
| APP->engine->setParam(module, paramId, newValue); | APP->engine->setParam(module, paramId, newValue); | ||||
| } | } | ||||
| @@ -143,7 +153,8 @@ void CableAdd::setCable(app::CableWidget* cw) { | |||||
| void CableAdd::undo() { | void CableAdd::undo() { | ||||
| app::CableWidget* cw = APP->scene->rack->getCable(cableId); | app::CableWidget* cw = APP->scene->rack->getCable(cableId); | ||||
| assert(cw); | |||||
| if (!cw) | |||||
| return; | |||||
| APP->scene->rack->removeCable(cw); | APP->scene->rack->removeCable(cw); | ||||
| delete cw; | delete cw; | ||||
| } | } | ||||
| @@ -152,8 +163,16 @@ void CableAdd::redo() { | |||||
| engine::Cable* cable = new engine::Cable; | engine::Cable* cable = new engine::Cable; | ||||
| cable->id = cableId; | cable->id = cableId; | ||||
| cable->inputModule = APP->engine->getModule(inputModuleId); | cable->inputModule = APP->engine->getModule(inputModuleId); | ||||
| if (!cable->inputModule) { | |||||
| delete cable; | |||||
| return; | |||||
| } | |||||
| cable->inputId = inputId; | cable->inputId = inputId; | ||||
| cable->outputModule = APP->engine->getModule(outputModuleId); | cable->outputModule = APP->engine->getModule(outputModuleId); | ||||
| if (!cable->outputModule) { | |||||
| delete cable; | |||||
| return; | |||||
| } | |||||
| cable->outputId = outputId; | cable->outputId = outputId; | ||||
| APP->engine->addCable(cable); | APP->engine->addCable(cable); | ||||