Commit graph

108 commits

Author SHA1 Message Date
Paul Davis
801099e057 use Gtkmm2ext::BindingSet for the GUI 2025-03-10 18:49:02 -06:00
Paul Davis
93225114d4 improve visibility management of clip property/editing displays 2025-02-09 10:41:21 -07:00
Robin Gareus
000c25edcc
Update gtkmm -> ytkmm header location (omnibus commit) 2025-02-01 15:25:14 +01:00
Robin Gareus
8e444ba45d
Correctly set sidebar tab selection for new users 2025-01-29 01:45:43 +01:00
Robin Gareus
41a591ad49
Restore Trigger Page sidebar tab on session load 2025-01-29 00:31:41 +01:00
Robin Gareus
6e5d48b7ff
Use meta-button for trigger-page sidebar notebook tabs
This reverts and replaces commit 82993157e5.
2025-01-28 22:52:00 +01:00
Paul Davis
42bbd1afd5 wrap pianoroll in an event box so we can get events from "the whole thing" 2025-01-22 18:20:25 -07:00
Robin Gareus
82993157e5
Revert "Use dropdown instead of trigger-page sidebar notebook tabs"
This reverts commit e7ac13a834.
2025-01-22 19:18:35 +01:00
Paul Davis
89c6c46f65 fix a few issues following the pianoroll renaming 2025-01-07 12:58:54 -07:00
Paul Davis
5635144e42 initial rename of MidiCueEditor -> Pianoroll 2025-01-07 11:30:26 -07:00
Robin Gareus
e7ac13a834
Use dropdown instead of trigger-page sidebar notebook tabs 2025-01-06 22:53:54 +01:00
Robin Gareus
72d03fb9a4
Vertically line up cues with trigger slots 2024-12-03 18:03:20 +01:00
Robin Gareus
940e1bc2df
NO-OP: rename layout widgets for clarity 2024-11-20 18:56:20 +01:00
Robin Gareus
1c5117444f
Replace custom TriggerUI pane with Tabbable pane 2024-11-16 19:31:28 +01:00
Robin Gareus
0b933127e9
Use new Tabbable API 2024-11-15 04:40:39 +01:00
Robin Gareus
19fc6e831b
Fix missing calls to SessionHandlePtr::session_going_away()
Explicit calls to set_session(0) will disconnect the
callback to session_going_away(). So don't do that.
2024-11-10 23:27:36 +01:00
Ben Loftis
983236f348
implement focus_on_clock for each tabbable 2024-11-10 23:27:35 +01:00
Ben Loftis
9a03fa59b1
store and recall the sidebar List visibility on the trigger page 2024-11-10 23:27:35 +01:00
Ben Loftis
8f183e26ee
Use tabbable visibility functions on all pages 2024-11-10 23:27:35 +01:00
Ben Loftis
4b1e09f810
Pack Pages using Tabbable constructs 2024-11-10 23:27:35 +01:00
Ben Loftis
1b18c3e76c
Use Transport Bar in top-level pages 2024-11-10 23:27:34 +01:00
Robin Gareus
b2e4dd91b9
Update Tabbable c'tor to allow member as top-level widget
Derived classes cannot use `Tabbable (_content_vbox,..)`
`_content_vbox` is a member of Tabbable (which has not
yet been initialized) at the point of construction.

This breaks internal API, hence the omnibus commit
2024-11-10 23:27:34 +01:00
Paul Davis
e11caf2dea various changes to get MIDI clip recording to display the post-capture region 2024-10-22 14:49:50 -06: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
70b41d10b1 actally stop doing clip recording visual stuff when disarmed (gui) 2024-10-18 09:50:48 -06:00
Paul Davis
229506147a playhead for MIDI clip editor during playback (first steps) 2024-10-17 15:06:33 -06:00
Paul Davis
e390c2c3dd trigger page should respond to rec-enable changes 2024-10-17 07:44:33 -06:00
Paul Davis
d7e85de7c2 first somewhat version of show-clip-capture MIDI notes as they arrive 2024-10-17 07:44:33 -06:00
Paul Davis
35f16f1bb6 preparations for clip data display (MIDI) while recording (GUI edition) 2024-10-17 07:44:33 -06:00
Paul Davis
1961a9207c provide a better method to decide if a trigger(slot) is occupied
This is necessary with clip recording because for some short time after recording,
a trigger may be playable despite not yet having a region.

GUI edition.
2024-10-17 07:44:32 -06:00
Paul Davis
ee305a7169 catch up on TriggerReference API changes in GUI 2024-10-17 07:44:31 -06:00
Paul Davis
69871e0021 trigger page: use a VPane so we can enlarge the cue editor if desired
Plus fixup to get MIDI notes redrawn as pane is resized
2024-10-17 07:44:31 -06:00
Paul Davis
fcfa4fecb4 more preparation for MIDI cue editing to propagate to the slot (trigger) 2024-10-17 07:44:30 -06:00
Paul Davis
0d01e73b86 some state mgmt for EditingContexts 2024-10-17 07:44:30 -06:00
Paul Davis
fcf5bb88d5 cue editor/piano roll: starting to get mode buttons working and keybindings too 2024-10-17 07:44:30 -06:00
Paul Davis
e3205bded0 do something to make MIDI bindings accessible in any EditingContext 2024-10-17 07:44:29 -06:00
Paul Davis
182a24751b get standalone MidiView to display notes
This also removes an unused TriggerBoxWidget from each regular
MixerStrip.
2024-10-17 07:44:29 -06:00
Paul Davis
2b997343a4 first working visual evidence of MIDI display/editing on cue page 2024-10-17 07:44:29 -06:00
Paul Davis
204d4237f8 further steps towards MidiRegionView outside the Editor 2024-10-17 07:44:29 -06:00
Paul Davis
6149771910 fix yet more cases where SMF are imported and named incorrectly 2024-10-15 22:35:04 -06: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
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