Commit Graph

39 Commits

Author SHA1 Message Date
2152e7ba3b triggerbox: change FollowActions into an object with a target list (GUI edition) 2022-01-19 15:50:55 -07:00
b51621a1ae
Fix assert() when using DnD to import MIDI files
When importing a multi-track MIDI files with identical track-names,
Ardour would create the same file for each track. Effectively
overwriting an existing file.

The following MIDI file would create the same file twice
in `interchange/`, once for each MTrk.

```
MFile 1 2 240
MTrk
0 Meta SeqName "Foo Bar"
0 TimeSig 4/4 24 8
0 Tempo 666667
0 Meta TrkEnd
TrkEnd
MTrk
0 Meta TrkName "Foo Bar"
0 On ch=10 n=36 v=95
...
```
2022-01-19 19:22:51 +01:00
d4b436b4c5
Add SourceList to TriggerPage 2022-01-19 17:13:51 +01:00
c0ac99003b
Add RegionList to TriggerPage 2022-01-19 17:13:51 +01:00
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
2147ec6da7 trigger_ui: hide midi clip properties (pgm, ccs) until implemented 2022-01-18 16:33:45 -06:00
945849cfb5
TriggerPage: show newly created tracks
The default argument changed, see 76facc0b13 and 670e1f9025
2022-01-18 16:01:42 +01:00
8e96dd40ed Tweak layout of Slot properties area 2022-01-17 18:04:43 -06:00
8595348db0 Remove unused property-editor widgets (for now). Resolves some SessionHandleRef shutdown errors 2022-01-17 18:04:43 -06:00
fef4c2aba0
NO-OP: fix indent 2022-01-17 22:07:35 +01:00
213cc626be
Add sidebar to trigger-page 2022-01-17 22:06:48 +01:00
378ad277bd typo fix 2022-01-16 17:15:46 -06:00
60f8cfb841
Add capttion to Trigger Page "+" icon 2022-01-15 04:46:58 +01:00
96137739a7
Reduce includes required for Selection
Previously a triggerbox_ui.h change triggered a complete UI
rebuild. This follows the concept of other editor_selection
lists which use forward declarations.
2022-01-11 05:21:51 +01:00
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
547465e1fa
Implement ImportAsTrigger w/ImportSerializeFiles
Place imported files on the same new track on consecutive
trigger slots.
2022-01-04 02:26:04 +01:00
02b94123ef
Implement new trigger-track from region drop 2022-01-04 02:26:04 +01:00
0e5b259cf0
Allow to create new trigger-tracks via file DnD 2022-01-03 23:57:50 +01:00
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
68990d2dbd trigger_ui: add a set_all_X context menu to Cue buttons 2021-12-23 22:35:52 -06:00
c18d175f55 triggerbox (UI): shared ptrs for everyone, plus indirect references to Triggers from TriggerEntry 2021-12-21 17:40:37 -07:00
27ba2c7ea6
Cleanup and clang-format source 2021-12-17 15:30:14 +01:00
6e3ed7f822
Clean up trigger-page layout
* move strip name-button to the top
* only manage() Gtk Widgets, not Canvas Items
* use identical layout for Cue and Strip
2021-12-17 14:51:19 +01:00
5ad5603f1e
Unset CueMaster session-handle on session close 2021-12-17 00:42:07 +01:00
e3be6836ca
Trigger-clip-picker audition 2021-12-17 00:42:06 +01:00
a15397f746 triggerbox: new trigger_property widgets, because trigger data != a region 2021-12-15 18:08:22 -06:00
509c247bfe
Add strip dialog to blank Trigger Page 2021-12-14 21:03:48 +01:00
3e5606415f Trigger Cues: implement Stop button (gtk part) 2021-12-13 07:27:16 -06:00
f5049cda74 audio clip editor: restore ruler removed during merge conflict resolution; incrementally improve its behavior 2021-12-12 22:49:29 -07:00
e5d40e86e7
Do not dynamically allocate persistent widgets 2021-12-12 14:34:14 +01:00
be7882d7a7
Skeleton for trigger clip file dialog 2021-12-12 14:25:49 +01:00
efed7343e0
NO-OP: clang-format, cleanup 2021-12-12 13:48:52 +01:00
12dc428a60 change class names and heirarchy for the GUI elements that will be used to edit/trim clips 2021-12-09 19:45:25 -07:00
be27e7359f Property Boxen: handle more {audio|midi} cases; move code around. 2021-12-08 12:58:12 -06:00
132779ab39 Property Boxen: populate the Trigger page with property-editor placeholders 2021-12-08 12:58:12 -06:00
fcab855fca Trigger Cues: continued work on triggers, cues and master widgets 2021-12-08 12:35:32 -06:00
d20298549e Trigger Cues: add to trigger page 2021-12-08 12:35:32 -06:00
59b012ddb0
Implement TriggerStrip and TriggerPage (WIP) 2021-12-01 23:10:08 +01:00
9ce604bc03
New Tabbable: Trigger-Page skeleton 2021-12-01 23:10:08 +01:00