Commit graph

1138 commits

Author SHA1 Message Date
Paul Davis
8d7b4f7991 fixes so that cursor changes inside a MidiRegionView work as intended
They already worked in the PianorollMidiView, because that hands off enter/leave events
to the parent EditingContext (a Pianoroll). But MidiRegionView and Editor were
not interacting in the same way, so leaving a note object would not cause the Editor
to do the right thing with the cursor.
2025-04-25 11:28:45 -06:00
Paul Davis
15c808c9f4 expand the dialog used for renaming location markers to allow scene editing
This has no visible effect for anything that is not livetrax (for now).
2025-04-07 17:46:01 -06:00
Paul Davis
04a8fb1eb6 add mostly-function play/loop/solo buttons to pianoroll
These need to be hidden when working on cues
2025-03-15 10:56:47 -06:00
Paul Davis
49d9701aaf cleanup a virtual method that is no longer relevant after the prior commit 2025-03-12 21:15:32 -06:00
Paul Davis
252be10a73 fix action group used for Editor/set-mouse-mode-object-range 2025-03-12 21:10:44 -06:00
Paul Davis
83d2adfd67 remove current_editing_context concept
All bindings, actions and members of an EditingContext are now per-EditingContext,
and have no impact on others (other than cursors).
2025-03-12 12:36:34 -06:00
Robin Gareus
f9e78dc128
Resize Videotimelime with DPI 2025-03-07 00:41:07 +01:00
Robin Gareus
7b9e9d7241
Resize rulers when DPI changes 2025-03-06 21:50:05 +01:00
Robin Gareus
b3ee25f812
Set remove-last-capture sensitivity 2025-03-01 23:27:23 +01:00
Robin Gareus
0358cec2fc
Add pianoroll to Editor bottom panel 2025-02-25 16:13:15 +01:00
Robin Gareus
000c25edcc
Update gtkmm -> ytkmm header location (omnibus commit) 2025-02-01 15:25:14 +01:00
Paul Davis
852ad9a7da move grid updating code and members into EditingContext 2025-01-29 17:40:57 -07:00
Paul Davis
ef6502d88d initial refactoring to prepare for grid lines in pianoroll 2025-01-29 17:40:57 -07:00
Robin Gareus
42e82fb590
Move to a two button themed editor sidebar selector 2025-01-28 22:52:00 +01:00
Robin Gareus
7035189346
Use meta-button instead of editor sidebar notebook tabs (again)
This reverts commit a0fd339f64
and db90906c7c.

and replaces it with three meta-buttons
2025-01-28 07:52:35 +01:00
Paul Davis
d8baa0b240 track entry to Editor so we can set the current editing context 2025-01-22 18:20:25 -07:00
Robin Gareus
db90906c7c
Remove notebook tab shrinking
Various tabs on the current editor-sidebar do not allow
shrinking (so that only tabs remain visible).

Double-click shrinking was also never implemented on other
page sidebars, and was not missed by any users there.
2025-01-22 19:18:35 +01:00
Robin Gareus
a0fd339f64
Revert "Use dropdown instead of editor sidebar notebook tabs"
This reverts commit 472fa58afe.
2025-01-22 19:18:35 +01:00
Paul Davis
ab39c26f68 a variety of changes to make timeline-region editing-in-pianoroll to start to work
This also removes the useless "new pianoroll window" menu option and action
2025-01-20 18:05:19 -07:00
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