1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-11-21 08:27:13 +01:00
Commit Graph

366 Commits

Author SHA1 Message Date
David Bailes
9e51dba3db Bug 2215 - Cut does not work when in Pause mode
In bool MenuManager::TryToMakeActionAllowed(), there's the condition:
(MissingFlags & enabler.possibleFlags()) == MissingFlags

that is, the missing flags has to be a subset of the possible flags.
For cut in pause mode, this condition is not met for the enabler stopIfPaused, because MissingFlags also includes the CutCopyAvailableFlag, which is not one of the enabler's possible flags.
It is not sensible for the missing flags to have to be a subset of the possible flags, because for this to work, for each enabler the possible flags would have to include other flags that could need fixing by other enablers.

Fix:
1. Change the condition to the intersection of the missing flags and possible flags is non-empty.
2. In CutCopyAvailableFlag, remove the condition !AudioIOBusyPred(). If this is present, then due to the first change, paused audio could cause all audio to be selected even when there was a selection. The commands for which this flag is used are cut and copy, and they already have AudioIONotBusy flags, so this change should not affect previous behaviour.
2019-10-02 10:39:15 +01:00
James Crook
c65eb8fea5 Bug 2193 - Remove Tracks in Tracks menu is grayed-out if there is no selection 2019-08-17 18:52:46 +01:00
Paul Licameli
51f2578e0a Bug2184: should not grey Effect menu when selection is point 2019-08-03 12:03:46 -04:00
Paul Licameli
22f21b3245 Enh2049 residual: do it without making a new dependency cycle...
... Do not include CommonCommandFlags in Menus.cpp, but PluginMenus is
high-level enough to do the special case changing of flags.

see commit 0bd1beae9a
2019-07-29 15:30:06 -04:00
James Crook
0bd1beae9a Bug 2049 - ENH: Noise Reduction error message for no selection is unhelpful 2019-07-29 08:29:48 +01:00
James Crook
43af7b3265 Bug 240 - Time track selected by itself can't be removed with Tracks>Remove Tracks 2019-07-17 15:58:42 +01:00
Paul Licameli
d6317ae6af Merge LinkingHtmlWindow into HelpSystem...
... they cooperated closely in a cycle of two not worth breaking
2019-07-10 10:34:04 -04:00
Paul Licameli
fa6b5dea88 Generalize WaveTrackView::GetDisplay to return multiple values...
... something better might be done in Nyquist Lisp, where we still pass a
single value
2019-07-10 10:19:04 -04:00
Paul Licameli
6ccca16a75 Move display type from WaveTrack to WaveTrackView 2019-07-09 20:09:59 -04:00
Paul Licameli
eb4eba6325 AdornedRulerPanel updates its play region in idle time...
... Eliminating TP_DisplaySelection and making ProjectWindow independent of
AdornedRulerPanel
2019-07-03 23:38:33 -04:00
Paul Licameli
acfd2b7010 TrackFocus is a new attached object...
... removing the need to use TrackPanel to get and set the focused track

ProjectAudioManager loses its direct dependency on TrackPanel
2019-07-03 19:10:21 -04:00
Paul Licameli
02075d5b43 Remove some fetches of TrackPanel 2019-07-03 18:42:33 -04:00
Paul Licameli
b6cd9a2b36 DoPlayStopSelect into ProjectAudioManager; remove button push-down...
... which was redundant with what happens in the yield to idle events in
ProjectAudioManager::Stop.

This removes direct dependency of ProjectAudioManager on ControlToolBar.

And remove another #include we don't need
2019-07-03 17:21:55 -04:00
Paul Licameli
2c840a75c5 Remove short functions from namespace TransportActions 2019-07-03 16:52:19 -04:00
Paul Licameli
13c2e4de0f Move members from ControlToolBar into class ProjectAudioManager...
... and ControlToolBar is included in fewer places
2019-07-03 16:52:16 -04:00
Paul Licameli
977b46cda2 Move CanStopAudioStream into ProjectAudioManager 2019-07-03 16:34:47 -04:00
Paul Licameli
a470ba00b0 ProjectAudioManager does not depend directly on AdornedRulerPanel 2019-07-03 16:34:46 -04:00
Paul Licameli
52ff705b0d ScrollIntoView out of TrackPanel, into ProjectWindow 2019-07-03 13:32:32 -04:00
Paul Licameli
e2362bc25a Move project status string management to new attached object class 2019-07-02 21:01:34 -04:00
Paul Licameli
2a06b10884 Make objects attached to AudacityProject non-copyable...
... except for Tags; also some uses of final and explicit

This caught a mistake in Scrubbing.cpp
2019-07-02 19:51:24 -04:00
Paul Licameli
a5364119eb Eliminate many calls to RedrawProject & TrackPanel::Refresh()...
... Let the window respond to an undo manager event instead, whenever there
is a push or modify

Maybe this makes a few unnecessary redraws that did not happen before.  If
that is important, then we should figure out how to put the logic for eliding
the redraw into ProjectWindow, and the extra information needed for the
decision into the events, but not make intrusions in other code all over the
place.
2019-07-02 08:17:01 -04:00
Paul Licameli
5ab3986261 Pop up the Stop button in idle time...
... This also causes a momentary push-down of the stop button, which happens
in ControlToolBar::StopPlaying, really to be visible, as was apparently the
intent.

For instance, when playing, then clicking in the quick-play ruler to restart
the play elsewhere.
2019-07-01 22:51:13 -04:00
Paul Licameli
830f772625 Update Play button appearance in idle time...
... so most calls to ControlToolBar::SetPlay are removed.  One remains in
TransportMenus, which will not be problematic for untangling dependencies,
and one remains where the toolbar remakes its own buttons.

But the routines that start and stop the streams, importantly, don't use it.
2019-07-01 21:25:50 -04:00
Paul Licameli
8b549ea07f Another overload of ControlToolBar::OnRecord taking bool...
... so that it's called directly where needed without the roundabout of
SetInt in an event, and there is no checking of the state of a button first
2019-07-01 19:48:52 -04:00
Paul Licameli
f77ddc43d9 Smuggle AudacityProject into LabelTrackView::GetSelectedIndex() ...
... and eliminate some more calls to GetActiveProject
2019-06-28 18:09:29 -04:00
Paul Licameli
97f48c4326 Bug2133: Trim and Silence commands should not affect Note tracks 2019-06-28 10:51:41 -04:00
Paul Licameli
af791d3d0b Redo previous commit's fix...
... the bug was introduced at e581fa60d9

I think it is better to make TrackPanel::OnTrackMenu crash-proof when
called with the default argument
2019-06-28 10:50:51 -04:00
David Bailes
af74ff626e Track menu: opening track menu by pressing shift+M causes crash
Fix:
Call TrackPanel::OnTrackMenu(Track *t) with a track pointer.

Query:
Is there any reason why this function's parameter has a default value of NULL?
2019-06-28 10:09:11 +01:00
Paul Licameli
868481b686 GetSceenEndTime out of TrackPanel 2019-06-26 21:25:15 -04:00
Paul Licameli
d29d10d712 GetTracksUsableArea() out of TrackPanel 2019-06-26 21:25:15 -04:00
Paul Licameli
2257fa642a Remove TrackPanel::EnsureVisible; TrackList sends an event instead 2019-06-25 10:54:55 -04:00
Paul Licameli
7fc3c5e7a7 Move namespace TransportMenus into ProjectAudioManager.cpp ...
... not the best thing for the long term, but hidden dependencies on
TransportMenus.cpp are eliminated

Tying CommonCommandFlags again into the big component, which is now 26
2019-06-25 00:14:53 -04:00
Paul Licameli
c6478f43af Lower ViewActions as member functions of ProjectWindow 2019-06-25 00:14:53 -04:00
Paul Licameli
b6077fd3cd Lower DoReloadPreferences into PrefsDialog.cpp 2019-06-25 00:14:53 -04:00
Paul Licameli
8db51416bc Lower DoEditMetadata into Exporter 2019-06-25 00:14:53 -04:00
Paul Licameli
684a948fd2 Don't reuse EditActions::DoUndo...
... instead, when timer recording is cancelled, don't push state and pop it
at once, but just roll it back.
2019-06-25 00:14:52 -04:00
Paul Licameli
f8c40dc8e7 Move DoHelpWelcome out of HelpMenus 2019-06-25 00:14:52 -04:00
Paul Licameli
2d11e6bda9 Move DoImportMidi out of FileMenus 2019-06-25 00:14:52 -04:00
Paul Licameli
8eca219d57 Separate versions of DoImportMIDI that do and don't assume a project 2019-06-25 00:14:52 -04:00
Paul Licameli
ff2cf496cd Move DoEffect out of PluginMenus 2019-06-25 00:14:52 -04:00
Paul Licameli
691eee681c Move DoAudacityCommand out of PluginMenus 2019-06-25 00:14:52 -04:00
Paul Licameli
1c588fa014 Move enum into EffectManager...
... tying Effect into a cycle of 3 with EffectManager and EffectRack, which is
only revealing the true dependencies
2019-06-25 00:12:45 -04:00
Paul Licameli
d2f386a329 Move functions into new file TrackUtilities.cpp ...
... so that other files do not have link dependency on TrackMenus.cpp

The new project enlargest the big s.c.c. by 1, to 25
2019-06-24 23:13:22 -04:00
Paul Licameli
02e620d35f Move functions into new file SelectUtilities.cpp ...
... so that other files do not have link dependency on SelectMenus.cpp

The new file enlarges the big s.c.c. to 24
2019-06-24 23:06:44 -04:00
Paul Licameli
f1dcc156a0 Remove unnecessary inclusions of Menus.h 2019-06-24 22:45:33 -04:00
Paul Licameli
ab5a98003a Free EffectManager and EffectRack from the big s.c.c. ...
... though in a small cycle with each other, by moving RealtimeEffectManager to
new files, which remain in the big component.

Net loss of 1, the big component now has 27 files
2019-06-24 00:49:12 -04:00
Paul Licameli
04a3ed9d04 Separate class RealtimeEffectManager 2019-06-24 00:37:02 -04:00
Paul Licameli
4339c0df68 Move height calculation utilities to class TrackView 2019-06-22 21:46:32 -04:00
Paul Licameli
a6e2ca0aa8 Move some enums into new files WaveTrackViewConstants.* ...
... freeing TracksPrefs from the second largest s.c.c. which is now only 20
2019-06-22 21:46:32 -04:00
Paul Licameli
5240c42cb6 No more LabelTrack::HasSelection...
... eliminating the last dependency of LabelTrack.cpp on LabelTrackView.h
2019-06-20 11:47:55 -04:00