Commit graph

502 commits

Author SHA1 Message Date
Ben Loftis
88e6995b14 when the mouse tool changes, smart mode should have no effect on clearing selections 2015-01-13 13:33:57 -06: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
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
David Robillard
486d47db0e Fix smart mode cursor on audio regions. 2014-12-30 12:50:15 -05:00
David Robillard
31641179f9 Fix potential pop of empty enter stack. 2014-12-28 16:06:44 -05:00
David Robillard
12a7f12b0b Context menu for applying edits to note selection. 2014-12-25 15:32:10 -05:00
David Robillard
fb5ea0ca92 Fix sticky snap mode/type selectors. 2014-12-24 15:11:25 -05:00
David Robillard
62355de33a Fix cursor update on nested entry.
For example, if you're in a note and something about the mode changes, it's the
underlying region context that needs to change.  So, seems we need a stack of
entry contexts to deal with this sort of thing.

Switching in/out of smart mode still doesn't update immediately because we
don't have the y-coordinate needed to update it.
2014-12-23 13:47:59 -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
David Robillard
341146a975 Remove mouse mode toggling. 2014-12-18 20:26:43 -05:00
David Robillard
66870ddf09 Restore snap when switching to/from internal. 2014-12-18 20:23:34 -05:00
Ben Loftis
7ab8a11fb5 Enforce internal/external selection exclusivity. 2014-12-18 20:22:48 -05:00
David Robillard
cebf191cba Make tools toggle-like by switching to last mode. 2014-12-18 20:21:05 -05:00
David Robillard
5fef655380 Remove internal edit mode and add "content" tool. 2014-12-18 20:21:01 -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
David Robillard
0f63ac06a4 Remove unused variables. 2014-12-17 18:41:23 -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
Ben Loftis
2bbef1f32e update_time_selection_display should work when in smart mode 2014-12-09 16:18:48 -06:00
David Robillard
9548b916e7 Don't switch to internal when switching to draw. 2014-12-07 23:59:07 -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
bbdad822cd Fix and simplify step_mouse_mode. 2014-12-07 19:04:33 -05:00
David Robillard
1b99e298e2 Make draw tool add points to track automation. 2014-12-07 00:26:00 -05:00
David Robillard
a65cd2a1b9 Make scroll work on MIDI regions when internal.
For some reason, grabbing the magic keyboard focus makes scroll stop working
regardless of what MRV::canvas_group_event() returns.  I can't figure out any
reason to grab the keyboard in this case anyway, so I just removed it.

Also simlify MRV event handling code in general.
2014-12-05 17:36:02 -05:00
Paul Davis
8e54baa65f working compilation for new color code 2014-12-05 09:01:55 -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
Robin Gareus
6b3a8915f3 add abort() to non-reached code
This cleans up a lot of false-positives in static analysis
and also helps compilers to optimize code paths in general.
(tagging the fatal stingstream operator as ‘noreturn’ is
far less trivial)
2014-11-14 11:30:08 +01:00
David Robillard
5d5d9cb9e2 Fix various sticky/broken cursor issues.
This still isn't quite right, but it's a lot less broken than before, at least.
2014-11-14 02:37:36 -05:00
Robin Gareus
4ed910748c don't show x-fade menu when right-clicking on frame handles
Fix crash with midi-regions (they have a frame-handle but no x-fade).
fixes 2nd part of #5992 (backtrace 20141021-B)

This is nicer in one way: When the cursor is "trim" the x-fade
context menu is no longer accessible.
And a bit worse: The x-fade context menu is only accessible on the
small fade-handles (boxes) and on the x-fade itself.
2014-10-28 16:43:45 +01: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
Robin Gareus
148c1f1768 fix stuck key-grab/scrolling.
Problem: mouse-scrolling over a MIDI region in internal edit mode
never released “magic widget focus” (mod keys and global scrolls after
that were ignored). -> added to leave_notify.

Also, the MouseModeChanged signal needs to be emitted when internal edit,
mode changes in order to trigger MidiRegionView::mouse_mode_changed(), 
which in turn releases the magic focus while still hovering over a MIDI
region.
2014-10-21 11:07:53 +02:00
Paul Davis
6a971e645d use new ARDOUR::Location signals in GUI
Conflicts:
	gtk2_ardour/editor_markers.cc
2014-09-19 23:06:26 -04:00
Paul Davis
0943a559e0 shift-drag on range marker bar creates skip ranges, for now 2014-09-17 10:59:19 -04:00
Paul Davis
261aa3258f escape should reset focus as well as abort drags/clear selection 2014-09-16 11:09:12 -04:00
Ben Loftis
1873bcfa9d More fixes for range-based automation editing.
-Remove redundant start_grab calls.
-Show gain curves in Range mode, so you can see the curves you are selecting
2014-08-06 14:43:40 -05:00
Ben Loftis
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
Ben Loftis
62cab525f0 (Mixbus profile only) tentatively remove the Zoom and Cut tools, to save space in the toolbar and reduce some highly redundant functions 2014-07-14 10:08:55 -05:00
Paul Davis
05bca82117 cut ops can start on automation tracks too 2014-07-08 21:36:05 -04:00
Paul Davis
542d1ce01c cut ops can start with the mouse pointer not over a region 2014-07-08 20:28:27 -04:00
Paul Davis
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
Paul Davis
936861f6ce Use Canvas::re_enter() after changing mouse mode so we get the right cursor no matter what item we're over; fix return value for button press in cut mode; never change selection in cut mode 2014-07-07 07:54:41 -04:00
Paul Davis
779fe6c082 add functionality for cut tool 2014-07-07 07:05:44 -04:00
Paul Davis
7ec397c019 add basics of Cut mouse mode, no functionality yet. Icon images are still required 2014-07-07 07:05:43 -04:00
Ben Loftis
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
Paul Davis
3c2c048f40 reinstate same logic, slightly differently implementedm, for choosing range/object mode when pointer is in smart mode and in a track but not in a region 2014-07-02 16:23:46 -04:00
Colin Fletcher
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
Paul Davis
b47c20783d (hopefully) fix smart-mode breakage of xfade operations
We needed to set the selected regionview from a click when clicking on xfade items, but I also removed duplicate logic for some similar items
2014-06-30 19:18:34 -04:00
Paul Davis
89f673a7a7 context click over a trim handle is semantically equivalent to a context click on the xfade 2014-06-30 13:58:46 -04:00