summaryrefslogtreecommitdiff
path: root/gtk2_ardour/selection.cc
AgeCommit message (Collapse)Author
2017-07-22Rework region selection XMLnick_m
Ensures that selection is restored in the same object type order it was created in, which may some day make a difference.
2017-07-22Fix time selection undo for multiple time selectionsnick_m
This is in mantis somewhere but i can't find it. timbyr?
2017-06-17Ignore Selection::set() without actual changesRobin Gareus
2017-06-09Prepare AutomationTimeAxisView for non-route (VCA) automationRobin Gareus
2017-06-07cut buffer must not mess around with libardour selectionPaul Davis
Fixes range mode selection/cut/copy that would previously clear track selection
2017-05-05maintain CoreSelection order in GUI track selectionPaul Davis
2017-05-05use CoreSelection for track selectionPaul Davis
2017-04-24Add regions at once rather than individually when restoring Selection stateTim Mayberry
This is a workaround for performance issues with the current implementation when adding many regions to the selection one at a time. If the Selection implementation was to change at some point and adding regions to the selection only takes a small constant amount of time, then this optimization may no longer be necessary. Related to: #7274
2017-04-19Use XMLNode::get/set_property API in Selection classTim Mayberry
There were many possible value truncations occuring and some precision loss with the double conversions.
2017-02-26make Selection::set (TrackViewList*) more efficient and emit less PI::Change ↵Paul Davis
signals
2017-02-26avoid doing needless duplicate work in Selection::add (TimeAxisView*)Paul Davis
2017-02-24the daily dose of const'nessRobin Gareus
2017-02-21fix crash when removing a TimeAxisView from the selectionPaul Davis
2017-02-18Prevent direct and indirect selection of VCAsRobin Gareus
the ::selection_filter() does not cover select-all and various other indirect selection operations.
2017-02-08stop a crash during selectionPaul Davis
2017-01-28minor logic changes to editor selectionPaul Davis
Prevent mulitple PresentationInfo::Change signals if toggling several tracks
2017-01-27remove editor/mixer selection change signals; make editor and mixer use ↵Paul Davis
PresentationInfo::Change more correctly; make Selection a bit smarter when setting track selection
2016-11-15Fix crash when selecting MIDI noteTim Mayberry
Replace now always invalid assertion with initialization Related to #7110
2016-11-15change note selection node name - should fix 7110nick_m
2016-11-14potential fix for #7110 (older sessions have no id)Robin Gareus
2016-10-15Note selection state uses note event_id_t.nick_m
2016-07-14enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.hPaul Davis
2016-07-06many changes associated with rationalizing selection flowPaul Davis
2016-06-05tweak API of SelectablePaul Davis
2016-05-04OMNIBUS COMMIT: prefer const XMLNode::property method (and provide a real one)Paul Davis
2016-03-28fix gain automation copy/paste -- #6842Robin Gareus
2016-01-29use new selection API to avoid double signal when a track or tracks are SET ↵Paul Davis
as the selection
2016-01-29modify Selection API to provide (default-valued) "with_signal" argument to ↵Paul Davis
all ::clear_*() methods This allows the clear methods to be used before calling ::add(), to avoid the emission of a signal saying "there are no <foo> selected right now". There should be no side-effects from this commit. Note that correct use of this new API is complex, and requires avoiding the use of wrapper methods like clear_objects().
2016-01-14Change handling of Midi note selection to eliminate signal emission/delays.Tim Mayberry
Each MidiRegionView(MRV) is connected to the Selection::ClearMidiNoteSelection signal that is used to notify the all MRV instances to clear their note selection. The MRV class also has a private static SelectionCleared signal that is used to signal other MRV instances when their selection has been cleared. When the Selection::ClearMidiNoteSelection signal is emitted it causes each MRV to also emit the SelectionCleared signal. So the emission takes quadratic time. With 1500 MRV instances emission takes about 2.2 seconds on my machine, and some operations like track selection cause it to be emitted 3 times(another issue). The Selection class in the Editor knows which MRV instances have note selections, as it is notified by MidiRegionView whenever the selection count becomes zero or becomes non-zero. Clearing the Note selection should then just be O(N) and direct calls can be used rather than signals. This change removes both the signals and uses the existing references between Selection and MRV class to control note selection. There should be no behavioural changes in Midi note selection with this change.
2015-10-20Add error check to region gain control point selection undo.nick_m
2015-10-20Add region gain point selection undo.nick_m
2015-10-20Make control point selection more consistent.nick_m
- disallow simultaneous events via ControlList::editor_add () - clicking on an automation line selects the points that define it. - don't 'flash' a region selection when using mousedraw mode. - cp click selection resembles region selection. - region gain points respect snap modifier (a la automation points).
2015-07-23rename Marker classRobin Gareus
Classes are in the global namespace. OSX has a flat namespace and OSX32bit/Carbon has a Marker too.
2015-03-17initialize uninitialized variableRobin Gareus
just another hint for clang/static analysis.
2015-02-19fix some static-analysis warningsRobin Gareus
2015-01-17Fix note resize double undo bug.nick_m
Newly drawn notes are selected. Clear midi note selection on Selection::set_state().
2015-01-11clean up whitespace & debug output in 44203ceRobin Gareus
2015-01-11Fix AutomationTrackItem rubberband click thinking it was unhandled.nick_m
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-02Add automation track control points to undo history (and selection_op history).nick_m
2015-01-02Removed unrelated change in Selection::set_state () (clear_points()).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-3132/64bit compatRobin Gareus
2014-12-18Fix copy paste of MIDI and track automation.David Robillard
2014-12-18Enforce internal/external selection exclusivity.Ben Loftis
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-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-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-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-09-03selecting a track in the mixer, with synced selection, will now clear any ↵Ben Loftis
objects selected
2014-07-07fix copy paste error in selectionBen Loftis