Commit graph

300 commits

Author SHA1 Message Date
Robin Gareus
c71e0781c9
Allow the session range to be themed 2025-06-10 21:18:36 +02:00
Robin Gareus
e26edc93d6
Fix crash when changing DPI while a marker is selected
~LocationMarkers() emits CatchDeletion, which calls
Selection::remove(ArdourMarker*) which in turn calls
Editor::marker_selection_changed(), which can cause a
heap-use-after-free.

So we first need to clear the location_markers map,
before deleting the markers.
2025-04-16 04:53:26 +02: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
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
4b8c51574d refactor the "selectables" API to allow use within separate (e.g. cue) editors 2024-10-17 07:44:32 -06:00
Paul Davis
dee8e920e6 editing refactoring, the drag part 2024-10-17 07:44:29 -06: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
Ben Loftis
00305c070d scene markers are not cue markers (fix copy+paste error) 2024-05-28 08:41:23 -05:00
Paul Davis
2d5884ccb1 refactor methods to add a location/section marker so that there is only one method for this 2024-05-21 08:21:02 -06:00
Paul Davis
ac779b38b2 arrangement markers are named "section N" by default 2024-05-20 11:00:50 -06:00
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