summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_drag.h
AgeCommit message (Collapse)Author
2020-04-14Fix #8012 to some extent.Johannes Mueller
As soon as we ripple drag the selected region out of the original track, ::remove_unselected_from_views() is called and the rippled regions on the original track are not covered when ::remove_selected_from_views() is called again in ::finished(). Therefore we need to shift the regions remaining on the original track back and forth again, in order to have them properly in the undo history.
2019-11-09Preview video frame when draggingRobin Gareus
2019-08-03Update GPL boilerplate and (C)Robin Gareus
Copyright-holder and year information is extracted from git log. git history begins in 2005. So (C) from 1998..2005 is lost. Also some (C) assignment of commits where the committer didn't use --author.
2019-04-13NO-OP: whitespaceRobin Gareus
This fixes mostly <tab> after <space> and similar <tab> not used for indenting as well as some related code alignment issues.
2019-04-08NO-OP: whitespace, indentRobin Gareus
2019-03-30AutomationRangeDrag tweaks for stacked layer viewRobin Gareus
Use y-pos and height of given TAV *layer* where the drag was initiated.
2019-03-30Remove unused variableRobin Gareus
2019-03-29cont'd AutomationRangeDrag updates -- safety commitRobin Gareus
This is work in progress towards fixing stacked region's region-gain and multiple discontinuous regions spanning multiple tracks. AutomationRangeDrag::setup() still does not collect all AutomationLine points for certain overlap scenarios. There's more to come...
2019-03-27Implement multi-region AutomationRange drag/dropRobin Gareus
2018-02-09new_grid: Rewrite of Snap and Grid. (squashed commit)Ben Loftis
Separate Snap from Grid. Lots of naming changes. Multiple simultaneous snap options allowed. Grid is one of the possible Snap options. Grid uses the same data as the rulers. Replace complicated tempo_lines with simple grid_lines. The Grid is zoom-scale-sensitive along with the rulers. If you are zoomed out, grid becomes coarser.
2018-02-09new_snap: Snapped Cursor ( squashed commit )Ben Loftis
Snapped Cursor is a line that follows the edit point, and indicates where the operation will occur. This replaces and extends the line that appears with the Cut tool. New associated preferences: snap_threshold and show_snap_cursor.
2017-09-18globally change all use of "frame" to refer to audio into "sample".Paul Davis
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode and video in order to keep the legible
2017-07-22Disable tempo end/twist drag for meter-locked tempinick_m
It was assumed that the drag takes place within an area of musical time. This is not true for the space before any non-initial meter-locked tempo. In the case of the initial tempo, there is no previous section to perform an end-drag on.
2017-07-22Fix various issues wrt BBTRulerDragnick_m
If we've clicked on a tempo bar before the initial tempo, don't allow anything to happen. If it was just a click, ensure the tempo curve colour is restored.
2017-07-20CursorZoomDrag rework:Ben Loftis
* If the use-time-rulers-to-zoom option is enabled, -all- cursor drags can zoom. * Behavior has been tweaked so it is easy to scroll without zooming, if you want to.
2017-07-01NO-OP whitespace & foratting of header filesRobin Gareus
2017-07-01NO-OP whitespace (updated GH PR #357)Thomas Brand
2017-03-05tempo editing updatesnick_m
- a tempo marker may now be set to always continue (clamped) this means that the end tempo of the previous section will track the start tempo during tempo ops. it mimics the behaviour in 5.8, with the gui indicating the curves to be changed.
2017-03-05rework percussive hit spraying.nick_m
- the spray is limited to the first entered note. - all new notes are selected (requires a selection change to MRV::create_note_at()
2017-02-27back to using shift-ctrl for pinch drag. set colours of affected curves.nick_m
2017-02-27rework tempo editing.nick_m
most changes are due to a new design where tempo discontinuities at the beginning of a ramped section may be set. this allows easier mapping of live performance, especially in the common case of a ramped ritard before the beginning of a new section. feature summary: holding constraint modifier (shift) while dragging the BBT ruler area drags the tempo lines by changing the start tempo (as before) holding copy modifier (control) while dragging the BBT ruler area drags the tempo lines by changing the end tempo (ahem. not quite there) dragging a tempo mark while holding constraint (shift) will change the previous end tempo to match the marker position *worth trying*. holding constraint and copy modifier (control + shift) while dragging the BBT ruler area attempts to'pinch' or twist the surrounding tempi sp that later ones are not repositioned (currently suffereng from rounding errors)
2017-02-05midi note drags are music-based.nick_m
- wysiwyg (during drag) when dragging more than one note across a tempo change. - introduces a muscal equivalent of snap_delta (only used for note drags atm) - split earliest note in selection into a separate function - MRV::copy_selection() returns the equivalent _primary note to avoid offset hell. - RV::snap_frame_to_frame returns a MusicFrame - prevent note drag moving before region start.
2017-02-04setup_snap_delta() need only take a framepos_t.nick_m
2017-02-04rework snapnick_m
snap now fills in a struct (MusicFrame) which contins a snapped frame along with a music divisor. this gives useful information wrt magnetic snap which may or may not have rounded to an exact musical position. region position may now be set musically (using quarter notes for now). this patch fixes several problems in the current code: - dragging a list of music-locked regions now maintains correct musical offsets within the list. - splitting regions using magnetic snap works correctly (#7192) - cut drag should now work correctly with magnetic snap. - musical length of split midi regions is no longer frame based.
2017-01-25improve range drag semanticsPaul Davis
If a track is selected during the drag (by moving the mouse pointer into a new track), but it was not selected at the start, and is then de-selected (by moving the mouse back out of it), then remove it from the selection.
2017-01-23implement copy-drag for MIDI notes.Paul Davis
Probably some corner cases to be fixed, but pretty functional and largely modelled on existing code (paste, drag, step add note etc.)
2016-11-22filter events in HitCreateDrag, remove some code.nick_m
2016-11-21Show cursor in Cut mode on button press at cutting positionTim Mayberry
Previously it would be shown at the mouse cursor position even though the Region is cut/split at the snap/quantize point if no motion occurred.
2016-11-21clean up HitCreateDrag. should be a no-op.nick_m
2016-11-21fix compilation, rename PercussiveCreateDrag -> HitCreateDragnick_m
2016-11-20make it clear that there is no drag threshold for NoteCreateDrag.nick_m
2016-11-18fix incorrect subdivision when dragging/trimming regions using magnetic snap.nick_m
- amends d2d2308588e84
2016-11-11Add option to zoom using button press in the time rulers and dragging verticallyTim Mayberry
This is a common operation used for zooming in other DAWs like Ableton Live and Cubase. To support such a usage pattern without changing the existing behaviour of the ruler area I've made it an option that is false by default. The behaviour of RulerDragZoom is intentionally different than a CursorDrag that occurs in the rest of the ruler area in that it doesn't follow the snap to grid setting and no locate related stuff occurs until button release. There are some issues with responsiveness with more than a few hundred regions or a large amount of MIDI events/notes. Implements feature #6768
2016-11-11remove public pulse methods from TempoMap.nick_m
- the only object whose musical position is not expressed in quarter notes is MetricSection. there is now no need to expose this.
2016-11-11clamp setting tempo via vertical drag.nick_m
- a bit suboptimal. we really need the opposite of _trackview_only to prevent jumping to track canvas scrolled coordinates in the first place.
2016-08-14Resolve potential ambiguity between the constraint modifier and the copy ↵nick_m
modifier when beginning a drag.
2016-07-10remove reference "const int32_t&" -> const int32_t"Robin Gareus
this simplifies lua-bindings and also let's the compiler worry about constant primitive types.
2016-07-10Paste uses exact beats. rework _start_beats calculation in copy-with-offset ↵nick_m
ctor.
2016-07-10Make some musical operations on music-locked regions operate in beats.nick_m
- use exact beats to determine frame position. - see comments in tempo.cc for more. - this hasn't been done for split yet, but dragging and trimming are supported.
2016-05-28Allow non-musical snap when dragging bbt ruler.nick_m
- probably not what the user wants, unless snapping beats to timecode frames.
2016-05-28Force snap when dragging meters.nick_m
2016-05-28Dragging a meter sets editor snap type to bars during drag.nick_m
2016-05-27Tempo ramps - more bbt dragging work.nick_m
- display prev tempo and tempo at mouse while dragging - simplify ramp dilation somewhat.
2016-05-27Tempo ramps - more bbt ruler dragging work.nick_m
2016-05-27Tempo ramps - add visualtempo curve, dragging bbt or music rulers with ↵nick_m
constraint modifier dilates previous tempo.
2016-05-27Tempo ramps - allow constraint-drag of first tempo.nick_m
2016-05-27Tempo ramps - pressing constraint modifier keys during tempo drag changes ↵nick_m
tempo with vertical movement, incorporating beat constraint (if present). - makes it easy to find suitable accelerandos for hit points in conjunction with playhead position, beat-locked tempos and initial meter frame.
2016-05-27Tempo ramps - rework mouse dragging of tempo marks, derive beat_at_tempo() ↵nick_m
and tempo_at_beat().
2016-05-27Tempo ramps - allow live updating of tempo markers.nick_m
- all a bit slow, but should be ok once we can lock markers to frames.
2015-11-14Fix #6673 - another prematurely closed undo transaction.nick_m
- add_midi_region used to commit, resulting in _region->set_position() adding a command when there was no current transaction. The sub-bug here was that repeatedly calling set_position() on the new region resulted in nonsensical automation movement after the drag.