31b6b05125
Fix MIDI note cut/copy/paste.
2014-11-14 20:04:19 -05:00
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
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
cca7ddf046
fix vertical canvas scrolling
...
* properly account for hidden tracks
* allow to scroll to last track
2014-10-29 12:06:20 +01:00
b2a183d4b7
a few tweaks to zoom computations so that zoom-to-range works correctly
2014-10-21 14:48:45 -04:00
c2fc7f04a7
Don't select newly created regions after splitting selected regions (except on Mixbus)
...
I can't see a reason to select the newly-created regions after
splitting selected regions: I can't think of any case where you'd want
the next operation to apply to both the regions, and it makes it very
easy (in my experience) to trim/move/&c. both regions afterwards by
mistake.
However, this behaviour is desired for Mixbus, so make the selection of
regions after a split of selected regions dependent on
Profile->get_mixbus() for now.
2014-10-02 21:00:33 +01:00
44f71ce599
Text tweaks and typo fixes
2014-10-02 18:03:19 +01:00
f415e24514
do not stupidly try to save punch/loop/session ranges during clear_ranges op
2014-09-17 09:38:17 -04:00
8b98125ad3
fix various loop-initiation faults
2014-09-15 12:44:45 -05:00
017dcfea45
Make zoom-to-session include regions currently being recorded
2014-09-13 15:27:30 +01:00
4a00bdf04a
fundamentally change ArdourButton PangoLayout handling
...
This fixes issues where button text was set during static
initialization where the widget style was not yet available,
and a lot of related issues where the text was set
before style.
2014-09-06 00:41:56 +02:00
6dd114c3f1
fix Play Loop from range context menu
2014-09-03 09:40:22 -05:00
4718def3c4
update track-header width when removing track(s).
2014-08-31 22:54:43 +02:00
96171ebe83
several fixes to make processor selection and deletion feel right, for both mixer and editor-mixer strips
2014-07-24 22:49:47 -05:00
6bdc976462
Remove "implicit" selection for plugin deletion.
...
Allow deletions in the mixer strip to fall through to editor if nothing was selected.
2014-07-24 22:49:47 -05:00
61c66afd4c
Revert previous select-strips-under-mouse behavior
...
However, keep the path for deletions in the editor-mixer via _entered_mixer_strip
TODO: if nothing was deleted, assume the user was trying to delete something in the editor instead
Show selected plugins by a red border
TODO: more work on the selection model for plugins and mixer strips
2014-07-24 11:28:31 -05:00
05f3adaba3
Allow deletion of processors in editor_mixer_strip by pointing and pressing Delete
...
This had to be hacked because the editor_mixer strip is on the editor and doesnt respond to mixer keybindings.
Also force the gain intry to lose focus if the user leaves the mixer strip. this will probably solve some long-standing complaints. although perhaps a more elegant solution is possible.
2014-07-23 16:58:43 -05:00
b22e136887
Add some new zoom-to-selection actions, so zoom tool is less needed.
...
Reverse order of items in the zoom menus to match Ardour.
Consolidate the extra zoom math into a function; this fixes a problem in zoom-to-session.
2014-07-23 11:31:06 -05:00
b69870dfe6
add Editor::trackviews_height() convenience function to determine height of trackview area of canvas; use to help fix set_visible_track_count(); don't consider hidden tracks in that function; add "Selected" to that selector menu
2014-07-15 18:09:04 -04:00
d0bc4b55fa
scroll up/down by tracks uses top edge as "focal point"; fix some other nasty code details
2014-07-14 12:36:51 -04:00
8bc0ac7529
restore correct functioning of fit-tracks, which was mistakenly removed because of a failure to understand its complexities
2014-07-11 06:19:32 -04:00
07e0f785f8
add "fade range" operation, bound to alt-f at present by default
2014-07-10 08:17:22 -04:00
c1166c9f63
fix thinko with split selections. also ignore follow_edits when we are splitting, because the playlist freeze and the newly added regions cause the playhead to jump to unexpected locations
2014-07-08 15:00:19 -05:00
fcabd5d8ee
initial implementation of "bring all media into session folder". Incomplete but basically functional for audio files
2014-07-08 00:53:13 -04:00
db60bc86b8
now that track and region selections are mutually exclusive, you need a separate action to select-all-tracks and select-all-regions. also, preserve region selection during a split, iff we are working on a region selection: only add the newly created regions, dont change anything else in the selection; leave that in control of the user
2014-07-06 12:57:36 -05:00
0b38d65dd0
new approach to selections which will help rationalize Split and similar functions. Object and Track selections are now mutually exclusive. a split will happen at (a) selection->regions (b) the intersection of edit_point and selection->tracks or (c) the region under the mouse, IFF nothing else is selected.
2014-07-05 20:47:43 -05:00
62c3638a42
further rationalization of the editor. after a split, ardour was switching the tool to object mode. this is the only place were ardour switched the tool for the user. that has been removed. Delete operation should not depend on the mouse mode, but rather the existence of selections. this solves the problem where you have selected regions in smart mode, but cant delete them because the mouse is in the top half (fange mode) of a track
2014-07-05 18:27:38 -05:00
ba8898bd5f
add new regions created by split to selection after operation is complete
2014-07-03 19:43:35 -04:00
555a5d6348
lots of keybinding changes. added a new action to allow removing markers at the playhead location. numpad now allows you to access marks higher than 9. to locate to a marker, use the numpad decimal to start and end the operation - for example press .19. to locate to marker 19. also added alternate bindings for redo, delete, and several other alternates that will be needed in subsequent commits. tab is not working, using either Tab or nabla in the binding.in file
2014-07-03 17:50:14 -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
3dbf37eab7
simplify zooming, remove Editor::clamp_samples_per_pixel(), fix getting "stuck" at max and min zoom levels
2014-07-02 15:53:24 -04: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
83ae6beca5
Remove unused code
...
This code was changed to implement ripple mode, but meanwhile it was
removed altogether in cairocanvas. Remove it here too to simplify merging.
2014-07-01 18:38:13 +01:00
c52cb37bf2
suspend route redisplay for (rec-en, solo, mute and monitor) batch changes
2014-06-29 02:52:56 +02:00
4a7eb62bf8
use state Session::StateProtector
2014-06-28 22:02:20 +02:00
c706b1c4bb
replace old implementation of Editor::_ensure_time_axis_view_is_visible() with the guts of Editor::ensure_track_is_visible(), then remove the latter.
...
Also change all users of ensure_track_is_visible() to use _ensure_time_axis_view_is_visible()
2014-06-27 10:49:05 -04:00
a3c378cf62
move utility functions into a dedicated namespace
2014-06-25 21:47:54 +02:00
4b515c178c
remove unused code
2014-06-25 13:37:59 -04:00
6998cb1f13
part two of: lock dialog MUST be a Gtk::Dialog so that it does not forward key (or other) events to the Editor
2014-06-25 12:10:56 -04:00
036740b0c8
check UIConfig variable before restarting lock timeout
2014-06-25 11:34:58 -04:00
d5ef8f5f1e
new timer-based GUI locking code
2014-06-25 08:28:36 -04:00
1945260cd6
there's no me in proaudio
2014-06-24 12:48:24 -04:00
6a4a294167
a bit more styling for that lock dialog
2014-06-24 11:26:21 -04:00
a12f43fa46
add a modal lock dialog for better testing (and someone might find it useful, too)
2014-06-24 10:14:07 -04:00
f147846863
add ability to save current action sensitivities and restore them, and to disable all action sensitivity.
...
This is needed to be able to lock the application fully on OS X, where the global menu bar would still allow interaction
even when a modal dialog is displayed.
2014-06-24 09:56:16 -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
9461fcb271
remove header file includes of now-removed gtk custom ruler
2014-06-12 00:18:58 -04:00
18190eaa5e
clamp zoom level to show 3 days on a 4000 pixel wide screen; comment unused variable for now
2014-06-11 23:54:28 -04:00
0c5dae881c
fix up fit-selected-tracks so that we are filling the trackview area, not the entire canvas (which now includes rulers)
2014-06-09 09:08:51 -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