290 Commits (d8edf64b8a8ecdac5d600b1051132904d1fe9ea3)

Author SHA1 Message Date
  Andrew Belt 4905496eed Fix all memory leaks caused by json_array_append() and json_object_set(). 2 years ago
  Andrew Belt 99361ff172 Place module selection nearest to mouse position when pasting. 2 years ago
  Andrew Belt a5e377f2e6 When cloning, pasting, or importing module selection, place modules nearest to center of rack viewport. 2 years ago
  Andrew Belt a7492aa412 Refactor RackWidget_pasteJson() to return ModuleWidget pointers instead of only IDs. 2 years ago
  Andrew Belt cd2d14fa5e Update expanders when ModuleWidget is removed from RackWidget, so Module::onExpanderChange is dispatched. 2 years ago
  Andrew Belt 85061331bb Fix RackWidget::squeezeModulePos() setting incorrect positions of right shoved modules. 2 years ago
  Andrew Belt 2cb341274a Apply rack offset in ModuleWidget::get/setGridPosition() etc. 2 years ago
  Andrew Belt d3e6c84fc3 Fix expanders occasionally not connecting when removing a module. 2 years ago
  Andrew Belt ebad98effb Refactor RackWidget::updateExpanders() to use ModuleWidget::getGridBox(). 2 years ago
  Andrew Belt b31ae5502d Call updateExpanders() in RackWidget::squeezeModulePos() and unsqueezeModulePos(), fixing expanders not connecting when cloning modules. 2 years ago
  Andrew Belt 3ff824b43f Use old module move algorithm for adding/removing modules when auto-squeeze is disabled. 2 years ago
  Andrew Belt 7d6b9d2211 Add squeezeModules setting and menu bar item to toggle new squeeze or old nearest/force behavior. 2 years ago
  Andrew Belt f47729b40d Add back force-moving of modules. 2 years ago
  Andrew Belt e6354957a5 Separate RackWidget::setModulePosForce() into multiple methods. 3 years ago
  Andrew Belt 9fec91438d Clean up RackWidget::setModulePosForce(). Use grid coordinates instead of pixels. 3 years ago
  Andrew Belt 32acefe1d5 Reorder and tweak behaviors in RackWidget::setModulePosForce() algorithm. 3 years ago
  Andrew Belt c7bb0b7cf1 Make RackWidget::setModulePosNearest() and setSelectionPosNearest() always set the same row. 3 years ago
  Andrew Belt 074bca645a In RackWidget::setModulePosForce(), only shove right modules left if module's new box does not occupy old box. 3 years ago
  Andrew Belt 30a31e858b Rename RackWidget::getModuleMoveAction() back to getModuleDragAction() for ABI compatibility. 3 years ago
  Andrew Belt 88db0b74e9 Improve RackWidget::setModulePosForce() with a few intuitive special cases. 3 years ago
  Andrew Belt 957350c9ff In RackWidget::setModulePosForce(), if module old position is to the left of the new position, shove other modules to the left instead of the right. 3 years ago
  Andrew Belt 5beab691e6 Constrict dragged module to left/right of other modules. 3 years ago
  Andrew Belt e19347d6da Use setModulePosForce() in RackWidget::addModuleAtMouse(). Push ModuleMove action when calling addModuleAtMouse(). 3 years ago
  Andrew Belt 9c512458cf Refactor RackWidget::addModuleAtMouse(). 3 years ago
  Andrew Belt f4eae161e8 Change RackWidget::setModulePosForce() behavior to insert module between other modules, remove gaps, and shove other modules to the right only. 3 years ago
  Andrew Belt f79c7dc75f Simpilfy RackWidget::onButton(). 3 years ago
  Andrew Belt 74f372ec3f Make force-moving move other modules to their "old" position when moving began. 3 years ago
  Andrew Belt 6a7bd37389 Remove ModuleWidget::oldPos, store old module positions in RackWidget::Internal. 3 years ago
  Andrew Belt 7032be4725 Don't re-adjust module positions based on patch bounding box when serializing RackWidget. 3 years ago
  Andrew Belt 8e7acf9b74 Log all calls to Model::createModule() and createModuleWidget(). 3 years ago
  Andrew Belt ffe340f4b2 Use %lld with long long type instead of PRId64 for printf. 3 years ago
  Andrew Belt 02e9c1dd65 Move Import Selection menu item to File menu bar. 3 years ago
  Andrew Belt 7317ac5afd If input or output PortWidgets do not exist when adding a CableWidget, delete the CableWidget and remove Cable from Engine. 3 years ago
  Andrew Belt 6c81ba466f Add RackWidget::getCompleteCablesOnPort(). Use it in PortWidget and ModuleWidget to prevent crashes when incomplete cables exist. 3 years ago
  Andrew Belt 90c43226cd Clean up doc comments. 3 years ago
  Andrew Belt 0276fde5ab Clean up app:: doc comments. Make some class variables internal. 3 years ago
  Andrew Belt e6f5c62968 Add RackWidget::get/setNextCableColorId(). 3 years ago
  Andrew Belt 3ec47bf575 Make RackWidget::incompleteCable internal with getter. 3 years ago
  Andrew Belt 19f806dbad Implement PortCreateCableItem and PortCableItem. 3 years ago
  Andrew Belt a786493ba1 Swap "Duplicate" and "Duplicate with cables" key commands. Add menu item to module and Edit menus. 3 years ago
  Andrew Belt 79036513c4 Resize mouse spotlight based on RackWidget zoom level. 3 years ago
  Andrew Belt f374dd4c29 Add radial halo around mouse cursor in RackWidget. 3 years ago
  Andrew Belt b28819a99d Make LedDisplay draw on layer 1. Add translucent rectangle over ModuleContainer and draw lights on layer 1 instead of using nvgGlobalTint(). 3 years ago
  Andrew Belt aace0a075b Draw LightWidget light and halo with drawLayer(args, 1) instead of resetting nvgGlobalTint(). 3 years ago
  Andrew Belt 0839a7c041 Draw ModuleWidget shadow with drawLayer() instead of a custom drawShadow() method. 3 years ago
  Andrew Belt cf2ca17156 Add Widget::drawLayer(). 3 years ago
  Andrew Belt 357c0be7a1 Remove "Duplicate with cables" item from module and module selection 3 years ago
  Andrew Belt 35930bf7e9 Add "Duplicate with cables" menu item to module and module selections. 3 years ago
  Andrew Belt 967d99db97 Add return value to eachNearestGridPos() so compilers don't complain. 3 years ago
  Andrew Belt 95ed0bb5c5 Fix module paste key command. Fix crash when deleting module selection. 3 years ago