Commit graph

784 commits

Author SHA1 Message Date
Paul Davis
d36afa6b8b forward scroll events from track control headers to the canvas, to get consistent scroll behaviour (whatever that behaviour is) 2014-06-09 10:02:38 -04:00
Paul Davis
92bb0e0d7f fix problem with calls to Editor::trackview_by_y_position() when using motion events. The coordinate passed in was in canvas space and the method expected trackview space
To handle any further issues like this, I generalized and added an optional argument specifying that the canvas=>trackview transform is required, thus
centralizing where this done.
2014-06-08 14:41:29 -04:00
Paul Davis
8487314069 introduce Drag::_trackview_only which indicates that all y-axis positions for the pointer during a drag should be relative to the top of the trackview group.
More or less all drags except for Cursor (playhead) and drags in the range marker bars have this true (which is the default value)
2014-06-08 11:26:32 -04:00
Paul Davis
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
Paul Davis
5696199daf remove timebar canvas and just use a single canvas instead. This is just part one - lots of minor fixes to be done 2014-06-03 16:10:27 -04:00
Robin Gareus
2d82446f59 set Gtk::RadioAction state on instant.xml load.
This should really be done in ArdourDropdown somehow.

Fixes issues introduced at b9708d5: If after session-load some
radio-item other than the first one is set active, it is
impossible to switch to the first.
e.g. set "Snap to Grid", Save Session, Load Session, trying to
switch to "Snap to None" fails until another mode is selected first.
2014-05-29 14:16:15 +02:00
Robin Gareus
918a0ac5f9 update x-fade context-menu 2014-05-29 07:49:26 +02:00
Robin Gareus
f226ed086b update fade icons 2014-05-28 22:23:42 +02:00
Robin Gareus
d96a6ed247 fix x-fade icons in context menu 2014-05-28 19:46:31 +02:00
Paul Davis
356c1013ae change return type of Editor::axis_view_from_route() 2014-05-19 14:00:36 -04:00
Colin Fletcher
d75c7151d4 Ripple mode: basic implementation
Add a value for Ripple to EditMode enum.

Add Ripple edit mode to edit mode dropdown, by adding it to the
Editor::build_edit_mode_menu() helper function, and remove the old code that
added items to the (now unused) Editor::edit_mode_strings.

Add the regions that should be affected by the drag to RegionDrag::_views so
that the drag carries them along automatically.

Use a copy of the RegionList in Playlist::core_ripple(), since bad things
happen when iterating over regions and they get moved around in the list.

Handle rippling in removal of regions from playlist.

When dragging in ripple mode, exclude all regions that lie before the
original start position of the selected regions being dragged from
rippling: this is what Mixbus does.

Make editor dragging respect snap-to settings, by using the existing
compute_x_delta() function, which did almost the right thing. Move setting
of _last_frame_position out of that function so all ripple-dragged regions
can move.

Ripple when dragging from region list: even though Mixbus doesn't do this, it
seems like a good idea.

Prevent multi-track selection being dragged across tracks, by making
RegionMotionDrag::y_movement_allowed() virtual, and overriding it in
RegionRippleDrag to forbid dragging of selections containing regions on more
than one track to dofferent tracks in ripple mode.

Remember which TimeAxisView a ripple-mode drag that's allowed cross-track
drags started from, so that the effect of rippling regions after any region
that's dragged off that track can be undone.
2014-05-07 19:46:24 +01:00
Paul Davis
6544df039b change location marker ruler text for get_trx() == true case 2014-05-01 07:53:46 -04:00
Paul Davis
509159c3c6 first pass hiding/rearrangement of UI elements related to trx 2014-04-10 13:30:25 -04:00
Ben Loftis
4c2e846126 the FlatFace element is no longer relevant. instead it was being used for an inset jeweled look. changed name to match 2014-03-26 11:37:28 -05:00
Paul Davis
4e5d977fb1 add back track shrink/expand buttons 2014-03-25 10:43:04 -04:00
Paul Davis
200a67fba8 most of the support for save/restore of visible track count 2014-03-25 10:33:18 -04:00
Paul Davis
7fac3674c3 actually resize track heights to follow visible-tracks choice 2014-03-25 09:02:31 -04:00
Paul Davis
da36a8ee09 first part of switch from shrink/expand tracks to pyramix-style "pick number of visible tracks". function to follow shortly, this is the control widget part 2014-03-25 08:21:08 -04:00
Ben Loftis
c16a577a8d brownish zoom buttons 2014-03-25 06:36:09 -05:00
harrison
b9708d5f6b New theme for editor window using ArdourMenu 2014-03-23 18:11:42 -05:00
Robin Gareus
640bd36906 fix editor full-screen state when re-loading session 2014-03-21 15:21:09 +01:00
Paul Davis
9df3157dfc big rework of scrolling, horizontal part considered almost 100% done.
Many more changes than I would typically like in a single commit, but this was all very intertwined.
Vertical scrolling using track-stepping still to follow.
2014-03-20 13:29:45 -04:00
Paul Davis
c04285addf convert canvas_event_frame() and window_event_frame() to canvas_event_sample() and window_event_sample() to go along with the convention adopted in cairocanvas code re: frames+samples 2014-02-26 08:43:53 -05:00
Paul Davis
d00dc6a706 various work to make loop/punch display work better (including fixes for bugs present in master also) 2014-01-27 21:27:13 -05:00
Paul Davis
b9185d2c07 Merge branch 'master' into cairocanvas 2014-01-17 09:25:03 -05:00
Paul Davis
17309c41c3 use Glib URI utility function to generate a local filename from a URI, rather than hand-crafted code 2014-01-17 09:24:32 -05:00
Paul Davis
b880a38152 Merge branch 'master' into cairocanvas 2013-12-28 14:00:20 -05:00
Robin Gareus
5bc8750f73 prevent 0-pointer dereference in editor_routes.cc - fixes #5794 2013-12-28 16:15:00 +01:00
Paul Davis
85daa31ab5 all events propagate out of the canvas in canvas coordinates now, so revert changes in editor_drags.cc that worked around this not being the case 2013-10-31 16:43:35 -04:00
Paul Davis
7ce86cec7d handle enter/leave items when zooming and scrolling occur 2013-10-31 03:10:18 -04:00
Paul Davis
e5888d3983 merge with master and fix 2 conflicts 2013-10-16 22:06:56 -04:00
Robin Gareus
c2b2953f8c export video-range: add to context menu 2013-10-12 22:56:08 +02:00
Paul Davis
fd23ebd088 Merge branch 'master' into cairocanvas 2013-09-17 21:23:30 -04:00
Paul Davis
1740bbb966 correctly restore zoom focus state after restart (from nick mainsbridge) 2013-09-16 22:32:55 -04:00
Paul Davis
7a30e63eaa fix merge conflicts with master 2013-09-14 16:42:40 -04:00
Colin Fletcher
1da655c2eb Fix special handling of 'zoom vertical' scroll wheel modifier key.
gtkmm2ext/keyboard.cc has a special case to emit a signal on the key-up of
the modifier key used to adjust track heights in conjunction with the
scroll wheel, so that the same track continues to be resized even when
it's shrunk to no longer be under the mouse cursor. However, this code
assumed that the modifier key for this was <Shift>.

Fix it to use the event->state bit corresponding to
ScrollZoomVerticalModifier instead, and rename the relevant functions to
clarify that it's the 'zoom vertical' modifier key they're dealing with.

Partially fixes #5610.
2013-08-08 15:24:15 -04:00
Paul Davis
1ab61b8564 major redesign of MIDI port heirarchy and management (part 2) 2013-08-07 22:22:11 -04:00
Colin Fletcher
8e376f7a2a Fix special handling of 'zoom vertical' scroll wheel modifier key.
gtkmm2ext/keyboard.cc has a special case to emit a signal on the key-up of
the modifier key used to adjust track heights in conjunction with the
scroll wheel, so that the same track continues to be resized even when
it's shrunk to no longer be under the mouse cursor. However, this code
assumed that the modifier key for this was <Shift>.

Fix it to use the event->state bit corresponding to
ScrollZoomVerticalModifier instead, and rename the relevant functions to
clarify that it's the 'zoom vertical' modifier key they're dealing with.

Partially fixes #5610.
2013-07-23 16:42:34 +01:00
Paul Davis
3031a99364 Merge branch 'master' into cairocanvas 2013-06-25 22:24:47 -04:00
Paul Davis
2b74c955f1 fix zoom focus issue that was messing up zoom changes 2013-06-25 21:56:10 -04:00
Julien de Kozak
8af47234fb remove compilation warning 2013-06-23 13:37:50 +02:00
Paul Davis
aaaeb958c1 switch samples_per_pixel to integer type 2013-06-18 23:02:54 -04:00
Paul Davis
bebe2af95a merge with master 2013-05-08 14:48:28 -04:00
Paul Davis
a902737db9 various changes to window visibility mgmt, including use of the mixbus2 code for toggling editor + mixer windows. no longer attempt to track changes made outside of ardour, which is a lost cause 2013-05-07 13:01:26 -04:00
Paul Davis
e2f0c5f91e merge resolution with master 2013-05-02 20:21:54 -04:00
Paul Davis
3973ce81b3 remove all of Gtk::Window::set_position (WIN_POS_MOUSE) for anything deriving from ArdourDialog or ArdourWindow; move the set_position() call into those classes' constructors, so that they are called before the windows are realized, and thus it actually works 2013-05-02 18:13:35 -04:00
Paul Davis
81485faa83 remove CMT code - has not been used for years, and will become irrelevant with VTL and cairocanvas 2013-05-02 12:21:41 -04:00
Paul Davis
54bf06e63c Merge branch 'master' into cairocanvas 2013-04-26 14:20:11 -04:00
Paul Davis
db34831b18 redesign toggling of editor/mixer stacking to use Gtkmm2ext::VisibilityTracker 2013-04-26 14:12:52 -04:00
Paul Davis
6f664c1f67 many pervasive changes primarily related to waveform drawing, particular content-dragging, colors, and more 2013-04-24 15:42:14 -04:00