Commit Graph

116 Commits

Author SHA1 Message Date
Paul Davis 2152e7ba3b triggerbox: change FollowActions into an object with a target list (GUI edition) 2022-01-19 15:50:55 -07:00
Robin Gareus 50bccb44d5
Add static meta-data for x-ardour/region.pbdid DnD
During drag-motion callbacks the data to be dragged is n/a.
However we like to discriminate if drop is possible.

When dragging regions, the data-type of the region to be dragged
is unknown, so different `x-ardour/region` targets are not an
option, either.

Until a better option is presented, a static global is used
to set the data-type for region.pbdid drags.
2022-01-19 17:13:51 +01:00
Robin Gareus 0204ea1f24
Unify Region Drag/Drop
Identify Regions using PDB::ID. This allows dragging regions
from almost anywhere to anywhere, without special cases.
2022-01-19 17:13:51 +01:00
Ben Loftis ddd5b26686 trigger_ui: pixel-pushing: remove drop-shadows and try circles for Cues 2022-01-18 16:42:10 -06:00
Paul Davis 203017e2d5 triggerbox: remove "use follow action" as an explicit property of a trigger (GUI edition, partial) 2022-01-14 17:39:27 -07:00
Robin Gareus 1cc470264f
NO-OP: clang format 2022-01-11 22:12:04 +01:00
Robin Gareus 4eb6a2f195
TriggerBox: draw DnD icon 2022-01-11 22:12:02 +01:00
Robin Gareus 5e3c49f397
TriggerBox: DnD, better version of 8b90ea39a22cl
Move start-drag logic into individual TriggerEntry instances.
This allows to use local data in drag_data_get as-is.
2022-01-11 22:11:57 +01:00
Ben Loftis 3b9fb818e8 trigger_ui: remove update timer, and consolidate set_widget_colors() code 2022-01-11 10:13:06 -06:00
Robin Gareus 192d513cba
NO-OP: clang-format 2022-01-11 13:52:02 +01:00
Robin Gareus 8b90ea39a2
TriggerBox: implement basic TriggerSlot DnD 2022-01-11 05:21:52 +01:00
Robin Gareus 1661f6479f
TriggerBox: allow to receive Regions by ID via DnD 2022-01-11 05:21:51 +01:00
Robin Gareus 056189c76c
Clean up DnD, use MIME-types
This is in preparation for allowing to drag trigger-regions
or trigger-slots. Those will not use a static singleton
PublicEditor API.

Additionally this constrains Ardour-internal drags to Ardour
(via Gtk::TARGET_SAME_APP).
2022-01-10 21:29:29 +01:00
Ben Loftis 4f5779e67d trigger_ui: allow grabbing() for Gate + Repeat (TODO: Repeat is borked) 2022-01-08 09:33:20 -06:00
Ben Loftis fdd92c82fb trigger_ui: implement icons for new launch-styles and follow-actions 2022-01-04 16:45:11 -06:00
Paul Davis aa3806d875 triggerbox: support for ReTrigger launch style 2022-01-03 17:45:21 -07:00
Paul Davis 66b170075b triggerbox: add Forward/ReverseTrigger follow actions (GUI edition) 2022-01-02 17:20:39 -07:00
Ben Loftis cdaa9a7262 trigger_ui: refactor shared features into TriggerUI base 2021-12-30 21:25:39 -06:00
Ben Loftis 9180a985a4 trigger_ui: TriggerEntry is-a TriggerUI 2021-12-30 21:25:39 -06:00
Ben Loftis ab92f205aa trigger_ui: replace missing update => smoother progress-circles 2021-12-30 21:25:39 -06:00
Ben Loftis c5b6d7f9d2 trigger_ui: TriggerEntry is-a TriggerUI 2021-12-30 21:25:39 -06:00
Ben Loftis f35020fc59 trigger_ui: refactor Actions into the TriggerUI base class 2021-12-30 21:25:39 -06:00
Ben Loftis 133b51922a trigger_ui: move old triggerui implementation into slot_properties where it is used 2021-12-30 21:25:39 -06:00
Ben Loftis c45b95a823 triggerui: refactor TriggerUI into a base class ... similar to RouteUI 2021-12-30 21:25:39 -06:00
Ben Loftis 5e76c32e96 trigger_ui: add a button to load a sample (TODO: refactor with triggerbox) 2021-12-30 21:25:39 -06:00
Ben Loftis bad4fdc48a trigger_ui: better display+handling of FA enable and probability 2021-12-27 18:03:13 -06:00
Ben Loftis f5c2697f4f trigger_ui: trigger-master button should follow conventions of other Stop buttons
Normally the Stop occurs quantized (on bar ending). Primary-modifier means 'stop now'
2021-12-27 18:03:13 -06:00
Ben Loftis be190f611d cruft removal 2021-12-27 18:03:13 -06:00
Ben Loftis b722a23f39 triggerbox colors (gtk part) 2021-12-27 18:03:13 -06:00
Ben Loftis 8ac1b40694 pixel-pushing: tweak text position 2021-12-27 18:03:13 -06:00
Ben Loftis 3324882fe0 pixel-pushing: remove horizontal divider lines 2021-12-27 18:03:13 -06:00
Ben Loftis 13b907af5b pixel-pushing: better icons for Any and Other 2021-12-27 18:03:13 -06:00
Paul Davis c18823c0e0 triggerbox: change entire UI side to avoid using TriggerPtr
Lifetime management of Triggers is unlike anything(?) we've dealt with in
Ardour so far. The parent object (Triggerbox) has a normal lifetime
pattern, but Triggers can come and go in a way that few other objects
do (although Processors and particularly PluginInsert are somewhat similar).
We do not want the GUI to hold references to the actual Triggers, because the
end of life of a Trigger is not really a signal for the GUI element to go
away (the Trigger will be replaced in the slot). Consequently, we do not
want TriggerPtr used as a member variable anywhere in the UI. Instead we use a
TriggerReference which can "lookup" a Trigger on-demand (by box and slot
number). The (G)UI now uses these exclusively.

Work still needed to pick up trigger swap signals from the boxen.
2021-12-24 14:18:10 -07:00
Ben Loftis ea9512ff1a trigger_ui: various thinkos. fixes property editor FA buttons 2021-12-23 22:35:52 -06:00
Ben Loftis e87c7d96fb trigger_ui: code cleanup; consistently use X_to_string; add missing items 2021-12-23 22:35:52 -06:00
Paul Davis 43203a407b triggerbox: steps toward sane trigger stopping API and design (GUI edition) 2021-12-22 17:27:26 -07:00
Ben Loftis 308a764e96 trigger_ui: pixel pushing 2021-12-22 12:29:40 -06:00
Paul Davis 844bb85d12 triggerbox: somewhat working mechanism for "clear" slot 2021-12-21 22:35:59 -07:00
Paul Davis c7e778bba0 manual fixups for unresolved merge conflicts 2021-12-21 17:55:48 -07:00
Paul Davis d67f97a754 triggerbox: mostly functional slot swapping system (GUI side) 2021-12-21 17:42:10 -07:00
Paul Davis c18d175f55 triggerbox (UI): shared ptrs for everyone, plus indirect references to Triggers from TriggerEntry 2021-12-21 17:40:37 -07:00
Ben Loftis b89b452c8d trigger_ui: allow selecting an empty slot 2021-12-21 15:32:43 -06:00
Ben Loftis aa7b15a0b6 trigger_ui: more consistent icons and better selection persistence 2021-12-21 15:32:43 -06:00
Ben Loftis b688f7da6b triggerbox_ui: split context menu into launch, contents and follow-action menus 2021-12-21 15:32:43 -06:00
Ben Loftis 9837adb4c4 trigger_ui: separate buttons+icons for launch and follow modes 2021-12-21 15:32:42 -06:00
Robin Gareus 9d4a40ec61
Clean up c4de76c835
* consolidate redraws on property changes
* use RAII to unwind _ignore_menu_action
* replace comments, always add a space after a comment start
  never a Tab
* clang-format
2021-12-18 00:20:50 +01:00
Ben Loftis c4de76c835 triggerbox: implement clear_trigger and isolate (gtk part) 2021-12-17 13:12:00 -06:00
Ben Loftis 9aa6e4c89e triggerbox: highlight stop-button (empty triggers) on entry 2021-12-17 13:09:49 -06:00
Paul Davis d5e13f093f triggerboxui: explicitly disconnect from update/selection signals
sigc::connection is not scoped, so disconnection is not automation
2021-12-17 09:54:43 -07:00
Robin Gareus 8b5711238e
Mysterious fix crash on selection
This was removed in 422ad6656d since disconnecting
sigc::connection in the d'tor is not supposed to be a no-op.
2021-12-17 17:11:48 +01:00