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
Paul Davis
550b38fb00
preliminary change to avoid unnecessary stuff happening when track drags do not reorder
2024-08-08 18:46:41 -06:00
Robin Gareus
460ecadc00
Significantly speed up building region bounday cache
2024-08-02 20:08:51 +02:00
Paul Davis
af5c99dd05
move definition of selection operations in to ARDOUR namespace
...
This is a rare commit that I think should be done for GUI and libs at the same time
2024-08-02 11:50:21 -06:00
Paul Davis
d4227b6ca4
add actions for region lock/unlock (from Mark Knoop < mark@opus11.net>
2024-07-31 22:38:45 -06:00
Paul Davis
0ec926668c
refine track drag API to control whether cursor can change on button press
2024-06-03 17:52:42 -06:00
Paul Davis
1dba8f9906
harmonize TrackDrag API with livetrax version
2024-05-29 10:16:10 -06:00
Paul Davis
2d8c641314
provide new actions to jump to prev/next location marker (no other markers)
2024-05-28 22:07:35 -06:00