13
0
Commit Graph

1060 Commits

Author SHA1 Message Date
8b48aff077 fix GUI handling of surface select requests to include possibility of selecting non-Routes 2016-05-31 15:30:43 -04:00
08f01085de remove now-redundant control protocol route-selection signals 2016-05-31 15:30:43 -04:00
3eae4b0974 tweak Editor to use Stripable methods for control-surface-driven selection 2016-05-31 15:30:42 -04:00
e0ff70cf86 first vaguely working version using PresentationInfo
remote control ID and "order keys" have been removed.
2016-05-31 15:30:42 -04:00
a598b4a708 use new paned-sizing strategy in editor 2016-05-31 15:30:41 -04:00
4d87503863 fix restoration of editor pane positions 2016-05-31 15:30:39 -04:00
nick_m
baf8f37967 Tempo ramps - rename meter_at() -> meter_at_frame() & make the ticker slightly more efficient. 2016-05-27 23:38:17 +10:00
nick_m
ccf6ce76d9 Tempo ramps - clean up tempo curve a bit. 2016-05-27 23:38:16 +10:00
nick_m
85c3284adc Tempo ramps - add some right-click options to meter and tempo markers. 2016-05-27 23:38:15 +10:00
nick_m
354567e5a7 Tempo ramps - switch MusicLocked tempos to beat-based dragging. fix various bugs wrt future-snapped tempo drags 2016-05-27 23:38:12 +10:00
nick_m
a2797f4d38 Tempo ramps - use correct meter when snapping to the future. 2016-05-27 23:38:12 +10:00
nick_m
daa07ce6e0 Tempo ramps - tempos now musically snap to their future. 2016-05-27 23:38:12 +10:00
nick_m
340bd42c62 Tempo ramps - allow live updating of tempo markers.
- all a bit slow, but should be ok once we can lock
	  markers to frames.
2016-05-27 23:38:09 +10:00
nick_m
7fc3b0c34c Initial stab at tempo ramps.
Replaces the list of points in TempoMap with TempoSection functions, which
compute tempo-at or tick-at time relative to tempo section start.
TempoMap consults them additively to determine things like bbt_time(),
frame_time() get_grid() etc.
This has a marked effect on scrolling speed along with the code simplification
in the places it has been attempted.

Several things are broken here.
Currently every ramp except the last one is an exponential ramp. this may
be simple to fix :).
Mouse-over midi grid doesn't match mouse click grid. should also be simple.

Many things seem to work, but their accuracy should be in question until
each area has been addressed.
2016-05-27 23:38:09 +10:00
a7d03731a2 initialize snap-mode dropdown text
"SnapOff" is the default, so no change is triggered when calling
set_active() and initially the dropdown/ardour-button remains blank.
2016-05-18 20:07:11 +02:00
098e8e551a Don't save instant while loading instant.xml
opening a recent session from a session can result in: Editor::constructed
and session_loaded() being true. A partial instant_save can occur (not
to mention: invalid XMLnode iterators)
2016-05-18 20:06:20 +02:00
4d74b5e420 action script GUI details (sensitivity + tooltip) 2016-05-14 15:16:23 +02:00
05baa2d1c1 use WindowManager toggle API for script-manager 2016-05-06 03:59:02 +02:00
5c9660b62e re-introduce "add track/bus" from mixer window 2016-05-06 03:08:46 +02:00
17ace643e4 OMNIBUS COMMIT: prefer const XMLNode::property method (and provide a real one) 2016-05-04 23:09:45 -04:00
5e0f0fc9f2 lua action details (button sensitivity, text ellipsis) 2016-04-25 12:56:21 +02:00
9c622e3c99 add optional buttons to trigger lua scripted actions. 2016-04-25 00:16:08 +02:00
55fb20f491 update keyeditor when action label changes 2016-04-24 22:20:44 +02:00
ec0ec95262 change const some functions to const. (prepare lua bindings) 2016-04-09 00:33:03 +02:00
9a11e3a64d change API for CairoWidget::focus_handler
This functor/closure is responsible for stealing focus from any existing text entry (or whatever else may have focus)
when clicking on a CairoWidget or derived class.

The old implementation just gave focus back to the editor canvas. The new version walks up the widget packing
heirarchy to find a focusable parent (from the CairoWidget for which it is invoked). If no focusable parent
is found, it cancels keyboard focus in the toplevel window containing the CairoWidget
2016-03-15 12:41:21 -04:00
c9d6d9ed85 add region & range loudnless report 2016-03-11 17:26:42 +01:00
2532911b18 Editor Actions Scripts & Manager 2016-02-23 15:42:53 +01:00
25a24e0805 rework dialog-close-focus-reset change to work in Tabbed 2016-02-22 15:31:26 -05:00
01d5d1eda4 add "Editor" to detached editor window name to see if this fixes Unity WM behaviour 2016-02-22 15:31:25 -05:00
6991a07902 remove all trace of SAE from source code.
This had become incoherent over time, and posed a development hazard and burden going forward
2016-02-22 15:31:24 -05:00
bc487bb4b0 replicate the remove-all-trailing whitespace commit(s) in master 2016-02-22 15:31:24 -05:00
9b9a7beb13 cleanup various merge conflict resolution errors/omissions 2016-02-22 15:31:24 -05:00
09f9020897 action maps now have names 2016-02-22 15:31:24 -05:00
949163f806 more changes to Bindings, Keyboard APIs 2016-02-22 15:31:24 -05:00
67e19c177f radically change Keyboard/Binding API design to disconnect Gtk::Action lookup from binding definition
We need this because we need binding information/objects before all
Actions have been defined.
2016-02-22 15:31:24 -05:00
2c6799f247 changes to support new key bindings editor design 2016-02-22 15:31:23 -05:00
a13a8da8ac switch all action registration/binding code over to new API.
This removes the ability to change bindings via menus.

Still to come: saving modified bindings, and reworking the key editor
2016-02-22 15:31:23 -05:00
d5bcf90b1a remove all tearoffs except the monitor section.
We don't need this functionality anymore as we build on 15 years experience plus the new tabbed structure
2016-02-22 15:31:23 -05:00
8933d53271 get current tab on startup correct.
Note that Gtk::Notebook will not switch to a page with an invisible widget. This took me TOO LONG to discover.
Also move code around between files
2016-02-22 15:31:23 -05:00
16731d07d3 remove use of current_toplevel() where unnecessary, fix broken necessary cases, generally fix up show/hide/attach/detach for Tabbables 2016-02-22 15:31:22 -05:00
dd8cd579fc tell the editor to try to load editor.bindings 2016-02-22 15:31:22 -05:00
37fce09a18 widespread changes to get the new (oldArdour binding scheme to be used for keyboard accelerators 2016-02-22 15:31:22 -05:00
39036cf20f remove debug output 2016-02-22 15:31:21 -05:00
552e995297 save/restore tabbable state 2016-02-22 15:31:21 -05:00
98b14ad0e6 get normal GTK accelerators working again 2016-02-22 15:31:21 -05:00
af378e7256 stop using C++11 structure initializer 2016-02-22 15:31:21 -05:00
9010262bed first compilable version of tabbable design.
I would have loved to split this apart, but there are just so many interrelated changes,
it makes little sense and would be a huge effort that would break future git bisect
use because so many intermediate commits would not compile
2016-02-22 15:31:21 -05:00
02c8d6d648 the basics of tabbed 2016-02-22 15:31:21 -05:00
458a2b723c Use visible playhead location for editing during a jog-wheel event. 2016-01-28 13:46:33 -06:00
893b51bda2 Center the playhead for stationary_playhead playback.
This avoids a visual discontinuity when playback is initiated after a jog-event.
2016-01-28 13:46:33 -06:00
aedde11862 Initialize Editor::clicked_selection to prevent programming error dialog/exit
This was triggered when reloading session and immediately duplicating range with
keyboard shortcut. As clicked_selection was uninitialized it would try to use
an invalid index into the TimeSelection.
2016-01-28 13:42:37 +10:00
920c56775f safe default button focus for deleting playlists 2016-01-05 15:48:35 +01:00
1c49ccbc7b disabling follow_playhead should have effect when using stationary-playhead 2015-12-10 13:52:06 -06:00
André Nusser
00c68ae2e6 Remove "Fill Range with Region" from menu and also its function. 2015-12-04 11:40:24 +01:00
André Nusser
7a846b7e6d Make capitalization consistent and other minor spelling corrections. 2015-12-01 00:39:35 +01:00
0e3c2af69a cont'd 20262abe (GUI to keep all playlists) 2015-11-21 22:45:43 +01:00
c0e05f7306 GUI support for "Delete All Unused" playlists. 2015-11-21 21:12:17 +01:00
nick_m
aa097c9e9f Clean up selection history in Editor destructor. 2015-11-03 05:25:15 +11:00
nick_m
00a1d23d83 Grey out unavailable note context menu items rather than hiding them. 2015-11-01 06:06:31 +11:00
nick_m
336f8d47fe Clarify context menu for midi notes.
- right click on a note selects it if unselected or selection empty.

	- note_context_menu is shown as described in #6348
2015-11-01 05:22:55 +11:00
4a3413f2d4 suspend timers while flushing the gtk-event queue.
This fixes an issues where Ardour never completes to flush the GUI event
queue due to rapid updates for meters and similar events.

ARDOUR_UI::load_session() never returned and the complete session
ran inside Gtkmm2ext::UI::flush_pending(), this later causes a crash
at exit.

as side effect, this also speeds up session load.
2015-10-30 15:55:27 +01:00
nick_m
24142a424e Fix redo action sensitivity for non-editor undo stack changes. 2015-10-20 00:53:28 +11:00
André Nusser
e807fe2b28 Introduce "Transpose..." also in the context menu of selected notes. 2015-10-17 22:12:55 -04:00
André Nusser
4c26225ddc Fix "Select All * Edit Point" when used as shortcut. -fixes #6626 2015-10-08 13:46:22 +02:00
22b07e0233 NOOP, remove trailing tabs/whitespace. 2015-10-05 16:17:49 +02:00
4dc63966f0 globally remove all trailing whitespace from ardour code base.
Paul Davis was responsible for introducing almost all of this.
2015-10-04 14:51:05 -04:00
1d42ed077e Use ARDOUR_UI_UTILS::set_tooltip rather than via ARDOUR_UI::set_tip
This removes the direct dependence on ARDOUR_UI/Gtk_UI for setting
tooltips. Removes inclusion of ardour_ui.h from 16 files.
2015-09-16 16:55:17 -04:00
6b019a4953 Move UIConfiguration Singleton into UIConfiguration header
This removes the direct dependence on ardour_ui.h from 39 files
2015-09-16 16:55:17 -04:00
45d487f16e Move ARDOUR_UI::ui_scale into UIConfiguration class 2015-09-16 16:55:17 -04:00
4a1f5c7f28 GUI part of memleak fixes 2015-09-12 20:05:46 +02:00
fc079a0ea3 initialize some uninitialized variables.
really just nitpicking (keep valgrind clean).
2015-09-06 21:54:54 +02:00
84605fdb14 update summary when re-ordering tracks - fixes #6502 2015-08-08 17:42:50 +02:00
e1f168de11 rename Marker class
Classes are in the global namespace.
OSX has a flat namespace and OSX32bit/Carbon has a Marker too.
2015-07-23 17:58:40 +02:00
821cc80a35 stationary PH: improve performance and reduce jitter. 2015-07-07 03:21:01 +02:00
025e8db11d stationary playhead implies follow playhead 2015-07-04 16:35:49 +02:00
a81bfbfc41 use Tracks' MainMenuDisabler during session lock (could be improved with more RAII) 2015-06-29 14:18:09 -04:00
ee791f251a make the quantize dialog persistent so that settings are retained 2015-06-26 12:47:11 -04:00
d059bdb40c fix 1024px width layout (remove nudge clock special case)
Due to some change somewhere along the road the nudge clock does
no longer fit in the transport-bar on 1024px screen with 100% font-scale,
even if the 2nd clock is hidden.

However, these days it does fit nicely on its default position even
with wide-editor-mixer on a 1024px screen.
2015-06-17 02:20:02 +02:00
9e44e46c4a Enable stationary playhead mode.
stationary playhead needs to follow same rules as regular moving playhead.
2015-06-04 15:49:56 -05:00
3bdb40109b Stationary Playhead.
It is hard to locate/edit while playing, in this mode.
I think it needs to be an action, not a mode.
2015-05-30 08:31:09 -05:00
cc7a368fb6 Rationalize some aspects of region-gain control-point visibility:
Visibility is driven by the currently selected mouse mode.
Visibility no longer depends on entering/exiting the region.
Range mode shows the lines but not the points.
Fixed option text to reflect new operation.
2015-05-26 16:41:03 -05:00
f8de080f13 use vectorized TAV expand/shrink icons 2015-05-25 00:26:09 +02:00
670bbde122 use vectorized zoom icons instead of pixmaps. 2015-05-24 23:10:02 +02:00
1d5c6104f5 replace old ArdourButton::Icon API with Gtkmm2ext. 2015-05-24 21:45:39 +02:00
db7d0c59b5 remove explicit VectorIcon Element 2015-05-24 20:28:24 +02:00
nick_m
88477ace25 Fix inverted logic of SnapOff with snap modifiers pressed.
- also clean up, rename and comment some previous hanges.
2015-05-23 03:09:48 +10:00
nick_m
65e06fa350 More cleanup
- remove "no_magnets" ugh.
2015-05-22 04:26:16 +10:00
nick_m
eaf49f02ff Fix up modifier behaviour
- its now possible to use snap modifiers in combination with others
	  afaict this hasn't worked for some time.

	- use "contains" rather than "equals" during drag. Still uncertain
	   about this wrt beginning a drag. for now they are all "equals".

	- probably solve the "snap modifier modifier" problem using
	  ArdourKeyboard::indicates_snap () and friend.
2015-05-22 02:12:58 +10:00
nick_m
dc50730059 Revert to old Lock mode (still called Lock).
Also make midi notes obey the snap delta modifire
2015-05-19 03:27:50 +10:00
nick_m
aac167a19f "Lock" mode is now "Constrained", make snap absolute modifier configurable.
- user can abs/rel modifier key in prefs->user interaction
	  suggested for linux - absolute->alt ignore snap->alt-shift
	- Constrained mode works the same as button 2 drag (initial move
	  sets constraint axis).
2015-05-18 06:25:36 +10:00
nick_m
c359f881a1 Relative Snap -make it activated by the tertiary modifier during drag.
Disabled/enabled with the shift key. no config stuff at all now.
	Move existing (strange) trim feature to primary + tertiary modifiers.
2015-05-17 23:47:01 +10:00
nick_m
91a34c596d Relative snap - support magnetic mode (hackishly for now) 2015-05-17 04:26:05 +10:00
nick_m
68a8330afc Relative snap 2015-05-16 04:15:52 +10:00
nick_m
13f34f3922 Layering - the return of "later is higher".
Currently we don't do anything special on layering prefs change
    (relayer only occurs when each playlist is first edited). The idea here is
    that "undo" is still available to restore previous layering in case of any
    surprises.
2015-05-10 03:15:50 +10:00
9b385571e7 fix over-optimzation in e3375c3.
Some users of DisplaySuspender expect an implicit redisplay.
2015-04-30 18:28:27 +02:00
fe6b173236 expose set-range-selection-from-region-selection operation in more places 2015-04-24 14:19:40 -04:00
b38ab89d92 clean up GUI scaling 2015-04-22 21:40:43 +02:00
ben
e2afdb21c3 minor tweaks to Cut Time dialog. Use an enum to tell preferred_edit_location what to ignore, so cut and insert dialogs will never use mouse location. 2015-04-21 10:22:28 -05:00
91fac4c96d merge fix for tempo branch 2015-04-21 08:35:20 -05:00
47110c983c fix OSX/PPC 10.4 long maths 2015-03-31 16:05:15 +02:00
9cdb0e2765 Change default zoom to Playhead 2015-03-21 19:44:58 +01:00
7dd51f6fb3 properly apply default state
Actions that also have a private editor variable
need to be applied regardless of XML state.
2015-03-21 19:44:58 +01:00
614fc8c7bb fix visual undo.
TODO: Check if it’s feasible/required to add a
GUIPropertiesChanged signal and have axis-views
subscribe to it.
2015-03-21 16:50:47 +01:00
1ca9cd228e update track-height scaling:
“number of visible tracks”: count automation lanes
as tracks. Distribute equally.

“Summary View”: the visual lane represents both
track + automation. Set the total height.

Left to do: recursive “Shrink” and “Expand” tools
if there is no explicit selection.
2015-03-19 21:55:28 +01:00
nick_m
1a6bacb1f0 Don't mess with the track selection at all from the editor route list
when adding tracks (thinko in last commit).
2015-03-13 04:01:55 +11:00
nick_m
9ec393422f Add new routes to selection in the editor, rather than the editor
route list.
Fixes new tracks not being selected.
Also begin selection op history when adding routes.
2015-03-13 02:47:16 +11:00
c90400364a prepare saving video-export settings.
* migrate dialog from Editor to UI.
* make it a WM proxied window
* prepare applying state after construction..
2015-02-28 02:36:58 +01:00
ee6ecf9034 A few whitespace fixes
A few trivial whitesapce fixes, including replacing leading spaces with tabs in
editor.h.
2015-02-12 18:06:16 +00:00
nick_m
b1dafe9a31 Properly deallocate memory when clearing selection_op_history and
before XMLNode*s.
Improve some comments.
2015-02-07 23:33:09 +11:00
nick_m
ff13ac8b4f Clean up Session's _current_trans when aborting a drag. 2015-02-05 23:32:57 +11:00
nick_m
f9b2587458 Make redo action insensitive after new command.
Don't erroneously send first_move more than once after autoscroll drag.
2015-02-05 19:57:56 +11:00
c7affd79c2 remove track-selection requirement so fit_selected_tracks works as coded. 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-11 11:46:36 -06:00
764aad9efe clean up whitespace & debug output in 44203ce 2015-01-11 02:56:53 +01:00
nick_m
44203ce955 Fix AutomationTrackItem rubberband click thinking it was unhandled.
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-11 04:07:31 +11:00
f7e3d1be2c change Split menu entry to say Split/Separate (it was already doing that anyway). also fix a bug so you can drag the playhead and split at the playhead location 2015-01-08 16:00:49 -06:00
5ab70b6822 missing parenthesis 2015-01-08 16:00:49 -06:00
87f5f333ce make MouseTool tooltips more consistent 2015-01-08 11:13:56 -06:00
2eef0612b9 Start step entry at playhead. 2015-01-07 20:46:21 -05:00
3a47d99f5f Fix internal/external snap type restoration. 2015-01-07 19:51:18 -05:00
84412e1367 Draw beat sudivisions according to snap setting. 2015-01-07 19:05:41 -05:00
04bbe402b0 Factor out grid beat divisions. 2015-01-07 19:05:41 -05:00
a4f7c21ec3 now that regions and range selections are exclusive, the separate actions to 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-07 15:31:30 -06:00
2a251b4570 MusicalTime => Beats. 2015-01-07 00:12:07 -05:00
nick_m
884cc6f90c Add automation track control points to undo history (and selection_op history). 2015-01-02 08:01:12 -05:00
nick_m
0f7df2979c Fix previous commit. 2015-01-02 08:01:12 -05:00
nick_m
61315c314d Make editor undo/redo actions sensitive at appropriate times. 2015-01-02 08:01:12 -05:00
nick_m
a795892492 Separate selection operations into their own temporary history mechanism.
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.
2015-01-02 08:01:12 -05:00
b5c9a92a58 Move Timers/Timeouts from ARDOUR_UI into functions in timers.h and use PBD::Timers 2015-01-01 19:04:14 +07:00
2c36e96c97 rename "Convert to Region In-Place" to "Separate" since it is known by that name elsehwere and in the code 2014-12-30 19:52:44 -05:00
4c0cebf7f9 MIDI transform dialog. 2014-12-28 16:06:44 -05:00
c14f6c59db apply font-scale to overall layout (rulers, track-header) - fixes #6088 2014-12-28 15:01:49 +01:00
12a7f12b0b Context menu for applying edits to note selection. 2014-12-25 15:32:10 -05:00
62355de33a Fix cursor update on nested entry.
For example, if you're in a note and something about the mode changes, it's the
underlying region context that needs to change.  So, seems we need a stack of
entry contexts to deal with this sort of thing.

Switching in/out of smart mode still doesn't update immediately because we
don't have the y-coordinate needed to update it.
2014-12-23 13:47:59 -05:00
ea2e80f298 fix slow behaviour when changing visible track height in Editor::set_visible_track_count() 2014-12-23 12:41:32 -05:00
64fa63212f move all (G)UI related configuration parameters into UIConfiguration, not RCConfiguration 2014-12-22 13:39:46 -05:00
David Robillard
670938c8c4 Fix various cursor problems.
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-20 01:13:25 -05:00
95042d941d Move object tool to "grab" tool (key g).
Makes all tools under the left hand and eliminates the need for toggling.
2014-12-18 20:33:10 -05:00
341146a975 Remove mouse mode toggling. 2014-12-18 20:26:43 -05:00
66870ddf09 Restore snap when switching to/from internal. 2014-12-18 20:23:34 -05:00
cebf191cba Make tools toggle-like by switching to last mode. 2014-12-18 20:21:05 -05:00
5fef655380 Remove internal edit mode and add "content" tool. 2014-12-18 20:21:01 -05:00
nick_m
9af9e17adc Add editor selection state to session history via a SelectionMemento, which
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-18 11:03:10 -05:00
733f517948 Fix potential crash when right clicks go astray.
This should be impossible, since nothing but an audio region should have a fade
to begin with, but just doing nothing in this case does no harm.
2014-12-17 03:06:23 -05:00
56ca52651e fix up requested color names everywhere.
Thank <deity> for emacs ... space-uncamelcase-word-at-point FTW
2014-12-14 16:15:38 -05:00
48a7a11974 initial pass to replace all UIConfiguration::get_XXXXXX() calls with UIConfiguration::color(name).
IMPORTANT: names have not been downcased and spaced yet, so many colors are not found
2014-12-14 12:27:07 -05:00
e66752cec1 add set-session-extents-from-edit-range 2014-12-09 16:18:47 -06:00
603748d68a Unify gain and draw tools.
There might be a few special cases lingering around from attempts at magic tool
business, but this seems to work fine as far as I can tell.
2014-12-07 20:37:46 -05:00
c1cfa12d6e Wrap MusicalTime in a class.
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-22 04:05:42 -05:00
5799cb8509 Fix edit point selector on Mixbus. 2014-11-18 02:53:27 -05:00
2fa6caad95 Support cut/copy/paste of several regions and lines at once.
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-16 22:35:45 -05:00