Commit graph

423 commits

Author SHA1 Message Date
Paul Davis
ff09ef3f60 remove incorrect calls to Editor::maybe_autoscroll() from specific Drag classes (autoscroll is handled by the Drag manager) 2014-08-17 13:37:40 -04:00
Paul Davis
ce63f22d80 comment tweak 2014-08-17 13:32:47 -04:00
Paul Davis
a69f7a9282 adding a new track via copy-region-drag now works (and shares code with the non-copy case
Conflicts:
	gtk2_ardour/editor_drag.cc
2014-08-17 13:32:39 -04:00
Paul Davis
4078063b00 non-copy region drag now creates a new track when a region is dragged to the drop zone 2014-08-16 21:48:25 -04:00
Paul Davis
56762ecf3e part one of allowing region drag to the bottom (drop-zone) rect of track canvas 2014-08-16 21:48:12 -04:00
Robin Gareus
1c17431aa6 disable snap fades to 'other' region (for now) 2014-08-16 17:59:50 -04:00
Robin Gareus
40ffd0600b towards region-trims preserving fade duration 2014-08-16 17:58:34 -04:00
Paul Davis
12ce4dee36 comment tweak 2014-08-16 16:56:42 -04:00
Paul Davis
82c208b3e5 adding a new track via copy-region-drag now works (and shares code with the non-copy case 2014-08-16 16:56:37 -04:00
Paul Davis
6b1eaf1388 non-copy region drag now creates a new track when a region is dragged to the drop zone 2014-08-16 16:56:32 -04:00
Paul Davis
c6ac38d41e part one of allowing region drag to the bottom (drop-zone) rect of track canvas 2014-08-16 16:54:52 -04:00
Colin Fletcher
338ff210f9 Ripple mode: tidy up
Remove a load of debug output and dead code.
Move implementation of RegionRippleDrag::y_movement_allowed() out of
header into .cc file.
2014-08-16 16:36:08 -04:00
Colin Fletcher
80f04cc298 Ripple mode: basic implementation
Add a value for Ripple to EditMode enum.

Add Ripple edit mode to edit mode dropdown, by adding it to the
Editor::build_edit_mode_menu() helper function, and remove the old code that
added items to the (now unused) Editor::edit_mode_strings.

Add the regions that should be affected by the drag to RegionDrag::_views so
that the drag carries them along automatically.

Use a copy of the RegionList in Playlist::core_ripple(), since bad things
happen when iterating over regions and they get moved around in the list.

Handle rippling in removal of regions from playlist.

When dragging in ripple mode, exclude all regions that lie before the
original start position of the selected regions being dragged from
rippling: this is what Mixbus does.

Make editor dragging respect snap-to settings, by using the existing
compute_x_delta() function, which did almost the right thing. Move setting
of _last_frame_position out of that function so all ripple-dragged regions
can move.

Ripple when dragging from region list: even though Mixbus doesn't do this, it
seems like a good idea.

Prevent multi-track selection being dragged across tracks, by making
RegionMotionDrag::y_movement_allowed() virtual, and overriding it in
RegionRippleDrag to forbid dragging of selections containing regions on more
than one track to dofferent tracks in ripple mode.

Remember which TimeAxisView a ripple-mode drag that's allowed cross-track
drags started from, so that the effect of rippling regions after any region
that's dragged off that track can be undone.
2014-08-16 16:36:03 -04:00
Colin Fletcher
597b27a222 Splice mode: fix comment typo 2014-08-16 16:35:56 -04:00
Colin Fletcher
a7af42716f Fix region content drag direction
Fix <Control>+drag in bottom of region to move the region contents in the
expected direction.
2014-08-16 16:35:40 -04:00
Colin Fletcher
fca8443d4b Fix undo of layer-changing region drags
Move clear_changes() of the playlist on which a region has been dragged
before calling set_layer() on that playlist, so that undo of region drags
in layered mode undoes any layer changes too.

Should fix #5904
2014-08-16 16:35:34 -04:00
Paul Davis
83a6d2a4dc shift-modifier during trim dragging causes region to jump to original position (anchored at start or end, depending on trim type) 2014-08-16 16:35:28 -04:00
Grygorii Zharun
ce2a519afa [Summary] Merging from GIT
[Details] Starting point:
Mar 24 2014, 11:47 PM
Commit: 87184ab80d

Target point:
Commit: 59e6694405
Apr 16 2014, 4:01 PM

[git-p4: depot-paths = "//Abdaw/dev_main/tracks/": change = 453690]
2014-04-18 04:21:54 -05:00
Valeriy Kamyshniy
704c6e2c0a [P4/git history rebuild] further changes related to this codebase missing Ardour canvas autoscroll commits. Hopefully to be undone later by commits from a merge by Paul and Grygorii 2014-05-27 21:19:17 -04:00
Paul Davis
4f7d94ea67 latest tweaks to autoscroll: symmetrical boundary on both sides, stop runaway scrolling, and more 2014-03-21 09:49:35 -04:00
Paul Davis
9df3157dfc big rework of scrolling, horizontal part considered almost 100% done.
Many more changes than I would typically like in a single commit, but this was all very intertwined.
Vertical scrolling using track-stepping still to follow.
2014-03-20 13:29:45 -04:00
Paul Davis
279aefc60e fix error in height computation of MIDI region views (FUDGE!) use Rectangle::set_outline_all() and avoid the removed integer version of ::set_outline_what() 2014-03-11 07:39:25 -04:00
Paul Davis
c04285addf convert canvas_event_frame() and window_event_frame() to canvas_event_sample() and window_event_sample() to go along with the convention adopted in cairocanvas code re: frames+samples 2014-02-26 08:43:53 -05:00
Paul Davis
0c283ba657 fix lack of range selection when moving vertically 2014-02-26 08:24:41 -05:00
Paul Davis
15c13f1369 range selection drag ensures that selected tracks include all tracks within the vertical height spanned by the drag.
Older code looked at the track under the motion event coordinates. With rapid mouse motion, tracks could be "skipped" - no motion event
would be reported within their vertical coordinate range.
2014-02-25 21:55:25 -05:00
Paul Davis
61ab5e8967 click (no drag) on automation line now adds a new control point on the line (not fully checked for precision) 2014-02-25 12:01:13 -05:00
Paul Davis
46e86f6694 Revert "add a hack to deal with device discovery race, in which the devices were not actually known to be ready before the last update_surfaces() call (which is where binding between strips and routes occurs) ; add support for Mackie Control touch on/off messages"
This reverts commit 06a25ffd5695697db9869a19e46c2f93c6c17458.
2014-02-25 12:00:53 -05:00
Paul Davis
a13511e901 required fix for cairocanvas branch, didn't make it into merge 2014-02-19 23:25:24 -05:00
Paul Davis
5cf4a32da9 click (no drag) on automation line now adds a new control point on the line (not fully checked for precision) 2014-02-19 23:25:24 -05:00
Paul Davis
06e3b7da5d Revert "add a hack to deal with device discovery race, in which the devices were not actually known to be ready before the last update_surfaces() call (which is where binding between strips and routes occurs) ; add support for Mackie Control touch on/off messages"
This reverts commit 06a25ffd5695697db9869a19e46c2f93c6c17458.
2014-02-19 23:25:24 -05:00
Paul Davis
58a8d50bdc add a hack to deal with device discovery race, in which the devices were not actually known to be ready before the last update_surfaces() call (which is where binding between strips and routes occurs) ; add support for Mackie Control touch on/off messages 2014-02-19 23:25:24 -05:00
Paul Davis
d23c2499bf rationalize, consolidate and make work dbl-click editing for regions and markers, as part of the Drag model rather than discretely 2014-01-27 10:09:58 -05:00
Paul Davis
3020b224fa Merge windows+cc branch into cairocanvas branch. Not finished, need to now merge windows branch to get changes from there 2014-01-10 16:07:57 -05:00
Paul Davis
b1d1473ddf change min dimension of rubberband rect to 2 pixels 2014-01-02 09:53:53 -05:00
Paul Davis
c460bf527e enforce a minimum 5x5 pixel size for the rubber band rect 2014-01-02 09:44:15 -05:00
Paul Davis
85daa31ab5 all events propagate out of the canvas in canvas coordinates now, so revert changes in editor_drags.cc that worked around this not being the case 2013-10-31 16:43:35 -04:00
Paul Davis
b80ae88154 fix window/canvas coordinate confusion in drag code, apparently fixing up lots of things with just 1 line 2013-10-31 12:41:02 -04:00
Paul Davis
664e715a00 merge from master 2013-10-22 15:29:44 -04:00
nick_m
5b62e88fbf Unify editor / mixer ordering. 2013-10-21 00:19:43 +11:00
John Emmas
f8574fc39d 'gtk2_ardour' - Add namespaces + casting where necessary + general bits of 'correctness' to keep MSVC happy 2013-10-03 09:06:56 +01:00
Paul Davis
7a30e63eaa fix merge conflicts with master 2013-09-14 16:42:40 -04:00
Paul Davis
111d35c9c7 add methods to queue full MTC and SPP messages, now that they are synchronous 2013-08-08 19:31:10 -04:00
Robin Gareus
badb902bc0 fix rounding issue when dragging video with fractional fps 2013-08-08 15:26:41 -04:00
Michael Fisher
7d7d9a3fe7 Send a song position pointer with mmc and fullframe fake locating 2013-08-08 15:26:17 -04:00
Paul Davis
1ab61b8564 major redesign of MIDI port heirarchy and management (part 2) 2013-08-07 22:22:11 -04:00
Robin Gareus
00b694fd79 fix rounding issue when dragging video with fractional fps 2013-08-04 18:49:28 +02:00
Michael Fisher
79d134ca78 Send a song position pointer with mmc and fullframe fake locating 2013-07-29 20:05:10 +02:00
Paul Davis
525cb6b4a7 some sort-of-deep fixes to get autoscroll/vertical scroll to work properly for cairocanvas 2013-07-10 19:10:06 -04:00
Paul Davis
3091b5f1ad fix possible crash when aborting a region drag and there are time axis views without streamviews 2013-07-09 09:45:54 -04:00
Paul Davis
d299e41a61 fix position of verbose cursor 2013-06-26 12:02:54 -04:00