Commit Graph

290 Commits

Author SHA1 Message Date
Paul Davis 93e1e1c1f2 remove Cue, CD, Scene, Punch, Loop rulers, consolidate to just a pair (ranges, locations)
a menu allows choosing between all markers or 1 specific type, and all ranges or 1 specific type

more work required on menu structure and menu options/dialogs to specify the type of new location
and range marker creation
2024-05-16 22:58:55 -06:00
Robin Gareus c62fbc5c5b
Fix boundary condition first/last marker label length 2024-05-08 19:16:07 +02:00
Robin Gareus a0dc432e7a
Fix Marker label ellipsis for concurrent markers
* Sort markers: range-end before range-start
* When two marker have the same position, use distance
  to next marker not on the same position
2024-05-08 19:07:09 +02:00
Paul Davis 0b8cfdee40 display MIDI scene markers 2024-04-25 13:07:00 -06:00
Robin Gareus 7b1997ffda
Speed up Location changes #9568
Section Markers only need to be updated when an actual
section-marker is modified OR flags change.

This also removes duplicate signal subscriptions and
caches sorted Location list when iterating over section markers.
2023-12-08 17:22:32 +01:00
Robin Gareus c162aa7aca
Consistently use context-menu button action
This fixes an issue where brining up a menu can directly activate an
action in the menu. Notably on macOS.

Nathan reports that this may also address #9515

Note: mac touchpads are not affected since right-click there is
effectively a "press and hold".
2023-10-31 20:16:23 +01:00
Paul Davis dd8f5c477f remove debug output 2023-10-02 16:52:34 -06:00
Robin Gareus a1fc671a23
Tweak marker rename dialog title 2023-10-02 03:45:21 +02:00
Ben Loftis d7345d7d4d
Remove marker 'Hide' item from context menu.
It is accessible in sidebar.
In the sidebar you can both Hide and Show, so less prone to error
2023-09-14 23:12:50 +02:00
Paul Davis 734a62101f remove use of Tempo::active() from GUI
This has not been accessible in the GUI since 7.0.
2023-09-11 10:26:54 -06:00
Robin Gareus 019a3a1976
Allow to select Arrangement sections
This also adds interaction with sections in the
Arrangement Ruler.

Note that selecting a range switches to the Range tool.
This is enforced because time-range selection is only meaningful
with tools that perform edit operations on the whole timeline.
2023-09-08 03:25:59 +02:00
Robin Gareus 80a813ff1c
Fix use-after-free when undoing marker creation
Create a marker by ctrl-click, hover over it and then ctrl+z
undo. This used to crash in Editor::get_preferred_edit_position()
gtk2_ardour/editor.cc:5179, checking for entered_marker->position()
2023-09-06 17:37:11 +02:00
Robin Gareus b5b4be96e3
Use "Arrangement" in GUI instead of Section (amend 2f6a0abf) 2023-08-31 16:12:50 +02:00
Robin Gareus 797c362500
Fix segfault when undoing marker deletion
find_location_markers() may return NULL.
This also consolidates code from acc55083e5
2023-08-30 20:46:20 +02:00
Robin Gareus aaff022fd2
Fix typo in dbda07f6b7 2023-08-30 19:40:19 +02:00
Robin Gareus dbda07f6b7
Update Markers when Location flags change
Since b66e12610 there is a dedicated Marker type for
Section/Arrangement so changing location flags may need to
update the Marker type.
2023-08-30 18:27:21 +02:00
Ben Loftis 54c713c794 remove another instance of time-domain icon 2023-08-29 23:02:05 -05:00
Ben Loftis acc55083e5 arrangement ruler: aesthetic changes 2023-08-29 23:02:05 -05:00
Ben Loftis b66e12610b arrangement ruler: create Section marker type, so we can customize it a bit 2023-08-29 23:02:05 -05:00
Ben Loftis 2e9432e281 amend 2f16: cue markers should be reparented to their own ruler lane 2023-08-29 23:02:05 -05:00
Robin Gareus c5d4a0c172
Amend previous commit (initial marker group) 2023-08-29 22:03:16 +02:00
Robin Gareus 2f16f87e4f
Do not re-parent ruler markers depending on ruler visibility
Previously CD-markers and Arrangement-markers were shown
in the default Maker ruler when CD or Arrangement ruler
were hidden.

This also fixes a bug that could result in marker-labels
being cut short. Editor::update_marker_labels calculates
overlap with other markes in the same group; but re-parenting
did not update the sorted_marker_lists[group] index.
2023-08-29 21:53:50 +02:00
Robin Gareus 24ae92ce1e
Consistently use Mark (not Range) for Arrangement markers
Otherwise changing the marker type will cause inconsistently
rendered marks
2023-08-29 17:00:24 +02:00
Robin Gareus a14f216f3e
Highligh ranges in arrangement ruler 2023-08-29 00:34:29 +02:00
Robin Gareus 2f6a0abf04
Use "Arrangement" in GUI instead of Section
Reserve Section for time-selection without track selection
2023-08-28 21:02:43 +02:00
Robin Gareus 9c984fc2ad
Add dedicated Section Ruler and UI for section boundary markers 2023-08-26 14:09:53 +02:00
Paul Davis 23c7c0b4fd no more beamed 1/8th note symbol in marker text
All locations use the same domain now, so it is redundant
2023-08-16 16:32:03 -06:00
Paul Davis d14a3b924e locations now follow session time domain, always (probably) (GUI edition) 2023-08-02 15:23:42 -06:00
Paul Davis 1f5a9c4444 correctly redraw marker lanes
Old code just redrew them at the same timeline position (which may
or may not be a different pixel position). They need to be updated
with the underlying position of the marker they represent
2023-08-02 14:11:06 -06:00
Paul Davis b8af596a92 update all marker positions after a tempo map change 2023-07-15 11:08:45 -06:00
Robin Gareus a5946ba2e2
Fix heap-use-after-free at exit
Deleting _track_canvas_viewport automatically destroys
any child Items. The LocationMarker's group was already destroyed
when ~ArdourMarker() runs and calls `delete group`.

So first delete the marker, then the canvas
2023-06-08 22:50:15 +02:00
Robin Gareus 3ef5b0881f
Expose Cut/Copy Section in Edit Menu
Also remove it from the context menu, since it fails
with edit-point = Mouse.
2023-05-18 03:45:14 +02:00
Robin Gareus dbebc0b7e0
Make Markers properly themable, use color-names
This simplifies code, and also immediately changes marker
colors when the theme is changed.
2023-05-18 01:26:35 +02:00
Robin Gareus cb78043adc
Indicate selection extents in time ruler 2023-05-17 01:53:40 +02:00
Paul Davis 38bb89c110 more functional tempo mapping
TempoMarker drag modifies tempo (and thus beat-time positions
and durations).

BBTRuler drag modifies the map but not positions/durations
2023-03-24 14:19:16 -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
Robin Gareus c44b40afd7
Indicate UTF8 literals - fixes glyph rendering with MSVC (2/2) 2023-01-16 21:41:22 +01:00
Alexandre Prokoudine 08c1b97e06 Rename some right-click menu items on rulers for clarity and consistency 2022-11-07 00:34:15 +03:00
Paul Davis 5d5c1ee9fc use TempoMapChange for editor tempo marker edits 2022-10-27 12:12:52 -06:00
Robin Gareus 39b85bd2d4 Commit TempoChange undo operation after map update
Tempo Map updates can change a region's position/length, in which case
region-automation may follow the region, and DiskReader:: playlist_ranges_moved
will save additional undo information.

These MementoCommand(s) need to be included in the undo operation.
2022-10-27 08:40:09 -06:00
Paul Davis 5d7b421a0b remove debug output 2022-10-21 07:55:24 -06:00
Paul Davis 45e21de209 implement and adopt new conventions for AudioClock use
The class now has two separate methods for setting a duration or a point
value. They MUST be used appropriately, because their behavior is different.

When ::set_duration() is used in timecode mode, an extent (inclusive-end
length) is shown rather than a length.

Some objects, such as the TimeInfoBox, now deliberately shown an inclusive end
for their "end" clock, but this not universally followed, pending more feedback
from users and investigating of conventions in other DAWs.
2022-10-07 16:24:56 -06: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 888d91d599 Add action to locate to loop start/end 2022-09-07 19:15:36 +02:00
Paul Davis a5b7290e3a fix fatal error/logic error in marker remove code introduced with BBT markers 2022-09-02 10:41:58 -06:00
Paul Davis fc6ad8ebd9 bbt markers: all the basics of dragging, editing, removing 2022-08-17 16:40:35 -06:00
Ben Loftis 85f640c31a ripple: prevent session/punch/loop markers moving during ripple-all
Locations::ripple() skips these markers when the ripple action is committed.

...but the editor moves the marker-items as a visual aid, before actually
  committing the changes to Locations()

...so the editor needs the same logic, to avoid visually inconsistent behavior
2022-07-19 12:33:33 -05:00
Robin Gareus 65956407bb
Fix initial display of markers that are glued to BeatTime 2022-06-28 02:55:53 +02:00
Paul Davis e2e6274956 libardour: change API of Session::request_locate() to include "force" argument (GUI edition) 2022-05-27 18:49:23 -06:00
Paul Davis 399a5b3f25 convert use of operator* for tim::line types with ::scale(ratio_t) (GUI edition) 2022-05-27 12:47:44 -06:00