Andrew Belt
474dfdd26b
Disable Duplicate module selection menu item when nothing is selected.
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
297561705a
Add key commands to selected modules.
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
99adc5c0fe
Add PlugWidget. Implement appearance of cables and plugs from Pyer. Add layer variable to Widget::DrawArgs. Add color::isEqual().
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
915e3fcdb9
Clean up FramebufferWidget, Window.
3 years ago
Andrew Belt
25ea4bcc9e
Define the math::Rect set as inclusive on left/top but exclusive on
right/bottom.
3 years ago
Andrew Belt
63b424afcb
Fix RackWidget::requestModulePos() after Rect::intersects() was made
inclusive.
3 years ago
Andrew Belt
d7e1dae42c
Use PlugPort SVG and MediumLight from Component Library for plug (WIP).
3 years ago
Andrew Belt
cc20d1f2ac
Change TGrayModuleLightWidget background color. Don't draw light halo in framebuffers.
4 years ago
Andrew Belt
9d81a3e4d0
Rewrite LightWidget rendering by using more physical light blending function. Add ability to decrease rack brightness by tinting all but the lights a shade of gray. Add settings and menu items to adjust rack brightness and light halo.
4 years ago
Andrew Belt
4e7f1edb24
Change all deprecated APP->window->loadSvg() calls to Svg::load(). Fix FramebufferWidget::onContextDestroy() not unsetting framebuffer handle.
4 years ago
Andrew Belt
5484126aaa
Change `event::Foo` to `FooEvent`.
4 years ago
Andrew Belt
ec14e18bec
Remove PatchManager::isLegacy().
4 years ago
Andrew Belt
c4cc1c4368
Clean up fromJson Engine and RackWidget methods. Fix v0.6 patch loading.
4 years ago
Andrew Belt
27ccb2f9a3
Refactor paste actions of ModuleWidget and RackWidget.
4 years ago
Andrew Belt
1e6bc7cdf5
Make Vec::equals, Rect::equals, Rect::containing, and Rect::intersecting non-deprecated.
4 years ago
Andrew Belt
b9594bb07b
Use PRId64 for portability of printf format strings on Linux and Windows.
4 years ago
Andrew Belt
0a76018aa8
Switch back to %lld for 64-bit integers. Windows supports them but still
gives a warning. Just ignore them for now.
4 years ago
Andrew Belt
379c99a69f
Fix printf string for 64-bit integers on Windows.
4 years ago
Andrew Belt
f3c8262183
Make Module always deserialize "id", "leftModuleId", and "rightModuleId". Due to this, make pasting and cloning modules delete these properties from the JSON before `fromJson()` is called.
4 years ago
Andrew Belt
06c6590b51
Implement Module::ExpanderChangeEvent event trigger.
4 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
d85856eccc
Add `FramebufferWidget::dirtyOnSubpixelChange` setting. Disable it for the FramebufferWidget that contains the RackRail.
4 years ago
Andrew Belt
0cefd1138b
Replace event::Zoom with event::Dirty.
5 years ago
Andrew Belt
feece06fbb
Add event::KeyBase::keyName, which fixes key commands on AZERTY and Dvorak. Add lots of documentation to event::KeyBase.
5 years ago
Andrew Belt
05427d938b
Overhaul threading model for Engine using a shared mutex based design.
5 years ago
Andrew Belt
9ea49664bb
Copy cable color when cloning cables with Ctrl+click.
5 years ago
Andrew Belt
120aafe6d3
Change order of includes to C++ standard headers, library headers, and local project headers.
5 years ago
Andrew Belt
ca9231e1b3
Rename App to Context and app.hpp to context.hpp. The APP macro is still valid.
5 years ago
Andrew Belt
12fcaa4b08
Move moduleFromJson from engine to plugin namespace. Move Engine mutex lock at the top of Engine::step().
5 years ago
Andrew Belt
05df47fbd1
Add Internal struct to ModuleWidget.
5 years ago
Andrew Belt
6c9afbec7a
Fix template cable IDs.
5 years ago
Andrew Belt
4936df2c0b
Move ParamWidget/Knob/Switch properties to ParamQuantity. Fix static linking on Linux.
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
26bda06eb7
Move slug normalization from getPlugin or getModel functions to fromJson functions.
5 years ago
Andrew Belt
ff2ac805e2
Fix #1510
5 years ago
Andrew Belt
f55d039ee9
Fix #1479
5 years ago
Andrew Belt
dca30e2b53
Auto-format code with astyle.
5 years ago