13
0
Commit Graph

737 Commits

Author SHA1 Message Date
nick_m
aac167a19f "Lock" mode is now "Constrained", make snap absolute modifier configurable.
- user can abs/rel modifier key in prefs->user interaction
	  suggested for linux - absolute->alt ignore snap->alt-shift
	- Constrained mode works the same as button 2 drag (initial move
	  sets constraint axis).
2015-05-18 06:25:36 +10:00
nick_m
799e619690 Relative snap now always on - disabled with Tertiary modifier (shift) 2015-05-18 03:15:22 +10:00
nick_m
a0bd6975d2 Clean up drag modifiers.
Button 2 drag now is constrained to initial move axis, removing
	all modifiers from this op.
	Remove Jump after trim mode.
	TrimDrag now has:
		Primary for trim anchored to fade.
		Secondary for contents trim (as before)
		Primary & Tertiary for "non overlap" trim
	All drags have Tertiary for relative snap
2015-05-18 01:43:44 +10:00
nick_m
c359f881a1 Relative Snap -make it activated by the tertiary modifier during drag.
Disabled/enabled with the shift key. no config stuff at all now.
	Move existing (strange) trim feature to primary + tertiary modifiers.
2015-05-17 23:47:01 +10:00
nick_m
91a34c596d Relative snap - support magnetic mode (hackishly for now) 2015-05-17 04:26:05 +10:00
nick_m
bbafb8f137 Cleanup relative snap code. 2015-05-17 00:23:25 +10:00
nick_m
6831d8a5aa Fix typo. 2015-05-16 06:10:02 +10:00
nick_m
c8303c8b7e Revert incorrect region_length() definition. 2015-05-16 04:50:37 +10:00
nick_m
68a8330afc Relative snap 2015-05-16 04:15:52 +10:00
0acdb8b74a remove a dead variable initialization. 2015-03-29 15:23:27 +02:00
57e227fd52 it would have been too much of a good thing. 2015-03-27 20:58:41 +01:00
9242ca7a64 dropzone: honor AutoConnectMaster. 2015-03-27 19:22:21 +01:00
1fffbb554f fix some DnD thinko & edgecases.
* Handle large (delta > 1) movements into the DZ
which are not due to invalid-drop positions, but
caused by laggy GUI or rapid user movements.

* ignore busses when moving out of the DZ.
2015-03-27 16:23:01 +01:00
a1258750ce fix a few -Wsign-compare 2015-03-27 00:50:27 +01:00
70e739b29a Another DnD fix. fix move onto (but not over) busses. 2015-03-27 00:37:47 +01:00
1dfee48139 Heuraka! Nightmarish rework of DnD code.
Allow to drag multiple regions from different tracks
to/from the dropzone.

Busses & Automation-lanes are ignored, as are
hidden tracks.

Any region may serve as mouse drag anchor.

fixes #6172 and #6176
2015-03-26 23:33:13 +01:00
502361c001 DnD: query mouse y-pos only once. 2015-03-26 23:30:18 +01:00
a53bd72697 remove crufty variable 2015-03-25 17:21:13 -05:00
7b1d21128b fix dropzone region ordering 2015-03-25 22:06:05 +01:00
3c55eb1e39 DnD, only use track relationship
Ignore any routes or automation lanes during
region y-axis distance calculation.
2015-03-25 17:15:32 +01:00
a9b2f97395 jot down some thoughts about drop-zone dragging. 2015-03-25 15:57:16 +01:00
b90c38639a fix drags crossing automation lanes. 2015-03-25 14:43:11 +01:00
nick_m
1580c6d635 Fix some strings incorrectly marked for translation.
My apologies to translators.
2015-03-25 23:31:23 +11:00
f851a0bf3a two more drop zone checks
see also 6cfb6ef
2015-03-25 13:05:24 +01:00
6cfb6ef665 fix drop-zone drops
There is no special ‘-1’ indicator any more.
i->time_axis_view is unbound to allow relative
positioning when dragging multiple regions.
2015-03-25 12:11:49 +01:00
b637c2223f Major rework of DnD.
Allow dragging multiple regions from multiple
tracks across any number of hidden tracks and 
automation lanes.

fixes #6176 and #6172
2015-03-25 01:48:29 +01:00
92ba2d5780 partial fix for Canvas Region DnD & comments
Fixes #6172 and #6176 for single region drags.

Further work is needed if multiple regions on different tracks are dragged over hidden tracks
(see inline comment).
2015-03-24 15:25:39 +01:00
a5db1d588e Fix dragging regions to/from drop zone (#6137).
The previous code assumed that dragging up from the drop zone into the last
track is always valid.  This is not true when the type of the dragged region(s)
do not match that route, which resulted in a crash and/or bizarre behaviour.

This took entirely too long to figure out, there are some real nightmares in
the region drag code...
2015-03-15 03:45:26 -04:00
80bb72bbe2 fix drag-motion over TAV w/o view() 2015-03-08 03:42:33 +01:00
3f8583f8d6 stop dragged regions moving to the dropzone during autoscrolling towards the top track 2015-02-18 12:27:11 -05:00
dd8f2cfe18 fixes for non-overlapping fade in/out even in regions not at zero 2015-02-16 16:27:50 -05:00
236f549caa insanely complex fixes for dragging to and from the drop zone.
This probably breaks some of ardour's functionality (e.g. layered mode), but seems to
be either just right or very close to it for tracks

Conflicts:
	gtk2_ardour/editor_routes.cc
2015-02-13 17:00:30 -05:00
8304471062 fix up recent cherry-picks from waves' tracks 2015-02-13 16:42:05 -05:00
6f98f91f18 prevent fade in/fade out on audio regions from overlapping each other 2015-02-13 16:22:08 -05:00
456374c995 implement axis-limited dragging 2015-02-13 16:21:57 -05:00
994dff91a2 detect if drags appear to be vertical or horizontal as we cross the move threshold
Conflicts:
	gtk2_ardour/editor_drag.cc
	gtk2_ardour/editor_drag.h
2015-02-13 16:21:37 -05:00
eb45b3baaa fix behaviour of region-copy-drag when using the dropzone.
The copied regions all had a null playlist pointer, so they all ended up on
the same (new) track
2015-02-13 16:19:06 -05:00
78d76c197e allow normal right trimming even if the start of a range is at zero
Conflicts:
	gtk2_ardour/editor_drag.cc
2015-02-13 16:18:24 -05:00
bc2271b43e After dragging from multiple tracks to the dropzone, create the right number of new tracks.
This does not address the visual flattening that occurs before the drop
is complete. Doing that is complex and there is no immediate solution
visible. The result after the drop is complete is correct, however.
2015-02-13 16:17:27 -05:00
ef79d1c4d4 fix last cherry-pick 2015-02-09 14:46:20 -05:00
abcd70c1d2 After dragging from multiple tracks to the dropzone, create the right number of new tracks.
This does not address the visual flattening that occurs before the drop
is complete. Doing that is complex and there is no immediate solution
visible. The result after the drop is complete is correct, however.

Conflicts:
	gtk2_ardour/editor_drag.cc
2015-02-09 11:03:03 -05:00
ec37c83507 fixup cherry-picked changes from Waves Tracks, and fix for Ardour 2015-02-05 20:26:02 -05:00
7644533103 implement RangeMarkerBarDrag::abort
Conflicts:
	gtk2_ardour/editor_drag.cc
2015-02-05 19:34:31 -05:00
e6752fb729 implement MarkerDrag::abort() 2015-02-05 19:33:31 -05:00
7ffc06b08d fix issue with region dragging while mouse pointer is in rulers/marker lanes 2015-02-05 17:42:46 -05:00
nick_m
ff13ac8b4f Clean up Session's _current_trans when aborting a drag. 2015-02-05 23:32:57 +11:00
nick_m
f9b2587458 Make redo action insensitive after new command.
Don't erroneously send first_move more than once after autoscroll drag.
2015-02-05 19:57:56 +11:00
47f8125b35 amend e3da18fd 2015-01-26 17:14:24 +01:00
e3da18fd2f fix copy/drag abort. 2015-01-24 20:40:07 +01:00
22435bb53d make MouseCursors invalid cursor API be static; use to initialize default cursor value in Drag API; use C API to set canvas cursor 2015-01-24 12:26:58 -05:00
90c1e0ffd2 allow use of null pointer as a valid cursor (implies using cursor of parent window) 2015-01-23 15:19:36 -05:00
fe08965d91 fix indentation from prior commit 2015-01-23 13:45:21 -05:00
GZharun
6976a78100 [Summary] Fixed bug 45163: Trim range from right corner of timeline leads Tracks to crash
[Details] Crash was provoked because of an attempt to add commands to the session reversible command, but when autoscroll started and trim began with autoscroll the session reversible command was not created for for Trim Drag.
2015-01-23 13:43:52 -05:00
nick_m
ae7b978b0b Fixes for when rubberbanding_snaps_to_grid config setting is off.
The initial point and the ultimately selected items were always following
the snap settings. Also the VCC was displaying incorrectly on button press.
2015-01-20 04:49:44 +11:00
nick_m
ade1c4923c Fix note resize double undo bug.
Newly drawn notes are selected.
Clear midi note selection on Selection::set_state().
2015-01-17 04:55:05 +11:00
d39d4c1c11 Fix automation range drag and implement for MIDI.
Range select rect sticks around now after switching to the draw tool, but
disappears if a note selection is made.  Not sure if draw is really the most
appropriate tool here (particularly if we ever implement actual pencil-like
drawing); edit contents seems more appropriate but that would probably cause
more selection issues, so here we are.
2015-01-13 23:30:37 -05:00
nick_m
44203ce955 Fix AutomationTrackItem rubberband click thinking it was unhandled.
Fix several other cases where a single mouse click could cause several
(not nested) selection ops.
Fix missing selection memento for midi notes and midi commands.
Rename some variables.
Fix random style issues.
2015-01-11 04:07:31 +11:00
2a251b4570 MusicalTime => Beats. 2015-01-07 00:12:07 -05:00
nick_m
a795892492 Separate selection operations into their own temporary history mechanism.
The user can now replay *all* earlier selection operations until the next
session undo/redo command, or the completion of a new operation.
Nothing relating to selection ops is stored, and selection operation history
is begun on first idle.

Selection operation history is fundamentally different from the history of
operations which act on a selection in terms of both their viewport and the
amount of information required to replay them.
WRT undo, the user of a selection op doesn't care about the viewport state
at the beginning of an op, but rather that at the end of the previous one.
2015-01-02 08:01:12 -05:00
64fa63212f move all (G)UI related configuration parameters into UIConfiguration, not RCConfiguration 2014-12-22 13:39:46 -05:00
David Robillard
670938c8c4 Fix various cursor problems.
Add a new scoped cursor system that makes it much harder to screw up and end up
with stick cursors and so on.
2014-12-20 01:13:25 -05:00
nick_m
9af9e17adc Add editor selection state to session history via a SelectionMemento, which
combines selection related editor properties with the current editor selection.

The related editor properties are:
mouse mode,
zoom setting,
left frame of the canvas,
y origin of the canvas.

Selection state now includes region views (storing the underlying region id)
and time.

This patch also fixes a region mute undo bug.
2014-12-18 11:03:10 -05:00
56ca52651e fix up requested color names everywhere.
Thank <deity> for emacs ... space-uncamelcase-word-at-point FTW
2014-12-14 16:15:38 -05:00
48a7a11974 initial pass to replace all UIConfiguration::get_XXXXXX() calls with UIConfiguration::color(name).
IMPORTANT: names have not been downcased and spaced yet, so many colors are not found
2014-12-14 12:27:07 -05:00
116722f182 Fix uninitialized value in note create drag. 2014-12-07 20:37:53 -05:00
603748d68a Unify gain and draw tools.
There might be a few special cases lingering around from attempts at magic tool
business, but this seems to work fine as far as I can tell.
2014-12-07 20:37:46 -05:00
ea5876b836 Remove dead code. 2014-11-25 02:11:44 -05:00
d953f1ce0e when dragging on the canvas, use x,y pointer coordinates to decide if motion has occured.
Using _last_pointer_frame breaks when dragging to the left of the canvas, because we clamp
the value of the frame to >= 0. Motion would step once the pointer crossed the left edge
of the canvas because the frame value would always be zero.

This is not a problem when using the pointer x,y values which end up appropriately negative
under all conditions.
2014-11-24 21:59:29 +02:00
57c1b6e261 Fix quantization and other time-related ops. 2014-11-22 21:49:42 -05:00
c1cfa12d6e Wrap MusicalTime in a class.
This lets us get a more explicit handle on time conversions, and is the main
step towards using actual beat:tick time and getting away from floating point
precision problems.
2014-11-22 04:05:42 -05:00
9d8bbf4b9a Remove unused variables. 2014-11-20 11:31:31 -05:00
adea8ab68f Fix mismatched note resize drag cursor and behaviour. 2014-11-18 02:53:27 -05:00
563f5c11a6 Support cut/copy/paste of MIDI notes and controllers at the same time. 2014-11-16 22:35:45 -05:00
d63161426f Add "maybe" rounding modes for rounding only if necessary. 2014-11-16 22:35:45 -05:00
fd9ccc7058 Use an enum for RoundMode instead of magic numbers.
No functional changes in this one (for easier auditing), but towards having
round up/down only if necessary modes, rather than kludging around that
situation with a double round as we do currently.
2014-11-16 22:35:45 -05:00
89a1980818 Only create MIDI regions on click when in draw mode.
It was much too easy to accidentally create MIDI regions in object mode.  If
the user isn't in draw mode anyway, then even after creating a region, they
can't put notes in it, so I don't think we've lost any discoverability here.
2014-11-15 02:03:40 -05:00
14e53b89c7 Fix wonky note length when create-dragging notes backwards.
Specifically, when pivoting from forwards to backwards (around the drag start
point), the note length was too long.  Setting both the start and end x
coordinates of the rect every time to the right value does the right thing.
2014-11-14 00:33:05 -05:00
589cc3162b Fix crash when deleting overlapped regions.
Use RegionSelection for MIDI regions as well, since the old dumb stub didn't do
some things correctly.  There's probably no reason to have a separate class for
this at all, and some good ones for putting all regions in the same selection,
so we should probably do that.  For now they are still separate in the
selection but use the same base class.
2014-11-13 21:32:08 -05:00
ba4d1cd1c1 remove "canvasvar_" from all functions related to obtaining values from ARDOUR_UI::config() 2014-10-21 22:58:58 -04:00
b73f725676 remove mouse zoom mode; bind z to zoom-to-range 2014-10-21 12:47:53 -04:00
9331aa69bd new code to support creating skip markers 2014-09-17 09:39:29 -04:00
0676cfc070 fix double-click-shows-region-properties in Ripple mode 2014-09-15 11:43:12 -05:00
70358639de Revert "cont'd work on automation-track headers (amend ba53af1c5)"
This reverts commit beb5e3e777.
2014-09-04 16:14:01 +02:00
beb5e3e777 cont'd work on automation-track headers (amend ba53af1c5)
now that the separator line is at the top,
offset region-contents y0 by 1px.
2014-09-03 20:48:20 +02:00
16ca4e0f9a Initial steps towards usable range-based automation editing.
TODO:  needs undo. only works in top quarter of automation lane.  selection model feels weird sometimes.  needs to show gain curve when you are using Range tool
2014-08-05 15:42:06 -05:00
b19e1a7985 remove EditAtSelectedMarker for Mixbus, to match mb2. (also fix an existing thinko in the edit point selection actions) (oops: also fix previous track selection fix so that it pays attention to the selection property of the group) 2014-07-14 10:08:55 -05:00
bff786257e polish a few blemishes and add some comments 2014-07-09 14:45:20 -05:00
12699574ae fix range select so it picks up grouped tracks 2014-07-09 14:34:14 -05:00
d99b6f0662 call Canvas::re_enter() at the end of a RegionCutDrag so that entered_regionview *might* be set 2014-07-08 21:37:49 -04:00
f250d16487 cut cursor follows grid 2014-07-08 16:08:31 -04:00
67eaa62ee9 fix build after copy-n-paste/code change collision 2014-07-07 10:21:47 -04:00
d97199088b some code shuffling to make sure that cut mode always operates at the mouse location, with (maybe) the right regions 2014-07-07 10:13:26 -04:00
a34861c38e use an EditorCursor when dragging in cut mode to indicate cut position 2014-07-07 08:26:37 -04:00
779fe6c082 add functionality for cut tool 2014-07-07 07:05:44 -04:00
80d1631aa3 if a Range end is trimmed, in follow-edits mode, locate to the range end so it can be auditioned. (same as trimming a region end) 2014-07-03 12:56:33 -05:00
043b76569d fix the naming and behavior of always-play-range to match the button, which is follow-edits. when you select a range, the playhead should jump to the start of the range and begin to play the selection. BUT (unlike previous implementation) if the user wants to relocate the playhead, then that should be allowed. The user should always remain in charge of the playhead location. NOTE: your previous config setting will be invalidated. You must re-save a session to overwrite with the new config variable 2014-07-03 12:56:33 -05:00
960e5a3c7c Ripple mode: ripple all after start of first selected region
Ripple drags should affect all regions which start at or after the
beginning of the first selected region, not just those which start after
its end.
2014-07-01 20:43:34 +01:00
264c62eb26 Ripple mode: remove debug output
Remove std::cerr output, and tidy up a couple of comments.
2014-07-01 20:43:34 +01:00
e5e12acc56 Merge branch 'ripple-mode-cc' into cairocanvas
Fix up merge conflicts in
	gtk2_ardour/editor_mouse.cc
	gtk2_ardour/editor_ops.cc

Also fix up compile errors.
2014-07-01 19:10:47 +01:00
da65f3778c Fixes for ripple mode drag
Make undo of ripple mode dragging work a bit better, and hopefully prevent
rippled regions from jumping about when being dragged.
2014-07-01 18:46:13 +01:00
4e689d9496 use new TrackingText for verbose cursor 2014-06-26 15:10:24 -04:00
a3c378cf62 move utility functions into a dedicated namespace 2014-06-25 21:47:54 +02:00
0796ccfb65 use newly factored canvas in gtk2_ardour 2014-06-21 11:44:22 -04:00
280fc81e05 modifications to region drag implementation
(1) if we're dragging over the drop zone, then x-axis motion is irrelevant for threshold-of-move
(2) store original time axis view of a dragged region so that if we create a new track with the region drag, it can be the same height
2014-06-19 11:18:44 -04:00
c30bda5173 a set of inter-related subtle changes to get vertical autoscrolling to work, or at least work better. 2014-06-17 08:08:14 -04:00
f7844f4893 do most of the work related to adding new anchored trim cursors (but debugging/analysis continues) 2014-06-13 18:43:53 -04:00
50fea864db rationalize and coordinate handle of region (time axis view item) opacity.
There are still some bugs with this because of the waveview image cache - fixes coming soon.
2014-06-13 12:22:39 -04:00
eca6c9f998 remove ambiguous use of Rect (on OS X) 2014-06-10 11:00:15 -04:00
ce08ec0de0 substantial changes in color management, involving a reduction in the use of Gdk::Color and more consistent logic for region coloring.
Group tabs now also get the text drawn in an appropriately contrast-y color
2014-06-09 23:29:00 -04:00
9933a80dd4 allow a drag down over the drop zone to be "reversed" and the region moved back up into existing tracks 2014-06-09 10:55:37 -04:00
8487314069 introduce Drag::_trackview_only which indicates that all y-axis positions for the pointer during a drag should be relative to the top of the trackview group.
More or less all drags except for Cursor (playhead) and drags in the range marker bars have this true (which is the default value)
2014-06-08 11:26:32 -04:00
5285bb587f fix position where rubberband rect is drawn 2014-06-06 08:33:13 -04:00
eec24b6287 fix up drawing and selection process for range selections (caused by subtle change in semantics of TimeAxisView::covered_by_y_range()) 2014-06-05 17:06:36 -04:00
64701f3955 remove needlessly-added method 2014-06-05 15:22:26 -04:00
ad346dc638 reinstate a canvas group where we reparent regions while dragging, so that they are always on top.
I mistakenly removed this during the onecanvas changes.
2014-06-05 15:16:55 -04:00
8fa81c1436 merge onecanvas and cairocanvas branches, and manually resolve conflicts, including rounding in item_to_window() methods 2014-06-03 16:37:53 -04:00
e0533e9dd7 more profound changes to canvas scrolling, in particular find appropriate ScrollGroup for Canvas::{window,canvas}_to_{canvas,window}() 2014-06-03 16:13:12 -04:00
5696199daf remove timebar canvas and just use a single canvas instead. This is just part one - lots of minor fixes to be done 2014-06-03 16:10:27 -04:00
a551181842 remove incorrect calls to Editor::maybe_autoscroll() from specific Drag classes (autoscroll is handled by the Drag manager) 2014-06-03 16:10:27 -04:00
ee6c483d18 non-copy region drag now creates a new track when a region is dragged to the drop zone 2014-06-03 16:07:05 -04:00
7e36d4c9bb part one of allowing region drag to the bottom (drop-zone) rect of track canvas 2014-06-03 16:06:41 -04:00
ea3918ba2d disable snap fades to 'other' region (for now) 2014-06-01 00:40:07 +02:00
4843c5d5cf towards region-trims preserving fade duration 2014-05-31 03:53:59 +02:00
1e907cedc5 comment tweak 2014-05-19 14:00:36 -04:00
8fd69776ea adding a new track via copy-region-drag now works (and shares code with the non-copy case 2014-05-19 14:00:36 -04:00
00c7abe926 non-copy region drag now creates a new track when a region is dragged to the drop zone 2014-05-19 14:00:36 -04:00
a8c56ff927 part one of allowing region drag to the bottom (drop-zone) rect of track canvas 2014-05-19 14:00:36 -04:00
933da08c72 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-05-07 19:46:24 +01:00
d75c7151d4 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-05-07 19:46:24 +01:00
ce8e374cf8 Splice mode: fix comment typo 2014-05-07 19:46:24 +01:00
349f66f413 Fix region content drag direction
Fix <Control>+drag in bottom of region to move the region contents in the
expected direction.
2014-05-07 19:38:22 +01:00
9a35f73b9e 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-05-07 19:38:07 +01:00
56af57d682 shift-modifier during trim dragging causes region to jump to original position (anchored at start or end, depending on trim type) 2014-05-07 12:13:34 -04:00
4f7d94ea67 latest tweaks to autoscroll: symmetrical boundary on both sides, stop runaway scrolling, and more 2014-03-21 09:49:35 -04:00
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
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
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
0c283ba657 fix lack of range selection when moving vertically 2014-02-26 08:24:41 -05:00
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
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
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
a13511e901 required fix for cairocanvas branch, didn't make it into merge 2014-02-19 23:25:24 -05:00
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
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
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
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
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
b1d1473ddf change min dimension of rubberband rect to 2 pixels 2014-01-02 09:53:53 -05:00
c460bf527e enforce a minimum 5x5 pixel size for the rubber band rect 2014-01-02 09:44:15 -05:00
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
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
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
f8574fc39d 'gtk2_ardour' - Add namespaces + casting where necessary + general bits of 'correctness' to keep MSVC happy 2013-10-03 09:06:56 +01:00
7a30e63eaa fix merge conflicts with master 2013-09-14 16:42:40 -04:00
111d35c9c7 add methods to queue full MTC and SPP messages, now that they are synchronous 2013-08-08 19:31:10 -04:00
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
1ab61b8564 major redesign of MIDI port heirarchy and management (part 2) 2013-08-07 22:22:11 -04:00
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
525cb6b4a7 some sort-of-deep fixes to get autoscroll/vertical scroll to work properly for cairocanvas 2013-07-10 19:10:06 -04:00
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
d299e41a61 fix position of verbose cursor 2013-06-26 12:02:54 -04:00
8ee0671fd9 probable fix for a region drag that somehow ends up with no time axis view (track) under the mouse (e.g. during a track height reduction 2013-06-26 11:49:16 -04:00
479e97dc59 some prep work for generally handling dbl-click on draggable objects 2013-06-21 15:18:54 -04:00
b604dd2413 make MIDI rubber band selects use the correct canvas item so that event processing works 2013-04-25 16:05:21 -04:00
6f664c1f67 many pervasive changes primarily related to waveform drawing, particular content-dragging, colors, and more 2013-04-24 15:42:14 -04:00
ddd21c110c fix various event coordinate system problems with button events on the rulers 2013-04-18 15:14:48 -04:00
ec8d521e98 semi-fix xfade display, and reduce number of calls to Curve::get_vector() by a factor of two 2013-04-18 09:56:01 -04:00
fce1733808 fix playhead dragging from rulers 2013-04-17 15:29:03 -04:00
ec102f94e1 various work waveview amplitude mgmt; fix playhead cursor drag from timebar click 2013-04-17 15:22:09 -04:00
96eee9e7a1 change UIConfig to use accessor/setter methods like RCConfig so that ParameterChanged methods can actually be emitted; add variable (over a small range) background shading for all TimeAxisViewItems 2013-04-16 23:46:22 -04:00
7e19053b88 Fix dragging objects on the canvas and remove redundant canvas groups
Delivery of fake motion events to the editor needed the event coordinates to be
in canvas space, as they are with "real" events. Editor and other objects had
many redundant groups from timbyr's work on gnomecanvas to scroll by moving
groups. We don't need this anymore with cairo-canvas (though possibly a
stationay background group for the canvas might be useful again one day as in
the SAE logo. Its implementation would be fairly different though, since we
would have to explicitly move the group on every scroll, since nothing else
ever moves on scroll).

Also tweaks to text item placement, and switch TimeAxisViewItem from
name_pixbuf to name_text, since ArdourCanvas::Text is already "pixbuf optimized".
2013-04-15 13:50:05 -04:00
af4539f857 a few changes to fix region dragging, all related to coordinate system handling, which is now much simpler with the new canvas; more debugging output when asked for 2013-04-15 10:38:12 -04:00
83c6aee3b7 Merge branch 'cairocanvas' of git.ardour.org:ardour/ardour into cairocanvas 2013-04-12 21:47:02 -04:00
4e84bc3a39 changes to get cairocanvas branch to build on OS X, with its stupid nil and Rect macros, plus some const_cast<> and unused variable fixes that should really be in master but will have to wait till we rebase master 2013-04-12 21:46:44 -04:00
4e9108cd1e remove TimeAxisView::clip_to_viewport() and Editor::update_canvas_now() and Editor::flush_canvas() which should no longer be necessary with a sane canvas design 2013-04-12 18:01:44 -04:00
b05968fb4e change frames_per_pixel to samples_per_pixel 2013-04-12 11:31:50 -04:00
4258a34912 change all frame_to_pixel and pixel_to_frame to sample_to_pixel and pixel_to_sample 2013-04-12 11:15:45 -04:00
ecfd2a7455 remove all unit-based methods from (Public)Editor; rationalize Editor::event_frame() to clearly identify whether the passed-in GdkEvent has window units or canvas units (the latter will be true for all events that are handled by the canvas and then passed to Editor 2013-04-12 11:09:49 -04:00
f208593249 Merge branch 'cairocanvas' of git.ardour.org:ardour/ardour into cairocanvas 2013-04-11 22:54:22 -04:00
ee1f0520a8 many changes to get the cairo-canvas version much, much more functional. still problems with a lot of subtle and not-so-subtle issues 2013-04-11 20:19:22 -04:00
6ae4f10437 Merge branch 'master' into cairocanvas
Conflicts:
	gtk2_ardour/editor.h
	gtk2_ardour/editor_canvas.cc
	gtk2_ardour/wscript
2013-04-11 22:24:05 +02:00
66ee2c8e59 enable videotimeline by default 2013-04-11 19:49:48 +02:00
19bd641915 commit immediately post linking 2013-04-04 18:45:27 -04:00
aaea166135 initial commit of hand merging, plus getting "ancient" waf script to work correctly 2013-04-04 00:32:52 -04:00
78aa7a13fd use C++ std function for max() 2013-03-27 18:45:08 +01:00
b3fa4dd8f3 vtl: video sets session start/end markers. 2013-03-27 18:21:09 +01:00
b15e8da3fd vtl: one less compiler warning 2013-03-14 01:36:36 +01:00
0c3e840700 videotimline
squashed 694 commits from http://gareus.org/gitweb/?p=ardour3.git
2013-03-13 20:28:15 +01:00
022e590429 Fix crash when trimming MIDI region with automation.
This seems impossible, but it happens.  Reproduction instructions:

1) Click in an empty portion of MIDI track to create a region
2) Add a CC lane
3) Click some points into lane (perhaps unnecessary)
4) Switch lane to linear mode (perhaps unnecessary)
5) Attempt to extend region leftward (with draw tool, but probaby doesn't matter)
6) Boom

Note trimming still doesn't work in this case and something seems deeply broken, but at least it doesn't crash now.

git-svn-id: svn://localhost/ardour2/branches/3.0@13922 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-20 06:57:52 +00:00
6e0fc35806 fix problem with dragging an end range marker if the start of the range was near zero
git-svn-id: svn://localhost/ardour2/branches/3.0@13795 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-06 14:55:35 +00:00
4acd9285bf fix invalid casts in prev commit.
git-svn-id: svn://localhost/ardour2/branches/3.0@13775 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-04 17:54:55 +00:00
bb3690db58 merge Marcel Bonnet's patches for Free-BSD
(may need further cleanup:
 compare with timbyr's windows patch,
 verify fst/vsti + ALSA)

git-svn-id: svn://localhost/ardour2/branches/3.0@13774 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-04 17:36:52 +00:00
67265c6d90 various fixes for moving markers, fixes a crash reported by tim blechmann and also likely #5232 and #5241
git-svn-id: svn://localhost/ardour2/branches/3.0@13754 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-02 23:54:06 +00:00
30237aad7f fix push-drags of automation data - previously we did not resync the model with the view for the points that were pushed (i.e. not selected, but moved anyway)
git-svn-id: svn://localhost/ardour2/branches/3.0@13681 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-12-19 15:55:06 +00:00
Ben Loftis
b8a8abeb8f code cleanup; crossfade shape drawing is now more closely associated with the fade-in shape rather than a separate thing. could probably be consolidated into fewer functions, but this is an interim step for testing. Also remove the use-current-fade-shape option which is not meaningful in new model
git-svn-id: svn://localhost/ardour2/branches/3.0@13669 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-12-14 17:21:44 +00:00
9a4058be9d fix a couple of issues with range selection, caused by clicked_selection persisting across drag/click ops
git-svn-id: svn://localhost/ardour2/branches/3.0@13666 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-12-14 16:46:01 +00:00
40e9dae606 various fixes for "advanced" operations on range selections. ctrl-drags now add a new range selection, allowing discontiguous selections as in ardour2, shift-click extends an existing range selection to the clicked position, alt-drag on a range selection moves it, and to do a so-called "separation drag" now use ctrl-alt-drag (or ctrl-alt-click)
git-svn-id: svn://localhost/ardour2/branches/3.0@13660 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-12-13 19:39:36 +00:00
Ben Loftis
2292e33ee4 crossfade hack and slash. removed overlap checks, overlap mode, default length, fade_is_xfade, fade_is_short, and other leftovers from previous crossfade models. Draw crossfade drags in realtime so fade_line is no longer needed. remove code for hiding crossfades during a drag. moved crossfade rect to top layer so crossfade lines dont grab mouse focus. drag-trim-with-fixed-fade-anchor is partially implemented and needs discussion
git-svn-id: svn://localhost/ardour2/branches/3.0@13659 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-12-13 16:42:05 +00:00
459a943bb0 end drags on regions before doing front trim, so that fades get visually updated rather than skipped because dragging() still returned true
git-svn-id: svn://localhost/ardour2/branches/3.0@13657 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-12-13 15:54:50 +00:00
082461f108 prevent Primary-click or Shift-click from deselecting when clicking on a track "background"
git-svn-id: svn://localhost/ardour2/branches/3.0@13604 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-12-05 20:29:54 +00:00
Ben Loftis
613021bff1 tweak Auto Play behavior: dont auto-play a range selection if the auto-play option is on; but note that this is still possible if both auto-play and follow-edits is on
git-svn-id: svn://localhost/ardour2/branches/3.0@13562 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-28 17:03:39 +00:00
Ben Loftis
62c8963170 region selections and moves should have optional preroll when playhead follows edits
git-svn-id: svn://localhost/ardour2/branches/3.0@13552 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-26 23:07:21 +00:00
Ben Loftis
e63da83c53 tweak Smart Mode to be more like Mixbus. Smart mode is just a modifier on Object mode which provides Range selection in the top half of the waveform. probably lots of corner cases to clear up before its all over, but at least we can use Mixbus as a consistent target rather than making it all up again.
git-svn-id: svn://localhost/ardour2/branches/3.0@13551 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-26 22:43:10 +00:00
Ben Loftis
beb3ec2d7a Always Play Range is now Follow Edits, and is based on Mixbus implementation. Added menu item. Follow Edits button replaces Auto Play; removed the connector between play and play-range. Some Smart Mode changes came along for the ride but will be cleaned up shortly
git-svn-id: svn://localhost/ardour2/branches/3.0@13537 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-20 19:43:43 +00:00
7b57d47e25 grid/snap minimum selection length
git-svn-id: svn://localhost/ardour2/branches/3.0@13527 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-18 15:35:05 +00:00
1bff57131a substantive change to automation line dragging code to avoid O(N^4) behaviour. performance fixes are still required for realistically data-rich automation lines
git-svn-id: svn://localhost/ardour2/branches/3.0@13515 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-17 22:55:03 +00:00
98834c0532 remove a bunch of cerr output and/or convert to use error<<
git-svn-id: svn://localhost/ardour2/branches/3.0@13477 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-13 15:11:07 +00:00
43c850cdf3 cleaner version of previous commit's fix for AutomationRangeDrag y fraction computation
git-svn-id: svn://localhost/ardour2/branches/3.0@13013 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-10 15:58:09 +00:00
e89bdcd9eb provide some numerical data during automation trim (range) drags, and correct computation of y-fraction for such drags
git-svn-id: svn://localhost/ardour2/branches/3.0@13011 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-10 15:44:56 +00:00
cf49671ab4 add a comment to the previous change
git-svn-id: svn://localhost/ardour2/branches/3.0@13008 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-10 04:18:06 +00:00
65bb82ce82 don't spin on Session::timecode_transmission_suspended() if disconnected from JACK because it will never be re-enabled (fixes lockups when disconnected)
git-svn-id: svn://localhost/ardour2/branches/3.0@13007 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-10 04:05:48 +00:00
97d920593f drastic rethink of the relationship between remote control ID and route order keys. unless the user explicitly switches to UserOrdered, Route::_remote_control_id is an unallocated pointer, and Route::remote_control_id() simply returns a value based on the relevant order_key() value. Also, change the key used in the Route::order_keys std::map<> from a string to an enum, since there is no evidence that we are benefitting from the theoretical benefit of using a string. Generally tidy up allocation of order keys so that the master and monitor busses always get a "special" MixerSort key value, based on the MMC ID for master (already defined within Ardour), and all other tracks/busses start at zero. Syncing keys between editor and mixer will leave the MixerSort key for the master and monitor bus alone, reflecting the fact that we display these in their own distinct parts of the GUI and they are not orderable like other tracks or busses within the mixer window
git-svn-id: svn://localhost/ardour2/branches/3.0@12923 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-25 12:46:13 +00:00
Carl Hetherington
a8dd4ec805 Re-show all xfades that we hide during drags (#4933).
git-svn-id: svn://localhost/ardour2/branches/3.0@12729 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-15 15:01:35 +00:00
Carl Hetherington
57590aaca3 Make y position of MIDI note drags slightly better.
git-svn-id: svn://localhost/ardour2/branches/3.0@12707 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-13 18:01:29 +00:00
5573b6a049 fix some bugs with dragging patch/program changes around
git-svn-id: svn://localhost/ardour2/branches/3.0@12692 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-13 02:00:51 +00:00
Carl Hetherington
5049883d46 Make crossfade edge drags undoable.
git-svn-id: svn://localhost/ardour2/branches/3.0@12625 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-09 13:25:13 +00:00
Carl Hetherington
f840133768 Remove apparently erroneous commit_reversible_command.
git-svn-id: svn://localhost/ardour2/branches/3.0@12621 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-09 00:20:41 +00:00
Carl Hetherington
650f16620d Don't round conversions from frame to unit when setting up control points, as it will cause big inaccuracies when zoomed out.
git-svn-id: svn://localhost/ardour2/branches/3.0@12503 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-31 17:07:02 +00:00
Carl Hetherington
0b21004252 Prevent x movement of the end points of region gain
lines (should fix #4680).


git-svn-id: svn://localhost/ardour2/branches/3.0@12461 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-27 21:02:36 +00:00
Carl Hetherington
f722858e43 Patch from tophatdave to improve display of timestretch in
stacked layers mode (#4379).


git-svn-id: svn://localhost/ardour2/branches/3.0@12460 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-27 20:07:13 +00:00
7628316335 implement undo/redo for xfade trimmin
git-svn-id: svn://localhost/ardour2/branches/3.0@12242 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-10 18:36:05 +00:00
da7215e1ad if an xfade involves only 2 regions, clamp its length to the overlap between them
git-svn-id: svn://localhost/ardour2/branches/3.0@12238 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-10 12:14:26 +00:00
bed955b409 fix dragging of end xfades
git-svn-id: svn://localhost/ardour2/branches/3.0@12237 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-10 02:50:59 +00:00
e3a9576aed basic xfade dragging
git-svn-id: svn://localhost/ardour2/branches/3.0@12236 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-10 00:46:22 +00:00
25655e1a6d skeleton for crossfade edge dragging
git-svn-id: svn://localhost/ardour2/branches/3.0@12235 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-09 23:04:18 +00:00
18b18a45a5 hide xfades while dragging region(s)
git-svn-id: svn://localhost/ardour2/branches/3.0@12202 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-07 22:02:17 +00:00
4235e9a1a2 a variety of mostly unused parameter errors from OS X Lion's compiler
git-svn-id: svn://localhost/ardour2/branches/3.0@12148 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-02 20:29:46 +00:00
ec1ef5d6b5 remove the apparently unnecessary "ui_bind()" macro from entire source base
git-svn-id: svn://localhost/ardour2/branches/3.0@12088 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-25 12:58:19 +00:00
Carl Hetherington
8a98f466f9 Minor simplification.
git-svn-id: svn://localhost/ardour2/branches/3.0@12059 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-23 00:35:38 +00:00
Carl Hetherington
ca96b9afe8 Remove some unused code.
git-svn-id: svn://localhost/ardour2/branches/3.0@12052 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-21 23:54:20 +00:00
Carl Hetherington
a2897ecef6 Fairly major change to the way in which crossfades are handled;
they are now done with region fades, rather than separate objects.
After this commit, Ardour will try to convert your session files
to the new crossfade format, but will make a backup in your
session folder first.

If you have works in progress using Ardour 3 it is
***STRONGLY RECOMMENDED*** that you back up session files before
updating to this commit.


git-svn-id: svn://localhost/ardour2/branches/3.0@11986 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-16 16:32:22 +00:00
Carl Hetherington
64425f77e7 Remove unused op parameter to temporal_zoom_by_frame. Add Zoom to Range option to range marker context menu (#4778).
git-svn-id: svn://localhost/ardour2/branches/3.0@11750 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-03-22 16:41:44 +00:00
Carl Hetherington
3120bae8b4 Don't leave internal edit mode when clicking on an automation region view (#4747).
git-svn-id: svn://localhost/ardour2/branches/3.0@11749 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-03-22 16:41:23 +00:00
Carl Hetherington
e9bf20021e Remove unused RegionGainDrag; fix logic in adding new
region gain points; remove unreached switch {} that may
have come from a mis-merge.


git-svn-id: svn://localhost/ardour2/branches/3.0@11631 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-03-09 20:47:40 +00:00
53cb1b6572 mouse draw mode can draw AND select (and trim) notes (but trim cursors don't appear yet)
git-svn-id: svn://localhost/ardour2/branches/3.0@11470 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-02-08 12:50:32 +00:00
e023de6da5 fix for crash while drag-creating a new MIDI note and dragging before the start of the region (from tophatdave
git-svn-id: svn://localhost/ardour2/branches/3.0@11396 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-31 01:59:39 +00:00
7629120cda many changes, large and small, related to smart mode editing, range/region selection, and behaviour of playhead when always-play-range is enabled. could be buggy, but probably in subtle (or even very subtle) ways rather than obvious
git-svn-id: svn://localhost/ardour2/branches/3.0@11394 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-30 22:53:22 +00:00
Carl Hetherington
664cec2135 Don't autoscroll right if we are moving left, and vice versa; should fix #4676.
git-svn-id: svn://localhost/ardour2/branches/3.0@11393 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-30 21:33:32 +00:00
33c61757fc promote Playlist::RegionList to ARDOUR::RegionList; fix timefx on multiple regions, even regions of mixed type. this mostly involved some trivial code changes but to make the code simpler and less error prone, the API switched away from using RegionSelection (list of regionviews that catches regionviews vanishing) and used RegionList (lists of regions, no semantics) instead.
git-svn-id: svn://localhost/ardour2/branches/3.0@11362 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-27 16:29:01 +00:00
f2e542afe7 in non-note-edit mouse object mode, single click on midi track creates a region if nothing is selected (because said click would then clear the selection, as before). this makes getting started with hand-edited MIDI regions massively easier
git-svn-id: svn://localhost/ardour2/branches/3.0@11350 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-25 19:39:20 +00:00
Carl Hetherington
ddd162bdb0 Make time stretch respect edit groups (#4615).
git-svn-id: svn://localhost/ardour2/branches/3.0@11334 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-24 17:04:15 +00:00
5de9a8f38b make mouse range mode do something interesting when in internal/note edit mode. not entirely finished because the usual modifiers to add/extend the selection don't work correctly. note that this works both on the scroomer (where the modifiers do work correctly) and in the track (where they do not)
git-svn-id: svn://localhost/ardour2/branches/3.0@11273 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-20 02:54:23 +00:00
f758ed0f41 more fixups of various things including cursors when note editing. in particular, don't needlessly reset the cursor during a drag. note insertion with ctrl pressed now only works if in MouseObject mode.
git-svn-id: svn://localhost/ardour2/branches/3.0@11270 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-19 22:23:28 +00:00
efab36a85e new mouse mode (Draw (notes)); switch into internal mode when draw is selected; notably improve use of dbl-click to enter and exist internal/note edit mode
git-svn-id: svn://localhost/ardour2/branches/3.0@11269 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-19 15:23:51 +00:00
c43f1d22c8 enter and exit node edit mode with dbl-click in any MIDI region
git-svn-id: svn://localhost/ardour2/branches/3.0@11268 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-19 00:14:58 +00:00
f1df7b125b snap tempo marker drags to the nearest beat
git-svn-id: svn://localhost/ardour2/branches/3.0@11183 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-07 15:10:31 +00:00
355183f1ab partially revert some of the recent work on tempo to reflect new understanding of the problem. behaviour is now believed to be totally correct but awaiting a bit more testing
git-svn-id: svn://localhost/ardour2/branches/3.0@11171 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-06 16:39:40 +00:00
bdb15f9422 fix some more crashes with tempo map manipulations
git-svn-id: svn://localhost/ardour2/branches/3.0@11170 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-05 22:36:58 +00:00
c80649d913 restore correct behaviour of undo/redo for tempo map drags
git-svn-id: svn://localhost/ardour2/branches/3.0@11162 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-04 20:40:06 +00:00
Carl Hetherington
dd53e7284a Set up layering_index immediately on an explicit layer, so that undo
works properly.  Stop the layer being a stateful property, as it is
always derived from layering_index, unambigiously, by relayer().


git-svn-id: svn://localhost/ardour2/branches/3.0@11120 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-30 20:05:48 +00:00
Carl Hetherington
42aea0b9fd Clean up comments to create_note_at, since it no longers snaps its length parameter. Move the 1 tick shortening out of the method for the same reason. Make sure that create drags make notes with a minimum length of 1 tick (#4600).
git-svn-id: svn://localhost/ardour2/branches/3.0@11116 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-30 13:41:16 +00:00
Carl Hetherington
b177514930 Revert internals of the last layering-related commit, and go back a slightly-cleaned-up version of how it was before. Remove all layering modes; only option now is add-is-higher. Move-add-higher could easily be re-added if anyone uses it.
git-svn-id: svn://localhost/ardour2/branches/3.0@11111 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-29 22:14:15 +00:00
09b0ae782c avoid crash on region drag end trying to access TimeAxisView::view() for TAV's that don't have one
git-svn-id: svn://localhost/ardour2/branches/3.0@11105 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-29 14:48:42 +00:00
a85e0b0a2e a huge set of changes to tempo+meter handling. testing feedback requested. the_CLA, you know who i mean :)
git-svn-id: svn://localhost/ardour2/branches/3.0@11103 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-28 21:02:31 +00:00
Carl Hetherington
9e785781f2 Fix another bug wrt visual appearance of layered regions in
overlaid mode.


git-svn-id: svn://localhost/ardour2/branches/3.0@11098 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-27 21:10:20 +00:00
Carl Hetherington
2db69318ce Fix up confusion with relayering after movement drags in
overlaid mode.


git-svn-id: svn://localhost/ardour2/branches/3.0@11092 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-27 18:33:49 +00:00
Carl Hetherington
6304261b98 Re-work layering in possibly debatable ways. Sketchy docs in doc/layering.
git-svn-id: svn://localhost/ardour2/branches/3.0@11088 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-27 01:42:49 +00:00
5d509146c8 followup to the previous tempo-dragging commit: use argument to Drag::aborted() to know if we moved; update the frame position of tempo map metrics when we remove a tempo mark (should fix visual glitches when dragging tempo)
git-svn-id: svn://localhost/ardour2/branches/3.0@11049 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-21 14:21:05 +00:00
5cd27a4a85 similar to treatment of meter markers, remove tempo marks from the tempo map while dragging, to avoid wierd side effects
git-svn-id: svn://localhost/ardour2/branches/3.0@11047 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-21 02:53:33 +00:00
b6d1fb0707 fix meter marker drags by not using a fake marker till first move, and swapping the grabbed item to the copy when we do
git-svn-id: svn://localhost/ardour2/branches/3.0@10999 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-13 19:43:41 +00:00
e0cf3b6354 more fun and games with meter and the tempo map: rename Meter::beats_per_bar() to Meter::divisions_per_bar() so that its clear(er) on what it is actually returning; use Meter::divisions_per_bar() in more (all?) places that need it; fix up dragging meter marks by removing the relevant meter section from the map while we drag; operator<< for some tempo-related objects
git-svn-id: svn://localhost/ardour2/branches/3.0@10995 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-13 02:46:36 +00:00
Carl Hetherington
692f857b83 Yet another bug in previous commit.
git-svn-id: svn://localhost/ardour2/branches/3.0@10974 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-11 14:07:24 +00:00
Carl Hetherington
b4d7120a58 Fix some bugs I introduced with the last commit.
git-svn-id: svn://localhost/ardour2/branches/3.0@10973 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-11 13:42:18 +00:00
Carl Hetherington
ab4e7cf472 Move note creation code into a Drag; fix snapping of note
starts when drag-created (part of #4505).


git-svn-id: svn://localhost/ardour2/branches/3.0@10972 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-11 12:54:54 +00:00
Carl Hetherington
f817155f20 Fix somewhat unlikely crash on doing add note; start drag to resize note; undo; finish drag to resize note.
git-svn-id: svn://localhost/ardour2/branches/3.0@10880 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-03 03:05:59 +00:00
Carl Hetherington
be951eca95 Remove code to zoom on up/down mouse movement when dragging
the playhead.


git-svn-id: svn://localhost/ardour2/branches/3.0@10786 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-11-23 01:17:41 +00:00
Carl Hetherington
ec90b0ceb0 Use a Drag class for midi note selection, so that it
gets autoscroll (#4474).


git-svn-id: svn://localhost/ardour2/branches/3.0@10650 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-11-16 20:11:33 +00:00
Carl Hetherington
2603cfd530 Re-show region views that we hid when dragging things on
hidden tracks (fixes the rest of #3493).


git-svn-id: svn://localhost/ardour2/branches/3.0@10571 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-11-13 19:51:30 +00:00
Carl Hetherington
ab024c7601 Fix snap of note drags when the region position is not itself snapped to the grid (#4322).
git-svn-id: svn://localhost/ardour2/branches/3.0@10288 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-10-22 23:18:54 +00:00
Carl Hetherington
b12c890b81 Fix check on dragging MIDI notes to a point before the region position.
git-svn-id: svn://localhost/ardour2/branches/3.0@10287 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-10-22 23:17:08 +00:00
Carl Hetherington
e549e8f82c Cope with drags of selections that include regions on hidden tracks (#3493).
git-svn-id: svn://localhost/ardour2/branches/3.0@10283 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-10-22 18:11:40 +00:00
0bc8832e20 Trim include tree.
git-svn-id: svn://localhost/ardour2/branches/3.0@10244 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-10-19 21:53:09 +00:00
0938a42440 fixes for 98% of all the warnings/errors reported by OS X gcc on tiger
git-svn-id: svn://localhost/ardour2/branches/3.0@10179 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-09-30 17:55:14 +00:00
f6951c92f0 attempt to fix deep confusion in GUI code about converting between musical and audio time (should have beneficial effects on #4257); change ghost note drawing when in MIDI note draw/add mode so that its start is aligned with the mouse cursor
git-svn-id: svn://localhost/ardour2/branches/3.0@9998 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-08-16 14:24:41 +00:00
dd55f88d30 when showing a note value during a drag, clamp first to the actual range. note that the canvas object can still be dragged out of the region (above/below) but fixing this requires some kind of fancy auto-scroll that i'm not up for implementing at this time
git-svn-id: svn://localhost/ardour2/branches/3.0@9983 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-08-12 14:41:11 +00:00
Carl Hetherington
7e8e8b4e72 Tie note y to mouse pointer position when dragging MIDI
notes (#4051).


git-svn-id: svn://localhost/ardour2/branches/3.0@9886 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-07-17 16:02:26 +00:00
Carl Hetherington
cd17e05e3a Fix some set-but-not-used variable warnings from gcc 4.6
git-svn-id: svn://localhost/ardour2/branches/3.0@9783 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-07-02 17:16:46 +00:00
d5e09076ca much ado about nothing when it comes to gain control
git-svn-id: svn://localhost/ardour2/branches/3.0@9748 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-06-19 23:02:55 +00:00
dabe57a486 alter playhead drag threshold for vertical zoom again
git-svn-id: svn://localhost/ardour2/branches/3.0@9716 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-06-12 22:10:13 +00:00
ca1a5ef876 increase threshold for drag-playhead-does-vertical-zoom
git-svn-id: svn://localhost/ardour2/branches/3.0@9713 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-06-12 22:05:34 +00:00
ed626628b5 Delete trailing whitespace
git-svn-id: svn://localhost/ardour2/branches/3.0@9656 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-06-01 17:00:29 +00:00
d4d5b30aeb remove unused and useless "src" argument for a number of Region property modifying methods
git-svn-id: svn://localhost/ardour2/branches/3.0@9632 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-05-30 13:54:44 +00:00
Carl Hetherington
fb39b47861 Zoom session when the mouse pointer is moved up and down during a playhead drag.
git-svn-id: svn://localhost/ardour2/branches/3.0@9586 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-05-25 16:38:49 +00:00
Carl Hetherington
71596b002e Fix corruption of follow playhead state on quit (#4048).
git-svn-id: svn://localhost/ardour2/branches/3.0@9542 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-05-17 15:28:12 +00:00
Carl Hetherington
4b848856eb Fix undo of timestretch (#3905).
git-svn-id: svn://localhost/ardour2/branches/3.0@9527 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-05-16 20:13:03 +00:00
Carl Hetherington
ac23288b5d Fix update of session range location on copy-dragging regions (#4038).
git-svn-id: svn://localhost/ardour2/branches/3.0@9504 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-05-12 21:29:27 +00:00
Carl Hetherington
4216d201fb Fix offset of verbose cursor when dragging fade-ins (#4010).
git-svn-id: svn://localhost/ardour2/branches/3.0@9473 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-05-04 14:56:24 +00:00
Carl Hetherington
55586be83a Prevent note drags from moving a note before the start of its region.
git-svn-id: svn://localhost/ardour2/branches/3.0@9463 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-05-03 00:45:54 +00:00
Carl Hetherington
988348185e Separate verbose cursor out into its own class and clean up the API. Fixes #4010.
git-svn-id: svn://localhost/ardour2/branches/3.0@9455 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-05-02 13:38:16 +00:00
Carl Hetherington
884de065bd When drawing MIDI regions with grid snap enabled, make the region extent 1 frame shy of the next grid boundary. In this way, a duplicate of the new region will land on a grid snap point.
git-svn-id: svn://localhost/ardour2/branches/3.0@9398 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-04-20 23:50:31 +00:00
Carl Hetherington
58bd627666 Fix prevention of region drags before time 0 (#3947).
git-svn-id: svn://localhost/ardour2/branches/3.0@9318 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-04-06 23:12:45 +00:00
Carl Hetherington
278286125c Remove unnecessary (and wrong) check for movement, as the parent does it (fixes #3850).
git-svn-id: svn://localhost/ardour2/branches/3.0@9145 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-03-14 19:25:41 +00:00
Carl Hetherington
82cb7c3280 Check movement threshold using the raw grab frame rather than the snapped one, which I think is right.
git-svn-id: svn://localhost/ardour2/branches/3.0@9144 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-03-14 19:25:18 +00:00
Carl Hetherington
3409f591db Comments.
git-svn-id: svn://localhost/ardour2/branches/3.0@9035 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-03-02 17:00:35 +00:00
Carl Hetherington
28d3dd69de Update session range on trimming regions.
git-svn-id: svn://localhost/ardour2/branches/3.0@9004 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-03-01 16:23:31 +00:00
Carl Hetherington
954bc598b8 Make a shift modifier do vertical zoom in zoom mode.
git-svn-id: svn://localhost/ardour2/branches/3.0@8897 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-02-17 22:36:01 +00:00
7a5b6a5031 patches from lincoln to speed up the regionlist and provide region removal (causes dangling shared ptrs to regions, fix to come
git-svn-id: svn://localhost/ardour2/branches/3.0@8845 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-02-14 21:49:43 +00:00