Commit graph

543 commits

Author SHA1 Message Date
Paul Davis
801099e057 use Gtkmm2ext::BindingSet for the GUI 2025-03-10 18:49:02 -06:00
Robin Gareus
000c25edcc
Update gtkmm -> ytkmm header location (omnibus commit) 2025-02-01 15:25:14 +01:00
Robin Gareus
cbe838ce26
Fix crash when dragging plugins from sidebar 2024-12-17 15:50:03 +01:00
Robin Gareus
82cb9ae37b
Do not allow to DnD plugins to the same route's other processor box
e.g. detached mixer to editor-mixer processor box
2024-12-11 15:45:57 +01:00
Robin Gareus
b5d6b97fd2
Keep inline control state in sync with editor-mixer 2024-10-22 00:36:50 +02:00
Robin Gareus
74c4ca3e52
Reduce reliance on boost - the hard part
the rest from `tools/convert_boost.sh`.

* replace boost::function, boost::bind with std::function and std::bind.

This required some manual fixes, notably std::placeholders,
some static_casts<>, and boost::function::clear -> = {}.
2024-10-19 03:47:21 +02:00
Paul Davis
cc56f92a73 modify caa0cc8790 to actually pass a reference to the selected plugin 2024-07-29 17:25:06 -06:00
Paul Davis
caa0cc8790 notify control protocols about plugin selection in a processor box 2024-07-29 10:19:52 -06:00
Robin Gareus
1f368900e3
Update GUI to use new IO PortSet API (2/2) 2024-06-24 22:19:51 +02:00
Robin Gareus
a69ca86944
Fix inline controls allow for inverted range
Some controls (notably pan azimuth) have reversed range 1..0.
Support for this was added years ago in 647103c825
but inline controls were not updated.
2024-04-11 19:41:14 +02:00
Robin Gareus
311f55dba2
Triggerbox Processors are not visible and have no UI
Previously A ProcessorWindowProxy was created for each Route's
triggerbox, and the state was saved with the session file.
2024-02-15 13:26:47 +01:00
jean-emmanuel
97e32a7a61 ui: mixer: adjust plugin inline display for a more consistent look (same border radius as faders, 1px distance with the edges of the containers and with the connection pins). Does the plugin drawer need to be tricked into drawing to the exact adjusted surface now ? 2024-01-20 14:44:30 +01:00
jean-emmanuel
bf0d73b3f1 ui: mixer: remove extraneous outline around strip processor list 2024-01-20 14:44:30 +01:00
Robin Gareus
7228144d6e
Vapor: GUI support to add Surround Bus 2024-01-06 20:27:03 +01:00
Robin Gareus
9cc966120c
Consolidate internal bus checks (2/2) 2024-01-06 20:21:54 +01:00
Robin Gareus
3355e753bf
Keep track of LV2 externalUI visibility
This allows Ardour to re-open previously shown plugins,
and toggle externalUI.

This worked in the distant past, before Ardour 3.3 introduced
the Ardour Window Manager.
2023-11-26 20:07:00 +01:00
Robin Gareus
c162aa7aca
Consistently use context-menu button action
This fixes an issue where brining up a menu can directly activate an
action in the menu. Notably on macOS.

Nathan reports that this may also address #9515

Note: mac touchpads are not affected since right-click there is
effectively a "press and hold".
2023-10-31 20:16:23 +01:00
Robin Gareus
c1be897eed
Explicitly sandbox Lua instances (3/4)
This allows UI scripts (saved in preferences) to access
os.* functions (non-sandboxed), while preventing other
scripts to do so.

Lua scripts that can run os commands can execute arbitrary
code on the system. While this is a nice feature, it can be
equally dangerous.
2023-10-04 02:50:38 +02:00
Paul Davis
e9585ad530 objects don't have a time domain, they have a time domain provider (GUI) 2023-08-02 15:22:52 -06:00
Paul Davis
3c2112abf5 widgets & GUI: Start/StopGesture signals should pass on GDK event state 2023-07-26 13:11:52 -06:00
Paul Davis
ec7d502959 cairo single pixel line offset fix, part 2
This will need careful visual inspection of the items drawn by the
affected code to make sure they are still precisely as intended
2023-07-17 20:55:13 -06:00
Robin Gareus
0918f7fc09
Fix Mixbus build 2023-05-27 16:18:10 +02:00
Robin Gareus
cad949eb4e
Allow to rename plugins (#9352) 2023-05-27 15:16:46 +02:00
Robin Gareus
68d910d58c
Catch another windows no-top-level issue
GTK+ on windows is weird on occasion :)
2023-05-15 22:47:36 +02:00
Paul Davis
f387cbae12 amend 82e03ac13e for better leave notify behavior
Don't clear the processor box selection when leaving for
a non-linearly related widget/window (e.g. a context menu)

Note that the deselect is a little buggy but that was
true before the referenced commit too. If you move the mouse too
fast out of a processor box, then depending on where the
mouse stops, no leave notify message is sent
2023-04-29 09:57:54 -06:00
Paul Davis
82e03ac13e fix SNAFU with processor box bindings
Bindings were not loaded until after ProcessorBoxen were created,
meaning they had no effect (the ProcessorBoxen set their ardour
bindings to null).

Also handle leave-means-deselect at ProcessorBox level rather than
MixerStrip level, to include MonitorSection PB
2023-04-26 17:19:50 -06:00
Robin Gareus
7302aefbee
Guard set_transient_for for NULL windows
While there should always be a top-level, backtraces
provided by some [windows] users show that it can be NULL
in some scenarios.
2023-04-04 01:38:33 +02:00
Paul Davis
b35518e212 switch from boost::{shared,weak}_ptr to std::{shared,weak}_ptr
This is mostly a simple lexical search+replace but the absence of operator< for
std::weak_ptr<T> leads to some complications, particularly with Evoral::Sequence
and ExportPortChannel.
2023-03-24 14:19:15 -06:00
Ben Loftis
24ed994d02 redirect box: add a Reset action to the Presets submenu 2022-12-16 15:36:27 -06:00
Robin Gareus
2bca6395cc
Attempted fix for idle_drop_window random crashes (1/2) 2022-12-03 19:27:45 +01:00
Robin Gareus
d1b462c213 Special case tansient-parent windows on macOS
macOS has its own z-axis stacking (see Manager::set_transient_for) for
dialog and utility windows of a single application. There only case to
set a dedicated transient parent is to keep the child window on top of a
dialog.

Valid use-cases are e.g.
 Plugin Preset Name entry on top of a PluginWindow
 Export Format Settings on top of the Export Dialog

Alternatively one would need to patch gtk to handle
[NSView shouldDelayWindowOrderingForEvent] and explicitly reorder
siblings of a common parent window.

This fixes an issue that plugin windows cannot be re-stacked but were
previously always stacked in the order they were opened.
2022-11-15 03:07:43 +01:00
Ben Loftis
dd33e19eda Disambiguate Controls in the redirect box: "Inline Controls" 2022-11-08 13:13:30 -06:00
Robin Gareus
fea7621b17
Fix state version for copy-construction (2/2)
see previous commit for details
2022-11-04 17:51:27 +01:00
Robin Gareus
cb548ede3d
Safeguard plugin window deletion when closing the session
..otherwise it may happen that the idle-signal arrives after
the window has already been destroyed.
2022-11-02 16:23:43 +01:00
Robin Gareus
19ab75f5e5
Do not destroy Lua DSP GUIs (they are always generic UIs) 2022-10-31 22:47:30 +01:00
David Robillard
bdacfb8724 Fix invalid use of Doxygen "@param" command
This is never for inline references to parameters, only for starting parameter
documentation blocks.  The "@p" command is for this, although unfortunately
Doxygen doesn't actually do anything with it and it's just an alias for code
text.
2022-10-30 20:44:28 -04:00
Robin Gareus
c3697e1755
Overhaul PortInsert UI
* add gain controls for send/return
* add send polarity invert control
* allow to customize latency
* set transient parent
* cleanup and format source
2022-10-14 02:21:50 +02:00
Robin Gareus
5a48a56bfe
Clean and overhaul up SendUI
* add polarity control
* set transient parent
* remove unused methods
* clang-format source
2022-10-14 02:21:50 +02:00
Robin Gareus
45398fb65c
Fix switch custom -> generic plugin UI
See also e635571f2f and bd898a68
2022-10-11 20:44:04 +02:00
Robin Gareus
bd898a68df
Fix switch custom -> generic plugin UI (amend e635571f2f) 2022-10-11 02:40:55 +02:00
Robin Gareus
00fe7e8778
Remove Lambda w/return value for compiler compat. 2022-10-09 16:45:31 +02:00
Robin Gareus
b42591fde1
Specify return type of lambda (amend e635571f2f) 2022-10-09 15:40:29 +02:00
Robin Gareus
e635571f2f
Implement preference to destroy plugin UIs
see also https://discourse.ardour.org/t/very-high-gpu-usage-on-windows/107672
2022-10-08 18:45:20 +02:00
Robin Gareus
c4b63221d1
Allow to delete preset from context menu 2022-09-23 05:40:05 +02:00
Robin Gareus
56c5db9115
Fix indent of previous commit 2022-09-21 22:38:22 +02:00
Robin Gareus
b3c95e8946
Allow to create presets from processor context-menu 2022-09-21 22:19:32 +02:00
Robin Gareus
135a54effd
Cleanup processor-box sensitivity, mixbus backport 2022-09-21 21:17:21 +02:00
Robin Gareus
75ad3832db
Amend prev commit 2022-09-12 20:10:54 +02:00
Robin Gareus
91ba76fb0a
Add plugin presets to processor-box context menu 2022-09-12 20:05:07 +02:00
Robin Gareus
a307a367cc Remove special-case for send-level display name
These days, `describe_parameter()` handles this fine and returns "Send".
This is in preparation for adding a polarity-invert control to sends.
2022-09-04 01:35:24 +02:00