Commit graph

401 commits

Author SHA1 Message Date
Paul Davis
2f77f2bc69 removed no-longer-used Editor::track_canvas_motion()
Conflicts:
	gtk2_ardour/editor.h
2014-08-17 19:27:11 -04:00
Robin Gareus
a17616f1da move utility functions into a dedicated namespace
Conflicts:
	gtk2_ardour/about.cc
	gtk2_ardour/editor_ops.cc
2014-08-17 18:51:22 -04:00
Paul Davis
ad67a36d7d more work on cursor tracking state 2014-08-17 16:24:38 -04:00
Paul Davis
4d4851cffc a whole slew of changes related to centralizing and rationalizing cursor management.
Debugging output left in place to help address the reports that will come in as people test this more
2014-08-17 16:23:52 -04:00
Paul Davis
835e2fe109 add back click behaviour for canvas rulers, and also cursor enforcement 2014-08-17 15:09:10 -04:00
Paul Davis
525f2893f9 fix problem with calls to Editor::trackview_by_y_position() when using motion events. The coordinate passed in was in canvas space and the method expected trackview space
To handle any further issues like this, I generalized and added an optional argument specifying that the canvas=>trackview transform is required, thus
centralizing where this done.
2014-08-17 14:56:50 -04:00
Paul Davis
8c1e1d0a38 fix crash caused by click-on-region-name if name highlights are not in use - such a click is not a trim operation under those conditions 2014-08-17 14:56:02 -04:00
Robin Gareus
efeb662e7c unify Fade-Handle Cursors 2014-08-17 14:46:23 -04:00
Paul Davis
e8e3460665 more profound changes to canvas scrolling, in particular find appropriate ScrollGroup for Canvas::{window,canvas}_to_{canvas,window}()
Conflicts:
	gtk2_ardour/editor_mouse.cc
2014-08-17 13:43:52 -04:00
Paul Davis
f391837e1a remove utterly useless unused code 2014-08-17 13:38:55 -04:00
Paul Davis
3af66ff917 remove useless groups from timebar area, clarify scroll group naming in editor 2014-08-17 13:38:50 -04:00
Paul Davis
893452b388 remove timebar canvas and just use a single canvas instead. This is just part one - lots of minor fixes to be done
Conflicts:
	gtk2_ardour/editor.cc
2014-08-17 13:38:30 -04:00
Paul Davis
cb9453b475 different approach to independent scrolling, involving ArdourCanvas::ScrollGroup
The idea now is that a scroll group item can be added to the canvas which will causes its children to scroll in either or both
directions (horizontal or vertical). There are few complications: the position() of the ScrollGroup is ambiguous depending
on whether you want it with scroll taken into account or not, so Item::canvas_position() was added, which defaults to
the same value as Item::position() but is overridden by ScrollGroup to return the position independent of scrolling. This
method is used when translating between item/canvas/window coordinate systems.

Note that the basic idea is that we MOVE the scroll group when a scroll happens. This mirrors what happens in the GnomeCanvas,
where Nick Mainsbridge came up with a great idea that allowed unification of the time bar and track canvases.
2014-08-17 13:37:27 -04:00
Robin Gareus
ea9a5e45e6 prepare fade+trim cursors (cursor image still missing) 2014-08-16 17:59:05 -04:00
Robin Gareus
00dbbc6fdb fix fade+trim handle hover color 2014-08-16 17:58:43 -04:00
Robin Gareus
40ffd0600b towards region-trims preserving fade duration 2014-08-16 17:58:34 -04:00
Robin Gareus
4e55433457 update x-fade context-menu 2014-08-16 17:56:09 -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
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
a69bcbf502 [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:20:04 -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
c04081681c remove debug output 2014-03-13 08:43:07 -04:00
Paul Davis
95c214c923 fix up button selection operation so that fade drags work again 2014-03-13 08:39:14 -04:00
Paul Davis
36160b88cd fixes, hopefully, for canvas cursor misbehaviour near/in regionviews 2014-03-11 22:39:04 -04:00
Paul Davis
0ef3fedf9a fix up some logic that allowed hits (percussive note display) to be trimmed with the mouse, which was not intended 2014-03-07 11:22:49 -05:00
Paul Davis
7d17db09ac when in smart mode, context-click on a region item should behave as if in object mode.
Specifically, select the region before displaying the context menu
2014-03-06 10:40:31 -05:00
Paul Davis
5cbb60d339 fix display of time selection rect(s) when switching mouse modes 2014-02-26 10:50:51 -05: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
f5dbbe4ac6 ctrl-click when adding automation points no longer adds guard points 2014-02-25 11:59:02 -05:00
Paul Davis
156a5a0e5f add the with-guard-point distinction to region gain lines 2014-02-20 14:01:40 -05:00
Paul Davis
6e38ecc158 manually applied equivalent of 1d82f4ca07 in master (git could not apply successfully) 2014-02-19 23:37:46 -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
68af0fdc07 fix up visibility control for automation lines 2013-12-31 13:28:20 -05:00
Paul Davis
87c29025de just use show() and hide() to manage control point visibility in automation lines
No need for the wierd old set_visible()/property_draw() stuff that was a hangover from gnomecanvas.
2013-12-31 11:55:30 -05:00
Paul Davis
9fb3247350 rationalize color handling for fade in/out handles 2013-12-09 22:04:13 -05:00
Paul Davis
ea1ccb869a fix merge with master 2013-10-31 13:16:51 -04:00
Colin Fletcher
e7875954ca Edit tempo & meter markers on double-click. 2013-10-25 17:03:45 +01:00
Colin Fletcher
efd2e1776d Double-click on region pops up region properties. 2013-10-25 17:03:45 +01:00
Colin Fletcher
abb05680b4 Make double-click on marker pop up rename dialogue. 2013-10-25 17:03:45 +01:00
Colin Fletcher
89193dc40b Add a double-click handler for items in the editor window. 2013-10-25 17:03:45 +01: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
479e97dc59 some prep work for generally handling dbl-click on draggable objects 2013-06-21 15:18:54 -04:00
Paul Davis
f00b3b7f11 merge with master 2013-06-13 23:00:24 -04:00
Paul Davis
50e3e61881 when exiting internal edit mode because of a mouse button press on a non-MIDI region, _join_object_range_state is set to NONE, not OBJECT, which would block selection of the clicked-upon region. fix that, to prevent an assert()-driven crash when the drag ends and there are no regions selected 2013-06-10 18:28:32 -04:00
Colin Fletcher
97ec274512 Make mouse operations on grouped regions apply to pre-existing selection
On clicking on a region that is part of an active edit group with the
'selection' property enabled, its equivalent regions also become selected.
Thus, there's no need to reset the selection to the equivalent
regions when performing mouse drags on the region, and trim/fade in/fade
out/move/copy will always operate on the existing region selection if there
is one.

Fixes #5515.
2013-06-10 18:07:52 +01:00
Paul Davis
e2f0c5f91e merge resolution with master 2013-05-02 20:21:54 -04:00
Paul Davis
3973ce81b3 remove all of Gtk::Window::set_position (WIN_POS_MOUSE) for anything deriving from ArdourDialog or ArdourWindow; move the set_position() call into those classes' constructors, so that they are called before the windows are realized, and thus it actually works 2013-05-02 18:13:35 -04:00
Paul Davis
d14f43ccf2 fix operation of right-click on selected MIDI note to bring up the note editor. this is still not really right long term, but it is better than displaying the channel selector 2013-05-02 15:16:56 -04:00
Paul Davis
81485faa83 remove CMT code - has not been used for years, and will become irrelevant with VTL and cairocanvas 2013-05-02 12:21:41 -04:00
Paul Davis
ec102f94e1 various work waveview amplitude mgmt; fix playhead cursor drag from timebar click 2013-04-17 15:22:09 -04:00