Commit graph

753 commits

Author SHA1 Message Date
Paul Davis
456374c995 implement axis-limited dragging 2015-02-13 16:21:57 -05:00
Paul Davis
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
Paul Davis
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
Paul Davis
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
Paul Davis
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
Paul Davis
ef79d1c4d4 fix last cherry-pick 2015-02-09 14:46:20 -05:00
Paul Davis
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
Paul Davis
ec37c83507 fixup cherry-picked changes from Waves Tracks, and fix for Ardour 2015-02-05 20:26:02 -05:00
Paul Davis
7644533103 implement RangeMarkerBarDrag::abort
Conflicts:
	gtk2_ardour/editor_drag.cc
2015-02-05 19:34:31 -05:00
Paul Davis
e6752fb729 implement MarkerDrag::abort() 2015-02-05 19:33:31 -05:00
Paul Davis
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
Robin Gareus
47f8125b35 amend e3da18fd 2015-01-26 17:14:24 +01:00
Robin Gareus
e3da18fd2f fix copy/drag abort. 2015-01-24 20:40:07 +01:00
Paul Davis
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
Paul Davis
90c1e0ffd2 allow use of null pointer as a valid cursor (implies using cursor of parent window) 2015-01-23 15:19:36 -05:00
Paul Davis
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
David Robillard
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
David Robillard
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
Paul Davis
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
Paul Davis
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
Paul Davis
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
David Robillard
116722f182 Fix uninitialized value in note create drag. 2014-12-07 20:37:53 -05:00
David Robillard
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
David Robillard
ea5876b836 Remove dead code. 2014-11-25 02:11:44 -05:00
Paul Davis
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
David Robillard
57c1b6e261 Fix quantization and other time-related ops. 2014-11-22 21:49:42 -05:00
David Robillard
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
David Robillard
9d8bbf4b9a Remove unused variables. 2014-11-20 11:31:31 -05:00
David Robillard
adea8ab68f Fix mismatched note resize drag cursor and behaviour. 2014-11-18 02:53:27 -05:00
David Robillard
563f5c11a6 Support cut/copy/paste of MIDI notes and controllers at the same time. 2014-11-16 22:35:45 -05:00
David Robillard
d63161426f Add "maybe" rounding modes for rounding only if necessary. 2014-11-16 22:35:45 -05:00
David Robillard
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
David Robillard
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
David Robillard
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
David Robillard
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
Paul Davis
ba4d1cd1c1 remove "canvasvar_" from all functions related to obtaining values from ARDOUR_UI::config() 2014-10-21 22:58:58 -04:00
Paul Davis
b73f725676 remove mouse zoom mode; bind z to zoom-to-range 2014-10-21 12:47:53 -04:00
Paul Davis
9331aa69bd new code to support creating skip markers 2014-09-17 09:39:29 -04:00
Ben Loftis
0676cfc070 fix double-click-shows-region-properties in Ripple mode 2014-09-15 11:43:12 -05:00
Robin Gareus
70358639de Revert "cont'd work on automation-track headers (amend ba53af1c5)"
This reverts commit beb5e3e777.
2014-09-04 16:14:01 +02:00
Robin Gareus
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