1
0
mirror of https://github.com/cookiengineer/audacity synced 2026-01-02 06:08:44 +01:00
Commit Graph

92 Commits

Author SHA1 Message Date
Vitaly Sverchinsky
70a7238ee6 Wave track affordances 2021-07-16 05:56:27 -04:00
Paul Licameli
e653b4aaf8 Eliminate Experimental.h, configure compile options instead...
... This makes it impossible to forget to include the EXPERIMENTAL definitions
(such as when cutting and pasting code) and so get unintended quiet changes of
behavior.

The EXPERIMENTAL flags are now specified instead in new file Experimental.cmake
2021-04-27 12:40:07 -04:00
Paul Licameli
8e28a257a5 Bug2588: Amend the fix at 3c76cea to be safe during append-record 2020-11-24 13:35:42 -05:00
Paul Licameli
3c76cea190 Bug2588: Click to join clips shouldn't depend on channel visibility 2020-11-19 21:32:59 -05:00
Paul Licameli
9d6cfcc746 WaveTrackView::BuildSubViews can be simplified...
... The setting of scale type now happens in the default constructor of
WaveformSettings, which calls LoadPrefs.

Since creation of WaveformSettings is always forced, we don't need the
distinction between WaveTrack::GetWaveformSettings and
WaveTrack::GetIndependentWaveformSettings.

That distinction was more analogy with the handling of SpectrogramSettings that
we don't need now.
2020-10-10 11:27:06 -04:00
Paul Licameli
2b542bf734 Move TrackShifter subclasses each to its own new source file...
... These do not require header files; they are tiny proto-plugins that work
by registration of AttachedVirtualFunction overrides at startup.

Dependency may go from them to TrackView subclasses but not back; so in
principle a reduced Audacity without time-shift could be linked that still uses
the TrackView subclasses.

But other work to make the hit test for the Time Shift tool registrable would
have to precede that.
2020-09-21 17:31:48 +01:00
Paul Licameli
6e0b5b690a More control over HitTest behavior moved into the Track Shifter classes 2020-09-20 00:31:39 -04:00
Paul Licameli
f204ee3192 Always pass ViewInfo to TrackShiftHandle::HitTest 2020-09-20 00:30:07 -04:00
Paul Licameli
637ce894c1 Pass project to TrackShifter factory, which LabelTrackShifter will need 2020-09-20 00:30:06 -04:00
Paul Licameli
14dc5af223 Pass optional extra information into TrackShifter::HitTest ...
... 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.
2020-09-20 00:30:01 -04:00
Paul Licameli
3009bdde2c Another TrackShifter method eliminates a use of capturedClipArray 2020-09-20 00:26:48 -04:00
Paul Licameli
c98285c544 New method of TrackShifter, simplify ClipMoveState::DoSlideHorizontal...
... Also the clips to shift within a WaveTrack are tested all at once, more
simply
2020-09-20 00:26:47 -04:00
Paul Licameli
764773479e Another method of TrackShifter removes a TypeSwitch in Time Shift 2020-09-20 00:26:47 -04:00
Paul Licameli
32c0d462b7 Another method of TrackShifter to test before attachment of intervals 2020-09-20 00:26:47 -04:00
Paul Licameli
716008e293 TrackShifter handles removal and reinsertion of clips 2020-09-20 00:26:47 -04:00
Paul Licameli
633b2e28bc Different procedure, same results, to find corresponding tracks...
... for shifting of clips among tracks

But this (temporarily) breaks the behavior of dragging back to the original
clip without first releasing the mouse
2020-09-20 00:24:30 -04:00
Paul Licameli
4f159a7629 New method of TrackShifter moves a calculation out of ClipMenus 2020-09-19 19:16:45 -04:00
Paul Licameli
eb22892064 TrackShifters decide what parts move or stay fixed...
... for now redundantly with the older logic.

Also shorten a function name to Init
2020-09-19 19:16:43 -04:00
Paul Licameli
c279fb6588 Choose track or clip shifting behavior without a TypeSwitch...
... 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
2020-09-19 13:23:47 -04:00
Paul Licameli
8f8c20ac80 TrackShifters can classify track intervals as fixed or not 2020-09-19 13:23:47 -04:00
Paul Licameli
d8a894b95b Define TrackShifter, subclasses, factory method; collect them...
... 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.
2020-09-19 13:23:47 -04:00
Paul Licameli
c7896a3656 Bug2493, Enh2460: Multi-view option in Tracks preferences & macros...
... 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.
2020-09-10 15:28:28 -04:00
Paul Licameli
42d99db8b8 Revert "Bug 2493 - No command for setting multi-view"
This reverts commit 7e573b9b2f.
2020-09-10 13:51:38 -04:00
James Crook
7e573b9b2f Bug 2493 - No command for setting multi-view
Bug 2460 - Enh: Can't select "Multi-view" as default view mode in Tracks preferences

This fixes both.
2020-09-09 17:35:39 +01:00
Yuri Chornoivan
d1ada5f08c Fix minor typos 2020-04-11 10:06:24 +01:00
Paul Licameli
e4d5eefee0 A tooltip for the sub-view rearranging cursor 2020-02-20 13:25:03 -05:00
Paul Licameli
ab4751d092 Remove some unused things 2020-02-14 09:43:55 -05:00
Paul Licameli
2ec2ad378d Break dependency cycle introduced at a69fba9 2020-01-19 14:36:28 -05:00
Paul Licameli
7cff170cf7 Sub-view objects report their complete type, not just an enum value 2020-01-18 20:28:53 -05:00
Paul Licameli
36aad4d1c6 Don't hard-code the exhaustive list of sub-view types...
... in Wave track context menu and SetTrackVisualsCommand

Instead, discover them through a registry.

This eliminates some duplication of string constants and prepares for
non-intrusive generalization to more kinds of sub-views.

This makes the command agnostic about which subview types are known, but the
context menu still has special case treatment for Spectrogram Settings and
Wave Colors.
2020-01-18 20:26:12 -05:00
Paul Licameli
fb8ba0ce43 Some briefer type aliases for wave track display type 2020-01-18 19:35:17 -05:00
Paul Licameli
000d63c95e Widen the hot zone for sub-view rearrangement...
... so it's wider than the close button
2020-01-17 16:14:23 -05:00
Paul Licameli
f10b303279 A close box button for sub-views 2020-01-17 16:10:46 -05:00
Paul Licameli
0f3f13502c Fix hot zones of sub-view cursors...
which got broken at 876cd92ed3

And remove duplicate function
2020-01-17 16:04:45 -05:00
Paul Licameli
851b49d912 Avoid churn of handles for sub-view adjustment and rearrangement 2020-01-17 15:53:33 -05:00
Paul Licameli
b45e3e8aac Separate default waveform scale choice in Tracks preferences...
... Some complications in handling correct migration of preferences from
config files in older versions
2020-01-17 12:28:52 -05:00
Paul Licameli
6c3731061f Switch priority of adjust and rearrange hit tests for sub-views 2020-01-17 11:03:25 -05:00
Paul Licameli
6fd29ad863 Restrict y coords of the hot zone for the new sub-view rearrangement 2020-01-16 15:01:52 -05:00
Paul Licameli
a95838a3e8 Better cursors for sub-view rearrangement 2020-01-16 12:06:59 -05:00
Paul Licameli
a1ef73398b Implement click and drag to rearrange sub-view permutation...
... The hot zone is 15 pixels wide at the left of the track contents, and the
cursor is a hand.  Those particular choices can be easily amended.
2020-01-15 13:50:28 -05:00
Paul Licameli
1fa41808c2 Some refactoring of SubViewAdjustHandle 2020-01-15 13:44:10 -05:00
Paul Licameli
94af81b9f7 Fix Ubuntu build 2020-01-15 11:08:17 -05:00
Paul Licameli
9e0372cbea Bold, clickable, butting clip boundaries also in spectrum view 2020-01-14 15:16:30 -05:00
Paul Licameli
97b7572504 Stroke clip edges in spectrum views too, improving split appearance 2020-01-14 14:37:54 -05:00
Paul Licameli
d28967b7ad Bug2275 residual: don't get into state where you can't select audio...
... if you enter multi-view, then (try to) toggle both sub-views off.

Now instead, the second toggling will have no effect.
2020-01-09 15:15:11 -05:00
Paul Licameli
dd0e41048f Bug2282 residual: Partition sub-view heights 1:1 not 2:1...
... when doing steps to reproduce in that bug report
2020-01-09 15:15:10 -05:00
Paul Licameli
8fa01eceb4 Bugs 2282, 2275: crashes in multi-view...
... when you shrink a sub-view then toggle it, or toggle all views off then
exit multi-view

Fix it by making GetSubViews more robust to contents of mPlacements
2020-01-09 15:15:04 -05:00
Paul Licameli
d01c24d4d6 Revert "Bug 2282 - Multi-view: Array out of bounds exception (crash)"
This reverts commit e047c07a90.
2020-01-09 15:12:00 -05:00
Paul Licameli
da2f5491ae Revert "Bug 2275 - Crash when unchecking Multi-view with neither of the views checked"
This reverts commit 57ff92b20c.
2020-01-09 15:12:00 -05:00
Paul Licameli
d50dae4dd2 Bug2279 fix reimplemented...
... Don't hard-code the number of sub-views as two.

This modifies the fix at commit 596fd7c02f
2020-01-09 14:01:12 -05:00