Andrew Belt
99361ff172
Place module selection nearest to mouse position when pasting.
1 year ago
Andrew Belt
f47729b40d
Add back force-moving of modules.
2 years ago
Andrew Belt
e6354957a5
Separate RackWidget::setModulePosForce() into multiple methods.
2 years ago
Andrew Belt
30a31e858b
Rename RackWidget::getModuleMoveAction() back to getModuleDragAction() for ABI compatibility.
2 years ago
Andrew Belt
e19347d6da
Use setModulePosForce() in RackWidget::addModuleAtMouse(). Push ModuleMove action when calling addModuleAtMouse().
2 years ago
Andrew Belt
74f372ec3f
Make force-moving move other modules to their "old" position when moving began.
2 years ago
Andrew Belt
6c81ba466f
Add RackWidget::getCompleteCablesOnPort(). Use it in PortWidget and ModuleWidget to prevent crashes when incomplete cables exist.
2 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
b22f88b8aa
Rename INTERNAL to PRIVATE. Add PRIVATE to several functions/symbols that plugins should never call/use.
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
357c0be7a1
Remove "Duplicate with cables" item from module and module selection
menu, but make key command Mod+shift+D disable cloning cables.
3 years ago
Andrew Belt
35930bf7e9
Add "Duplicate with cables" menu item to module and module selections.
3 years ago
Andrew Belt
ea09f6df29
Use `RackWidget::selectedModules` set rather than `ModuleWidget::selected` bool.
3 years ago
Andrew Belt
c8f090aa1f
Add and implement RackWidget::loadSelection() and saveSelection().
3 years ago
Andrew Belt
b341c90cc2
Clean up RackWidget selection method names. Add unimplemented RackWidget::loadSelectionDialog() and saveSelectionDialog().
3 years ago
Andrew Belt
76331f350c
Implement the "modules" half of RackWidget::pasteJsonAction().
3 years ago
Andrew Belt
4fb2c9ac7c
Add RackWidget::fromJsonAction(), ModuleWidget::fromJsonAction(), and replace CableWidget::toJson() with CableWidget::mergeJson().
3 years ago
Andrew Belt
aaf98bb16d
Implement RackWidget::copyClipboardSelectedModules(). Clean up RackWidget API.
3 years ago
Andrew Belt
eeaafcfb88
Add menu item and key command for cloning selected modules.
3 years ago
Andrew Belt
fb36f4f009
Add RackWidget::setSelectedModulesPosNearest() so dragging selected modules uses nearest position to the drag start.
3 years ago
Andrew Belt
1a1a988535
Add Select All and Deselect menu items and key commands.
3 years ago
Andrew Belt
c5374a878e
Move ModuleWidget::createSelectionContextMenu() to RackWidget::appendSelectionContextMenu(). Add selection context menu to Edit in menu bar.
3 years ago
Andrew Belt
b017ebf887
Move module selection key commands to Scene so they are handled regardless of mouse position.
3 years ago
Andrew Belt
8dc2b30c6b
Add module deselection to context menu.
3 years ago
Andrew Belt
99c96c1e05
Implement RackWidget::bypassSelectedModulesAction() so bypassing the module selection works.
3 years ago
Andrew Belt
5995391ef9
Add basic module selection dragging.
3 years ago
Andrew Belt
bcc22eba61
Add actions to ModuleWidget::createSelectionContextMenu(). Refactor RackWidget and ModuleWidget as necessary.
3 years ago
Andrew Belt
2a5180f101
Clean up RackWidget and ModuleWidget members.
3 years ago
Andrew Belt
7d2ce0a6bb
Add ModuleWidget selection. (Currently does nothing.)
3 years ago
Andrew Belt
1f079444a2
Add Widget::drawChild(). Make RailWidget draw a FramebufferWidget repeatedly as a tile.
3 years ago
Andrew Belt
61d387c63b
Rewrite RackRail and rename it to RailWidget. Add rail graphic revision from Pyer.
3 years ago
Andrew Belt
bb9e9b78ce
Add pimpl Internal* struct to several classes that have a possibility of needing more member variables in 2.x.
3 years ago
Andrew Belt
5484126aaa
Change `event::Foo` to `FooEvent`.
3 years ago
Andrew Belt
f887faea79
Fix module and cable ID variables that were `int` instead of `int64_t`. Add `Engine::getNumCables()` and `Engine::getCableIds()`.
4 years ago
Andrew Belt
120aafe6d3
Change order of includes to C++ standard headers, library headers, and local project headers.
4 years ago
Andrew Belt
05df47fbd1
Add Internal struct to ModuleWidget.
5 years ago
Andrew Belt
e4b6056ded
Massive WIP v2 overhaul:
- Add Engine::fromJson which can be called without the GUI at all.
- Make RackWidget::fromJson attach itself to existing Engine state. However, once attached, they own their Engine objects (Module, Cable).
- Remove Engine thread. Now Engine must be stepped by other threads, such as the audio thread. This is fantastic because there is no longer a mutex lock every audio buffer.
- Add concept of the "primary module", which is allowed to call Engine::step().
- Add many Module events.
5 years ago
Andrew Belt
dca30e2b53
Auto-format code with astyle.
5 years ago
Andrew Belt
696939069d
Use <> instead of "" for include directive.
5 years ago
Andrew Belt
2cd29d62f0
Draw plugs under wires for CableWidgets in CableContainer.
5 years ago
Andrew Belt
de95175596
Since dragging a ModuleWidget can move all modules, push a ComplexAction of ModuleMove actions instead of a single action.
5 years ago
Andrew Belt
6fd01b217a
Add ModuleWidget force movement.
5 years ago
Andrew Belt
8d270d23cd
Use more efficient algorithm to finding valid ModuleWidget position in RackWidget::requestModulePosNearest.
5 years ago
Andrew Belt
a5d7a0b75b
Add middle-click-drag to ScrollWidget. Fix numerous bugs introduced by event system changes.
5 years ago
Andrew Belt
9d609fee2b
Rename `widget::*Event` to `event::*`.
5 years ago
Andrew Belt
16b42e8e4e
Rename RackWidget::rails
5 years ago
Andrew Belt
b84e2f57fa
Merge event:: namespace with widget:: namespace. Rename event::* to widget::*Event.
5 years ago