1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-04-30 15:49:41 +02:00

12472 Commits

Author SHA1 Message Date
Paul Licameli
9b1901c971 A convenience function in LabelTrackShifter eliminates repetition 2020-09-21 17:31:48 +01:00
Paul Licameli
3fcda6fc3c Fix sync-lock behavior of time shift, don't move too many other tracks 2020-09-21 11:32:19 -04:00
James Crook
e3bd5cfa61 Add: Help button for "Copying stereo audio into a mono track error" 2020-09-21 15:32:56 +01:00
James Crook
ec48a3b5a9 Fix export URL 2020-09-21 15:17:52 +01:00
James Crook
6149b57dc0 Bug 2515 - Exporting to a disk with insufficient space gives messages that are not user-friendly or helpful 2020-09-21 15:11:39 +01:00
James Crook
0b633c564a Bug 2515 - (FFmpeg) Exporting to a disk with insufficient space gives messages that are not user-friendly or helpful
FFmpeg now gives the correct message.
Bug not quite closed yet, as other exports are only part done.
2020-09-21 13:05:11 +01:00
James Crook
6d1b3854e9 Bug 2515 - Help buttons for 'Unable to export'
These now all have help buttons to page Error:_Unable_to_export
And they have an error code such as OGG:355 so that (later) on that page
we can describe them better - if they ever happen.
2020-09-21 12:45:43 +01:00
James Crook
6a237d67f1 Bug 2539 - Residual wording changes to warning messages.
QA asked for these improved wordings so that it is clearer to users what is going on.
2020-09-21 10:47:06 +01:00
Paul Licameli
c48b813795 Bug2464: Shifting a label should shift wave clips too...
... Implemented non-invasively just with overrides in LabelTrackShifter

Exceeding the bug description: it's also possible to drag just the subset of
labels that fall partly or wholly in the selected region.

I expect details of the new behavior may be debated.
2020-09-20 01:01:17 -04:00
Paul Licameli
583d347ae0 Some last changes to TimeShiftHandle anticipating LabelTrack needs 2020-09-20 00:33:28 -04: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
69d5c1b12e Last virtuals, for horizontal shift; no more use of Track subclasses 2020-09-20 00:26:48 -04:00
Paul Licameli
3b903ee77d TimeShiftHandle doesn't need Track subclasses 2020-09-20 00:26:48 -04:00
Paul Licameli
9d52100f5c Remove TimeShiftHandle members no longer used (an much setup) 2020-09-20 00:26:48 -04:00
Paul Licameli
3009bdde2c Another TrackShifter method eliminates a use of capturedClipArray 2020-09-20 00:26:48 -04:00
Paul Licameli
0f040f99dd TrackShifter abstracts the moving of clips between tracks 2020-09-20 00:26:47 -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
32c0d462b7 Another method of TrackShifter to test before attachment of intervals 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
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
d3ab8b7f76 Compatibility sanity check for inserting clips into a WaveTrack...
... And don't move from the shared pointer argument
2020-09-19 19:16:47 -04:00
Paul Licameli
2b06115b32 Clip Left/Right general enough for note tracks: one less TypeSwitch! 2020-09-19 19:16:46 -04:00
Paul Licameli
1a11b81deb Simplify dragging clip when mouse is over other track...
... than the one clicked in; and the clip can't fit into the new track, but it
can still slide horizontally within its track.

This eliminates a redundant use of WaveClip::Offset().
2020-09-19 19:16:46 -04:00
Paul Licameli
958cb1b4fd Move some Time Shift logic into new TrackShifter classes...
... There is an AttachedVirtualFunction which is a factory for TrackShifter,
and subclasses of it appropriate for different kinds of tracks.

The logic to choose the intervals of tracks that move is replicated in them.
The old logic is not yet removed.

Enough logic is moved into them, so that snapping in TimeShift, and DoClipMove
in ClipMenus.cpp, make no direct special use of classes WaveTrack and WaveClip.

Not yet defining a new subclass for shifting of labels -- that will be the last
step.
2020-09-19 19:16:46 -04:00
Paul Licameli
5591e1da0a Eliminate some uses of ClipMoveState::capturedClip 2020-09-19 19:16:46 -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
bc7f527a3b Lower mCapturedTrack into ClipMoveState, simplify one member function 2020-09-19 19:16:45 -04:00
Paul Licameli
329221b392 Lower more into Init(); ClipMenus uses ClipMoveState opaquely 2020-09-19 19:16:45 -04:00
Paul Licameli
00f761eb5e TrackShifters responsible for snapping; remove a TrackList::Visit...
... Also dependency of TimeShiftHandle on LabelTrack, lately added, is removed
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
1501f09bf1 An argument of AddClipsToCaptured overload always true, so simplify 2020-09-19 13:23:47 -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
b75ab214cf Snap does not depend on subclasses of Track 2020-09-19 13:23:46 -04:00
Paul Licameli
4653b5ed3d TrackClip moved to TimeShiftHandle; Snap doesn't use Track subclasses 2020-09-19 13:23:46 -04:00
Paul Licameli
dc9eaf6a3a One less delegating ctor of SnapManager, move code to TimeShiftHandle 2020-09-19 13:23:46 -04:00
Paul Licameli
aa4b808714 More constructors for SnapManager...
one taking candidate list directly, the others delegating to it.

Some members removed, some in-class initializers.

The special constructor for TimeShift only has extra arguments.  It will go
away.
2020-09-19 13:23:46 -04:00
Paul Licameli
6337e1ccf4 Reordered SnapManager ctor arguments, added AudacityProject & 2020-09-19 13:23:46 -04:00
Paul Licameli
6510b859f3 Define new virtual functions Track::GetIntervals (const and non-const) 2020-09-19 13:23:45 -04:00
Leland Lucius
c60bf1c994 Fix build 2020-09-18 09:55:49 -05:00
Leland Lucius
6749d5b6fa Bug 1215 - Incorrect splits produced by Change Tempo with leading whitespace 2020-09-18 09:24:45 -05:00
Leland Lucius
3605d73d12 Bug 2534 - Change Speed merges selected clip with adjacent clips 2020-09-18 09:00:50 -05:00
Leland Lucius
5bca69ca31 Fixes for bugs 2534 and 1215 2020-09-17 23:22:00 -05:00
Paul Licameli
9e41e8fa7d Delay closing of databse at close some more...
... So that you don't get an error message, when you close a project without
saving changes, with the mixer board open
2020-09-17 22:26:25 -04:00
Paul Licameli
1d8cbf2798 Now cure the error dialogs alluded to in past commit 2020-09-14 15:16:54 -04:00