Commit Graph

68 Commits

Author SHA1 Message Date
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
Paul Davis 303f838a53 define new actions for stopping triggers/slots 2022-12-10 10:33:39 -07:00
Robin Gareus d808315e2a
Offer dedicated alternatives for Delete/Backspace
This follows Processor Box:
 <Binding key="Delete" action="ProcessorMenu/delete"/>
 <Binding key="BackSpace" action="ProcessorMenu/backspace"/>
2022-12-02 19:50:39 +01:00
Robin Gareus 899cacdf86
Delete/BackSpc clears selected trigger-clos 2022-12-02 19:19:20 +01:00
Paul Davis 93adb3fe1f bindings and actions for trigger stuff owned by trigger page 2022-11-16 14:15:34 -07:00
Paul Davis 0c2176dd71 move default_triggers_per_box into a namespace ; change value for Ardour to 16 (GUI edition) 2022-10-04 19:55:15 -06:00
Robin Gareus 07dea50456
Fix DnD import to grouped tracks
Import via Drag/Drop previously worked by selecting a track,
and then importing to the selected track.

This approach fails when the selected track is in a track-group,
and selecting the track also selects other tracks of different type.

Now the track to drop onto is passed directly passed through to
::finish_bringing_in_material as existing_track.
2022-09-30 21:30:48 +02:00
Mads Kiilerich 7f649efd42
gtkmm: use set_can_focus() instead of deprecated Gtk::Widget::set_flags(CAN_FOCUS) 2022-04-08 21:11:06 +02:00
Mads Kiilerich d52c727ec5
gtkmm: use get_mapped instead of deprecated Gtk::Widget::is_mapped() 2022-04-08 20:20:10 +02:00
Paul Davis ca22ba77e1 Constification: make Stateful::get_state() const, with all other required const-ness added (GUI) 2022-04-06 21:56:59 -06:00
Ben Loftis de9f73c040 cue page: remove the unmarked rec-enable button from the cues column 2022-02-12 21:46:30 -06:00
Ben Loftis 40b483e71e trigger_ui: move the patch-dialog to the properties area.
* patch-dialog is now launched from a button and stays open
* patch-dialog now tracks the current selection
2022-02-11 15:32:00 -06:00
Robin Gareus 42df6be0fa
Show Trigger Patch Selector on selection 2022-02-09 21:09:46 +01:00
Robin Gareus e3e7f587bd
Use audition synth when creating new trigger tracks via DnD 2022-02-09 14:32:12 +01:00
Ben Loftis 9ad82787a1 Instrument Selector: use a 3-way Disposition to disambiguate the uses of this widget 2022-02-04 21:33:12 -06:00
Robin Gareus 511ff3290f
Implement TriggerStrip selection
This also changes TriggerBox Selection to act on release
(like all other selection). Otherwise strip selection will
de-select the TriggerBox on mouse-release.
2022-02-03 05:50:07 +01:00
Ben Loftis 2df7a8d961 terminology: set the title of the Cue(s) Window 2022-01-31 20:25:06 -06:00
Ben Loftis 5f10817126 trigger_ui: add menu items and bindings to trigger Cues A-H 2022-01-31 20:25:05 -06:00
Robin Gareus 92024697aa
Prepare clip-export DnD 2022-01-29 03:04:17 +01:00
Robin Gareus fe49558429
Correctly order TriggerStrips on TriggerPage 2022-01-27 04:06:13 +01:00
Robin Gareus 194dfc1717
Add Tracks to TriggerPage sidebar 2022-01-27 01:28:50 +01:00
Ben Loftis 760c55b0b2 Cue Page: the property-box does not need a resizable pane 2022-01-26 17:57:55 -06:00
luz paz 364f2f0788 Fix typos in gtk2_ardour/ directory
Found via `codespell -q 3 -S *.po,./share/patchfiles,./libs -L ba,buss,busses,doubleclick,hsi,ontop,ro,seh,siz,sur,te,trough,ue`
2022-01-26 12:35:38 -05:00
Ben Loftis 986942fe96 Cue Page: rename Trig -> Cue 2022-01-25 19:50:57 -06:00
Robin Gareus b6b9d9231b
Trigger page, slot property layout hacks
The layout should eventually really be simplified.
Use a HBox, remove nested tables, get rid of tables with only
one Frame inside. etc.
2022-01-24 19:28:58 +01:00
Robin Gareus 5b5d8e72f1
Tweak TB layout: same height for all slot-property frames 2022-01-24 18:53:58 +01:00
Ben Loftis dab9f8d226 trigger page: theme the rec-enable button 2022-01-23 20:24:44 -06:00
Ben Loftis d6815d7e40 trigger page: rough-in a control for Cue Recording 2022-01-21 17:45:26 -06:00
Ben Loftis 094fbfa132 trigger page: shrink Cue column to minimum (?) 2022-01-21 17:45:26 -06:00
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 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
Robin Gareus d4b436b4c5
Add SourceList to TriggerPage 2022-01-19 17:13:51 +01:00
Robin Gareus c0ac99003b
Add RegionList to TriggerPage 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 2147ec6da7 trigger_ui: hide midi clip properties (pgm, ccs) until implemented 2022-01-18 16:33:45 -06:00
Robin Gareus 945849cfb5
TriggerPage: show newly created tracks
The default argument changed, see 76facc0b13 and 670e1f9025
2022-01-18 16:01:42 +01:00
Ben Loftis 8e96dd40ed Tweak layout of Slot properties area 2022-01-17 18:04:43 -06:00
Ben Loftis 8595348db0 Remove unused property-editor widgets (for now). Resolves some SessionHandleRef shutdown errors 2022-01-17 18:04:43 -06:00
Robin Gareus fef4c2aba0
NO-OP: fix indent 2022-01-17 22:07:35 +01:00
Robin Gareus 213cc626be
Add sidebar to trigger-page 2022-01-17 22:06:48 +01:00
Ben Loftis 378ad277bd typo fix 2022-01-16 17:15:46 -06:00
Robin Gareus 60f8cfb841
Add capttion to Trigger Page "+" icon 2022-01-15 04:46:58 +01:00
Robin Gareus 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
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
Robin Gareus 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
Robin Gareus 02b94123ef
Implement new trigger-track from region drop 2022-01-04 02:26:04 +01:00
Robin Gareus 0e5b259cf0
Allow to create new trigger-tracks via file DnD 2022-01-03 23:57:50 +01: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 68990d2dbd trigger_ui: add a set_all_X context menu to Cue buttons 2021-12-23 22:35:52 -06: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