Paul Davis
4e8591da99
move cut/copy/delete/paste operations into EditingContext
...
derived classes (Editor and Pianoroll) provide ::cut_copy() to wrap the
context-specific logic, and then both defer to MidiView for MIDI-specific
operations.
Note that this also changes several action names in ardour.keys.in
2025-01-14 15:31:53 -07:00
Robin Gareus
3c43628344
Cont'd work on editor rulers (actions and style)
2025-01-10 02:12:02 +01:00
Robin Gareus
85b637878d
Add action to create arrangement markers
2025-01-08 04:31:15 +01:00
Robin Gareus
c4d5a6b873
Consolidate Ruler area setup, prepare for interactive buttons
2025-01-08 04:31:15 +01:00
Paul Davis
e206fd5863
share the full zoom button in EditingContexts
2025-01-07 17:11:08 -07:00
Paul Davis
bd9ab55fa0
move zoom in/out buttons to EditingContext and use on the pianoroll
2025-01-07 12:59:13 -07:00
Robin Gareus
472fa58afe
Use dropdown instead of editor sidebar notebook tabs
2025-01-06 22:53:54 +01:00
Paul Davis
0a40b50b86
refactor zoom focus handling so that all EditingContexts can use the same code
2024-12-29 11:24:16 -07:00
Paul Davis
c98a36be0f
switch mouse button and motion handling in MidiView to use Drag formalization
...
It appears that mouse handling in MidiRegionView (now moved into MidiView)
predated the full Drag formalization. This led to inconsistencies as parts of the Drag
formalization were adopted, including the use of motion events to start a drag (this
is incorrect in the current semantics of a Drag).
This commits removes all/most of the special purpose drag handling machinery in MidiView
and uses Drags instead
2024-12-27 14:13:02 -07:00
Paul Davis
fb4fefe573
fix some issues with zoom focus after refactoring it into EditingContext
2024-12-12 11:53:15 -07:00
Paul Davis
a6ca9be006
refactor editor-y zooms into EditingContext
2024-12-12 11:53:15 -07:00
Robin Gareus
ecaeea94e5
Replace gettimeofday with monotonic time
...
let's be independent of NTP updates, daylight savings time
and syscalls.
2024-12-02 23:50:04 +01:00
Ben Loftis
983236f348
implement focus_on_clock for each tabbable
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
ff95d81612
Reduce reliance on boost - the easy part
...
* boost::unordered_map -> std::unordered_map
* BOOST_STATIC_ASSERT/static_assert
* BOOST_FOREACH -> for
* boost::tuple -> std::tuple/g
* boost::math::isnormal -> std::isnormal
* boost::container::set -> std::set
* boost::none -> std::nullopt
* boost::optional -> std::optional
2024-10-19 03:41:16 +02:00
Robin Gareus
2339b4dfdc
Replace PBD::Signals (2/2)
2024-10-18 20:41:08 +02:00
Paul Davis
01068fe306
further adventures in drag-refactoring do that LineDrag can be used in MidiCueEditor also
2024-10-17 07:44:32 -06:00
Paul Davis
e6c0fcf98f
refactor end-of-rb-selection for EditingContext
...
Whhat the main editor and the cue editor do with a click varies significantly
2024-10-17 07:44:32 -06:00
Paul Davis
4b8c51574d
refactor the "selectables" API to allow use within separate (e.g. cue) editors
2024-10-17 07:44:32 -06:00
Paul Davis
ca1583cdad
the great onceification (gui)
...
Replace use of #ifndef header guards with #pragma once
Modern C++, baby!
2024-10-17 07:44:31 -06:00
Paul Davis
56ce9c33c0
renaming: AutomationLineBase => AutomationLine, AutomationLine => EditorAutomationLine
2024-10-17 07:44:31 -06:00
Paul Davis
90c8726c6d
wideranging changes to get automation editing working in cue editor
2024-10-17 07:44:31 -06:00
Paul Davis
45e4b97a6f
move some methods from Editor to Editing context so that drawing controls work everywhere
2024-10-17 07:44:31 -06:00
Paul Davis
c4534cc9c4
undo history for MidiCueEditor
...
redo not operational yet for some unknown reason
2024-10-17 07:44:31 -06:00
Paul Davis
6081bd5e19
make CueEditor be a HistoryOwner and start on undo/redo refactor
2024-10-17 07:44:31 -06:00
Paul Davis
36eda47075
get temporal zoom workign in MidiCueEditor
...
and remove qite a bit of debug output
2024-10-17 07:44:30 -06:00
Paul Davis
48a6e8dfcf
basics of autoscroll for pianoroll (mostly shared with Editor)
...
More work to do moving/testing pianoroll autoscroll variant back into EditingContext
and sharing it with Editor.
2024-10-17 07:44:30 -06:00
Paul Davis
96ccb96b3b
redesign drag API to provide a bounding item, not just "trackview only"
...
This allows rubberband drags on both the main editor and the separate piano roll to wokr
correctly.
2024-10-17 07:44:30 -06:00
Paul Davis
14b95116e1
move various action registry stuff into EditingContext
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
f425a974d6
the continuing co-evolution of Editor,EditingContext & MidiCueEditor
2024-10-17 07:44:30 -06:00
Paul Davis
bde4768734
move a bunch of MIDI editing into EditingContext
2024-10-17 07:44:29 -06:00
Paul Davis
a2f04a3104
virtualize event handling methods for EditingContext
2024-10-17 07:44:29 -06:00
Paul Davis
10b48d2cc4
lock in some major steps for the midi cue/pianoroll editor
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
a550b6482f
start using the now-compilable MidiView
...
Nothing yet derives from this, but MIDI display items and drags
do use it.
2024-10-17 07:44:29 -06:00
Paul Davis
e3be2c781f
constification of EditingContext/{Public}Editor time+snap methods
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
e6c56b39d1
finish basic distribution of EditingContext methods
...
This compiles but is not expected to work yet
2024-10-17 07:44:29 -06:00
Paul Davis
4398fe931b
more movement of code and members from Editor => EditingContext
2024-10-17 07:44:29 -06:00
Paul Davis
b4e592a469
adjust relationship between VerboseCursor and Editor to use EditingContext
2024-10-17 07:44:29 -06:00
Paul Davis
2187c63bee
add stub for cue editor
2024-10-17 07:44:29 -06:00
Paul Davis
1bf2307137
more reorganization of implementations between Editor & EditingContext & PublicEditor
2024-10-17 07:44:29 -06:00
Paul Davis
7d5f575d61
finish inheritance work between EditingContext & Editor
...
this completes the initial phase of defining what an EditingContext must offer,
though the may expand or shrink as we being work on editing outside the Editor
2024-10-17 07:44:29 -06:00
Paul Davis
dee8e920e6
editing refactoring, the drag part
2024-10-17 07:44:29 -06:00
Paul Davis
089a9521d5
steps to an ecology of editing
2024-10-17 07:44:29 -06:00
Paul Davis
744b491162
PublicEditor IS-A MidiEditingContext
2024-10-17 07:44:28 -06:00
Paul Davis
722d74c3ef
skeleton work for a MidiEditingContext, incomplete
2024-10-17 07:44:28 -06:00