... Because LabelTrack, unlike the others, will also need a mouse y coordinate.
The extra information is present when using the time-shift tool but not when
using the items in ClipMenus.
... for shifting of clips among tracks
But this (temporarily) breaks the behavior of dragging back to the original
clip without first releasing the mouse
... Preserving existing behavior, but maybe these cases should be reconsidered
and made more uniform. (e.g. should hit test on NoteTrack sometimes miss, as
with WaveTrack?)
Also made details of WaveTrack hit testing consistent with what ClipMenus does
... in TimeShiftHandle. They do nothing useful yet, but responsibilities
will shift into them.
TypeSwitch is avoided and the subclasses are defined in appropriate places
for dependency management, thanks to AttachedVirtualFunction.
... Implemented giving the Multi-view choice the special implementation that it
needs.
The "multi" choice is always last in the preference and in the command editing
drop-down menus, but that could be changed.
Multi-view should not be treated as another registered kind of sub-view on par
with others. This would complicate the implementation in worse ways.
... Do not call Autosave (which might fail) when recovering from exceptions in
recording, but rely on the last good Autosave that happened during recording.
If dropout labels are needed, then immediately modify the undo history item, but
we can accept it if that modification fails.
Also, be sure NOT to skip Autosave in all other places that push the undo
history. Make Autosave the default unless otherwise specified.
Finally removed one unnecessary call to Autosave.
This removes all of the OnDemand code embedded throughout
the main codebase. Individual files related specifically
to OD have been left in place, but removed from the build.
... in four cases; not in some other .cpp file.
This is another move that causes the generated graph to reflect dependencies
correctly.
This fixes other large, hidden cycles that involved PrefsDialog.cpp: there was
link dependency on that when PrefsPanel.h was used for the base class. No
longer.
Also cycles involving TrackPanel.cpp, which contained the default
implementations for TrackPanelCell and related abstract base classes.
... and recompute popup menu tables that depend on preferences.
The code for labels in the rulers was unsatisfactory because
(1) rescanning and editing the post-translation strings is a hack to avoid, and
(2) separating the hints like "Shift-Left-Click" with a tab character made them
invisible on Mac. So instead, append strings like " (Shift-Left-Click)"
... because the two macros have the same expansion, and are both checked for
in the --keyword arguments passed to msgfmt by locale/update_po_files.sh.
This commit makes ONLY such changes, and comments in Internat.h. It is big
but quite harmless.
The intention is to introduce a type distinction in a later release, by defining
XXO differently. XXO is used where & characters in strings (for hotkeys of menu
items or control prompts) are permitted, XO where not.
... Moved many misplaced ones, which msgfmt would not have extracted into
audacity.pot.
Duplicated some of them, to appear with related but distinct msgids.
Added a few new comments.
Deleted one that was no longer needed in ProjectManager.cpp.
... Now they are treated more alike:
Each is shown or hidden (not enabled or disabled) as the corresponding sub-view
of the wave track is shown or not.
Each has separator lines above and below.
They are shown (one or the other or both) after the choices for sub-views, and
not near the bottom of the menu.
This makes the TCP menu one item shorter in the default case that you view only
waveform.