ea05a66736
when adding a list of Stripables, sort them into PresentationInfo order first
2016-06-05 16:33:01 -04:00
c7d6262e9f
there is no PresentationInfo::global_order_t any more
2016-06-05 16:33:01 -04:00
2161c5d507
use new RouteGroup property names
2016-06-05 16:33:01 -04:00
260058a4a9
move from PresentationInfo::global_order() to PresentationInfo::order, and fix up part of reordering behaviour
...
Dragging tracks/busses in the editor *below* VCAs still does not work
2016-06-03 15:15:39 -04:00
3835b782b3
part three of using LocaleGuard with pane sizes
2016-06-02 08:17:20 -04:00
bac7a13d0f
the second half of using LocaleGuard with pane sizes
2016-06-02 08:09:34 -04:00
79a9be434c
add LocaleGuards to 2 places where we save pane sizes (which are floating point values now)
2016-06-02 08:04:08 -04:00
2562b4a2f0
handle old-version pane positions by ignoring them
2016-05-31 15:30:45 -04:00
76620819e0
use new pane API
2016-05-31 15:30:45 -04:00
cc88501d97
set minimum size for editor list
2016-05-31 15:30:45 -04:00
a26a85de14
set editor pane cursors
2016-05-31 15:30:45 -04:00
91a95b086a
initial sort-of-mostly-working integration of new Pane
2016-05-31 15:30:45 -04:00
482873760c
initial implementation of VCA time axis views
2016-05-31 15:30:44 -04:00
4cd6d52013
make Escape (cancel drag or selection) work in mixer as well as editor
2016-05-31 15:30:44 -04:00
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
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
d63161426f
Add "maybe" rounding modes for rounding only if necessary.
2014-11-16 22:35:45 -05:00
fd9ccc7058
Use an enum for RoundMode instead of magic numbers.
...
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-16 22:35:45 -05:00
55ce10f498
NULL pointer dereference?
2014-11-17 03:58:05 +01:00
4a17f9e941
round control-scroll offsets towards zero
...
fixes MCU "Locate called for negative sample position"
2014-11-15 19:41:15 +01:00
31acd96384
Implement "multi-paste" for notes, regions, and automation.
...
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-14 20:04:19 -05:00
6b3a8915f3
add abort() to non-reached code
...
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-14 11:30:08 +01:00
da4365255c
fix typo in 58fec98a
...
the documentation was correct: “GTK+ uses G_PRIORITY_HIGH_IDLE + 10
for resizing operations, and G_PRIORITY_HIGH_IDLE + 20 for redrawing
operations.” but the priority for the idle visual changer was wrong.
fixes, follow-playhead and zoom/scrolling under load (no idle)
2014-10-29 18:31:13 +01:00
f900711136
port changes to ARDOUR::Location and ARDOUR::Locations APIs from Tracks to Ardour.
...
Fixes deadlocks caused by mutex on Locations list, and clarifies the purposes and uses of the class-level and
object-level change-related signals.
2014-10-24 12:18:46 -04:00
5ff0c6b319
prevent negative playhead positions from entering code via serialized state
2014-10-22 17:07:11 -04:00
ba4d1cd1c1
remove "canvasvar_" from all functions related to obtaining values from ARDOUR_UI::config()
2014-10-21 22:58:58 -04:00
b73f725676
remove mouse zoom mode; bind z to zoom-to-range
2014-10-21 12:47:53 -04:00
58fec98a4d
fix track height resizing on OSX.
...
If the transport is running, g_idle with G_PRIORITY_DEFAULT_IDLE is
never called.
TODO: check other g_idle functions in libs/gtkmm2ext
2014-10-21 13:20:17 +02:00
a1245de1ba
track height fixes:
...
* retain [custom] track-height
Editor::override_visible_track_count() is called repeatedly (for
every change), there was a 50/50 chance of it saving the right value.
* adjust default for new sessions: use “Normal” track height until
told otherwise.
2014-10-20 20:33:28 +02:00
8d8717800d
add tearoff reattach for the editor
2014-10-16 13:44:36 -04:00
dc924db851
correctly connect to Location static signals
2014-09-17 09:37:39 -04:00
4e411dfd7b
set the CairoWidget focus handler; reset focus when the mouse pointer leaves the Editor window
2014-09-16 12:46:39 -04:00
bb5cd8aa32
fix compiler warning
2014-09-15 14:09:12 -04:00
df19c576c7
fix a bunch of memory leaks
2014-09-11 03:04:11 +02:00
b81ceeaaa6
complete list from 68f0694ac0
2014-09-09 01:24:17 +02:00
68f0694ac0
remove arbitrary button sizing for edit mode buttons
2014-09-08 15:02:33 -05:00
3a75fab244
speed up session load (display updates)
2014-09-06 12:52:29 +02:00
936cb05989
update dropdown triangle
2014-08-30 18:26:03 +02:00
74f313dd6b
Rationalize ArdourButton and lots of associated theming issues.
...
ArdourButtons now have a "pushed" animation.
The gradient is now implemented in the button, rather than providing 2 colors in the theme, which was burdensome.
Lots of code cleanup in ArdourButton. Removed several unnecessary flags.
Refactor more stuff into route_ui.
2014-08-22 11:51:20 -05:00
b75b88a1eb
Use text to specify combo box padding for better font/display tolerance.
...
Consistent mixer strip button height.
The latter works by setting all the button size request heights to the
calculated height of the alphabet. Thus, all buttons of the same class will be
the same height regardless of their actual text.
2014-07-30 18:30:42 -04:00
c1616ccff6
Shrink minimum width a bit by using the same hpad for all toolbar selectors.
...
30 was already being used for some, and looks like more than enough padding,
for me. Hopefully is enough everywhere.
2014-07-29 23:44:57 -04:00
564d8d7669
Consistent styling for toolbar buttons.
...
All the different looks here didn't seem to convey anything useful to me, and
looked sloppy. I went with the style of the transport button.
It would be nice if we could style button elements like Inset in the
configuration, but this would require some work.
2014-07-29 23:39:01 -04:00
ed07c53210
clean up cruft in some config variables
2014-07-28 15:55:20 -05:00
02af7cb418
alternate layout with a full-height editor-mixer, for mixbus
2014-07-28 11:27:02 -05:00
b22e136887
Add some new zoom-to-selection actions, so zoom tool is less needed.
...
Reverse order of items in the zoom menus to match Ardour.
Consolidate the extra zoom math into a function; this fixes a problem in zoom-to-session.
2014-07-23 11:31:06 -05:00
b69870dfe6
add Editor::trackviews_height() convenience function to determine height of trackview area of canvas; use to help fix set_visible_track_count(); don't consider hidden tracks in that function; add "Selected" to that selector menu
2014-07-15 18:09:04 -04:00
6386a5dd7a
up/down scroll buttons on left of summary should move by tracks
2014-07-14 12:36:51 -04:00
62cab525f0
(Mixbus profile only) tentatively remove the Zoom and Cut tools, to save space in the toolbar and reduce some highly redundant functions
2014-07-14 10:08:55 -05:00
492c933a69
fix the visible_tracks_selector to show * when user tweaks a track height. various experimental tweaks to visible_tracks_selector and a new zoom_preset_selector for Mixbus.
2014-07-14 10:08:55 -05:00
b19e1a7985
remove EditAtSelectedMarker for Mixbus, to match mb2. (also fix an existing thinko in the edit point selection actions) (oops: also fix previous track selection fix so that it pays attention to the selection property of the group)
2014-07-14 10:08:55 -05:00
e078102bc6
size various ArdourDropdowns according to the pixel width, not character length, of their various strings
2014-07-09 22:41:29 -04:00
1b4a314d5d
Revert "adjust horizontal-offset for snap/grid dropdown." Wrong fix for the problem.
...
This reverts commit c90d35c4a1
.
2014-07-09 22:39:07 -04:00
c90d35c4a1
adjust horizontal-offset for snap/grid dropdown.
2014-07-10 02:06:51 +02:00
8eeb02fe75
add Editor::edit_mode_strings to allow for i18n; correctly size ArdourDropdowns using longest, translated strings
2014-07-09 16:48:36 -04:00
9f4a00fa89
add mixbus profile which removes the tearoffs
2014-07-09 15:12:05 -05:00
a32dbfa197
Revert "ardour loves narrow screens part one"
...
This reverts commit d3d83eac9d
.
restore full-height of editor-mixer.
2014-07-09 21:47:12 +02:00
0be1555ba6
reduce space around TearOff Tickmarks
2014-07-09 21:47:12 +02:00
12d913893a
shorten grid/snap label "Timecode" -> "TC"
2014-07-09 21:47:12 +02:00
ea311d4379
automatically set ArdourDropdown box width.
...
..according to longest text in English.
2014-07-09 21:47:11 +02:00
419570b740
ardour loves 1024px width screens
...
narrow mode toolbar for screens <= 1024px with
2014-07-09 19:40:43 +02:00
d3d83eac9d
ardour loves narrow screens part one
...
move toolbar box above editor-canvas. Without-editor mixer
there is no change. With Editor-mixer it is now above the
mixer-strip.
This makes the toolbar [almost] fit on 1024px width.
2014-07-09 19:39:52 +02:00
c1166c9f63
fix thinko with split selections. also ignore follow_edits when we are splitting, because the playlist freeze and the newly added regions cause the playhead to jump to unexpected locations
2014-07-08 15:00:19 -05:00
67eaa62ee9
fix build after copy-n-paste/code change collision
2014-07-07 10:21:47 -04:00
d97199088b
some code shuffling to make sure that cut mode always operates at the mouse location, with (maybe) the right regions
2014-07-07 10:13:26 -04:00
64404a16c1
remove all_group_active_button. if you want to operate on all tracks, choose select-all-tracks ( ctrl+t in the mnemonic bindings ). this is more explicit and allows safer use of the deselected-region-under-mouse operations
2014-07-07 08:46:25 -05:00
7ec397c019
add basics of Cut mouse mode, no functionality yet. Icon images are still required
2014-07-07 07:05:43 -04:00
6d97d72999
remove some cruft with previous commits. remove option link-region-and-track-selection since they are now exclusive, and rename select-all-regions to select-all-objects to match the implementation
2014-07-06 14:02:13 -05:00
db60bc86b8
now that track and region selections are mutually exclusive, you need a separate action to select-all-tracks and select-all-regions. also, preserve region selection during a split, iff we are working on a region selection: only add the newly created regions, dont change anything else in the selection; leave that in control of the user
2014-07-06 12:57:36 -05:00
0b38d65dd0
new approach to selections which will help rationalize Split and similar functions. Object and Track selections are now mutually exclusive. a split will happen at (a) selection->regions (b) the intersection of edit_point and selection->tracks or (c) the region under the mouse, IFF nothing else is selected.
2014-07-05 20:47:43 -05:00
ba33c6dab6
revert part of 0f1c7b1d71
which broke lots of stuff based on region selection
2014-07-03 15:51:06 -04:00
0f1c7b1d71
start-range and finish-range should graphically show the range being created. also add bindings for comma and period in addition to existing bindings which require a numpad. the old ones are now alternates. all primary functionality should appear on the qwerrty, and the numpad should be considered an ergonomic redundant alternative if you have one
2014-07-02 17:35:37 -05:00
3dbf37eab7
simplify zooming, remove Editor::clamp_samples_per_pixel(), fix getting "stuck" at max and min zoom levels
2014-07-02 15:53:24 -04:00
4c79d35838
remove unused "zoom range clock" from code as part of zoom simplifications
2014-07-02 14:56:36 -04:00
190542c1d0
splice mode is undefined, undocumented, and buggy. ripple does most of what we want. remove splice for now. leave code because it may be revived later
2014-07-01 16:43:00 -05:00
e5e12acc56
Merge branch 'ripple-mode-cc' into cairocanvas
...
Fix up merge conflicts in
gtk2_ardour/editor_mouse.cc
gtk2_ardour/editor_ops.cc
Also fix up compile errors.
2014-07-01 19:10:47 +01:00
e8fc8aa992
new UI config var to allow playhead to be optionally draggable (default is: yes, it can be dragged)
2014-06-30 16:32:38 -04:00
416abf7f1c
ensure that Editor::entered_track is reset during session deletion to avoid a crash when we explicitly unset it elsewhere
2014-06-30 13:58:46 -04:00
c52cb37bf2
suspend route redisplay for (rec-en, solo, mute and monitor) batch changes
2014-06-29 02:52:56 +02:00
77216ac468
add RAII DisplaySuspender
2014-06-28 23:22:15 +02:00
a3c378cf62
move utility functions into a dedicated namespace
2014-06-25 21:47:54 +02:00
298085eec2
use new ruler dialog class for context clicks on ruler labels area
2014-06-25 15:23:25 -04:00
b43d3fe8d7
add UIConfig variable for lock timer
2014-06-25 11:34:37 -04:00
d5ef8f5f1e
new timer-based GUI locking code
2014-06-25 08:28:36 -04:00
a12f43fa46
add a modal lock dialog for better testing (and someone might find it useful, too)
2014-06-24 10:14:07 -04:00
becf857f48
a whole slew of changes related to centralizing and rationalizing cursor management.
...
Debugging output left in place to help address the reports that will come in as people test this more
2014-06-18 10:24:59 -04:00
nick_m
46c158d8c6
Render tracks and regions to a background image in the editor summary.
...
Connect to editor's SelectionChanged signal to display corresponding region colour change.
2014-06-17 21:44:36 +10:00
f7844f4893
do most of the work related to adding new anchored trim cursors (but debugging/analysis continues)
2014-06-13 18:43:53 -04:00
7a0b2e1c18
fix scrolling behaviour in track headers (event was stolen by rulers because event coordinates made it look as if the event happened there)
2014-06-13 14:27:59 -04:00
79c30ab766
make rulers color-sensitive (e.g. theme manager editable, etc)
2014-06-12 01:07:58 -04:00
b73352880e
use canvas rulers now instead of gtk widgets
...
Some bugs that exist in master are still present.
2014-06-11 23:54:28 -04:00
c56d309bd7
make the icon set selector actually do something
2014-06-10 14:39:28 -04:00
d59d26b89a
change ::get_icon_path() and ::get_icon() to accept an "icon set" name to provide ability to use different sets of icons; use when creating MouseCursors
2014-06-10 14:39:28 -04:00
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
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
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
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
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
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
918a0ac5f9
update x-fade context-menu
2014-05-29 07:49:26 +02:00
f226ed086b
update fade icons
2014-05-28 22:23:42 +02:00
d96a6ed247
fix x-fade icons in context menu
2014-05-28 19:46:31 +02:00
356c1013ae
change return type of Editor::axis_view_from_route()
2014-05-19 14:00:36 -04:00