summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_ops.cc
AgeCommit message (Collapse)Author
2015-01-30remove locate before loop, which was causing intermittent loop behaviorBen Loftis
2015-01-11remove track-selection requirement so fit_selected_tracks works as coded. ↵Ben Loftis
change name to fit-selection. remove action to zoom (both axes) because this can trivially be accomplished by clicking (f)it and (z)oom sequentially, and it frees a keybinding. remaining bug: Fitting a selection of MIDI regions doesnt work right
2015-01-08change Split menu entry to say Split/Separate (it was already doing that ↵Ben Loftis
anyway). also fix a bug so you can drag the playhead and split at the playhead location
2015-01-07now that regions and range selections are exclusive, the separate actions to ↵Ben Loftis
set ranges or zoom to selections are redundant. save some menu entries and keybindings by consolidating them. also consolidate some code with new function get_selection_extents(). as a side-effect, this checkin fixes the assert failure in play_with_preroll
2015-01-07MusicalTime => Beats.David Robillard
2015-01-02Make editor undo/redo actions sensitive at appropriate times.nick_m
2015-01-02Separate selection operations into their own temporary history mechanism.nick_m
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.
2014-12-28MIDI transform dialog.David Robillard
2014-12-26fix "alt+g" duplicate range selection.Robin Gareus
This is a somewhat wacky workaround but no there is no better solution in sight. Related bug: select range, save, quit, restart & re-load session -> range selected but tool == object
2014-12-25Context menu for applying edits to note selection.David Robillard
2014-12-22consolidate zoom-to-range and zoom-to-regions into: zoom-to-selection. ↵Ben Loftis
ToDo: zoom to selection of midi notes, control points, tracks(?)
2014-12-22move all (G)UI related configuration parameters into UIConfiguration, not ↵Paul Davis
RCConfiguration
2014-12-20Fix various cursor problems.David Robillard
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-19Implement configurable region selection after splitColin Fletcher
Implement the configured behaviour of region selection after split.
2014-12-18Fix copy paste of MIDI and track automation.David Robillard
2014-12-18Remove internal edit mode and add "content" tool.David Robillard
2014-12-18Add editor selection state to session history via a SelectionMemento, whichnick_m
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-09add set-session-extents-from-edit-rangeBen Loftis
2014-12-07Fix alignment of automation paste.David Robillard
Preserve alignment between notes and control points when doing an internal copy/paste of both. Relative alignment between points on multi-paste is still not preserved. Both behaviours here are actually useful, perhaps a modifier...
2014-12-06Add legatize and remove overlap MIDI operations.David Robillard
We're going to need the ability to apply MIDI edit operations to a note/control selection soon...
2014-12-06Fix crash on shift+rclick of region to remove.David Robillard
This doesn't seem to have been touched for years, and I don't see how such an obvious bug could possibly have been around for so long, but, well, this fixes it as far as I can tell.
2014-12-06Adapt range when copying between automation types.David Robillard
For things like copying from pitch bender to a CC. Also things like fader to pan, but that seems a bit funny. The conversion probably needs to be a bit smarter here, perhaps taking the normal into consideration...
2014-12-06Support paste between automation lanes.David Robillard
Also push the increasingly unwieldly paste parameters into a context object. As with othe things, currently it is only possible to do "cross-type paste" by explicitly selecting the target track. We will need to get automation region view selection working to do better here, but at least for now it's possible to get the data over.
2014-12-01Replace half-baked param metadata with descriptor.David Robillard
Among other things, this means that automation controls/lists have the actual min/max/normal/toggled of parameters, and not those inferred from the Parameter ID, which is not correct for things like plugin parameters. Pushing things down to the Evoral::ParmeterDescriptor may be useful in the future to have lists do smarter things based on parameter range, but currently I have just pushed down the above-mentioned currently used attributes.
2014-12-01Add comment about parameters to coverage() including the end point.Colin Fletcher
2014-11-25Remove dead code.David Robillard
2014-11-22Fix quantization and other time-related ops.David Robillard
2014-11-22Wrap MusicalTime in a class.David Robillard
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-18Fix incredibly unlikely NULL pointer dereference.David Robillard
2014-11-18Fix zoom out limiting logic to actually limit minimum zoom.David Robillard
2014-11-16Support cut/copy/paste of MIDI notes and controllers at the same time.David Robillard
2014-11-16Support cut/copy/paste of several regions and lines at once.David Robillard
The idea here is to do the reasonable thing, and copy objects of some type (e.g. MIDI region, gain line) to tracks with a matching type. The user can override this with a track selection, which will be used straight-up. Lost: ability to copy/paste lines across types, e.g. gain to pan. This is often questionable, but sometimes useful, so we will need to implement some sort of "greedy mode" to make it possible. Implementation simple, but not sure what to do. Perhaps this should only be possible if one automation track is explicitly (i.e. via track selection) involved, and the types are at least compatible-ish?
2014-11-16Don't add spurious points when copy/pasting automation.David Robillard
2014-11-16Reset repeated paste state on cut/copy.David Robillard
2014-11-16Use an enum for RoundMode instead of magic numbers.David Robillard
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-14Implement "multi-paste" for notes, regions, and automation.David Robillard
The idea here is that pasting several times to the same location doesn't make sense. Instead, the paste is appended past the last paste, snapped to the grid. This make it simple to replicate a given section a number of times, simply by copying once and pasting several times. This behaviour only appears when successive pastes are done to the same location (whatever the edit point is). When the paste point changes, the "multi-paste" state is reset. Boots 'n cats 'n boots 'n cats.
2014-11-14Fix MIDI note cut/copy/paste.David Robillard
2014-11-14add abort() to non-reached codeRobin Gareus
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-13Fix crash when deleting overlapped regions.David Robillard
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-10-29fix vertical canvas scrolling Robin Gareus
* properly account for hidden tracks * allow to scroll to last track
2014-10-21a few tweaks to zoom computations so that zoom-to-range works correctlyPaul Davis
2014-10-02Don't select newly created regions after splitting selected regions (except ↵Colin Fletcher
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-02Text tweaks and typo fixesColin Fletcher
2014-09-17do not stupidly try to save punch/loop/session ranges during clear_ranges opPaul Davis
2014-09-15fix various loop-initiation faultsBen Loftis
2014-09-13Make zoom-to-session include regions currently being recordedColin Fletcher
2014-09-06fundamentally change ArdourButton PangoLayout handlingRobin Gareus
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-03fix Play Loop from range context menuBen Loftis
2014-08-31update track-header width when removing track(s).Robin Gareus
2014-07-24several fixes to make processor selection and deletion feel right, for both ↵Ben Loftis
mixer and editor-mixer strips