1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-05-06 14:52:34 +02:00

8056 Commits

Author SHA1 Message Date
Paul Licameli
852c07bc58 Eliminate GetActiveProject from WaveTrack.cpp 2020-01-07 16:16:18 -05:00
Paul Licameli
7bce0a643b Bug2281: Revert changes to FreqWindow.cpp at f0b7583, don't crash 2020-01-07 13:11:24 -05:00
SteveDaulton
8b1ecf03a4 Fix bug 2280 2020-01-07 16:47:50 +00:00
Paul Licameli
6a0aed3884 Eliminate uses of GetActiveProject in src/effects 2020-01-06 14:14:21 -05:00
Paul Licameli
e2adccb461 Don't use GetActiveProject drawing pan, gain, velocity sliders 2020-01-06 14:14:21 -05:00
Paul Licameli
d244b55709 Don't use GetActiveProject when drawing label track 2020-01-06 14:14:21 -05:00
Paul Licameli
a93c4472f5 TrackList has back-pointer to project...
... and Track::GetOwner() is publicized, so that now you can find the
the AudacityProject, if any, that owns a given Track; this will help eliminate
some uses of GetActiveProject
2020-01-06 14:14:21 -05:00
Paul Licameli
c7984a2c83 Fix mistaken usage of ProjectSettings 2020-01-06 13:48:51 -05:00
Paul Licameli
ed9871d6b5 Eliminate GetActiveProject in EffectUI.cpp...
... This changes visible behavior.

If a realtime effect was open (say, AUGraphicEQ on Mac), and there were multiple
projects, then the window was associated with one of the projects.

But the "Apply" button could apply the effect to the active project, even if
that was not the associated one.  But the associated project was queried for
the existence of a selection.

Now, EffectUIHost::OnApply consistently examines and changes only the associated
project, even if it is not active.

You have to close the window and reopen it with the other project if you really
want to change the other.

You can't have two realtime effects open at once, even if for different
projects.  To overcome that limitation, we would have to make
RealtimeEffectsManager store state per-project, not globally.
2020-01-06 11:30:48 -05:00
Paul Licameli
723c5256c0 Don't call GetActiveProject when constructing EffectUIHost...
... relying on guarantees in the previous commit
2020-01-06 11:30:47 -05:00
Paul Licameli
bb26b2f2c4 Require a ProjectWindow as ancestor of effect dialog...
... by passing parent as reference, not pointer, and testing in the dialog
factory function.

This is important so that we know the lifetime of an effect dialog, even when
it is non-modal, is bounded by the lifetime of the associated project.
2020-01-06 11:30:47 -05:00
Leland Lucius
2803bc30a6 Fix Windows build
2>c:\users\yam\documents\aud\audacity\src\effects\effectui.h(215): warning C4099: 'CommandContext': type name first seen using 'class' now seen using 'struct'

...

2>BatchCommands.obj : error LNK2019: unresolved external symbol "bool __cdecl EffectUI::DoEffect(class wxString const &,class CommandContext const &,unsigned int)" (?DoEffect@EffectUI@@YA_NABVwxString@@ABVCommandContext@@I@Z) referenced in function "public: bool __thiscall MacroCommands::ApplyEffectCommand(class wxString const &,class TranslatableString const &,class TaggedIdentifier<struct CommandIdTag,0> const &,class wxString const &,class CommandContext const &)" (?ApplyEffectCommand@MacroCommands@@QAE_NABVwxString@@ABVTranslatableString@@ABV?$TaggedIdentifier@UCommandIdTag@@$0A@@@0ABVCommandContext@@@Z)

2>PluginMenus.obj : error LNK2001: unresolved external symbol "bool __cdecl EffectUI::DoEffect(class wxString const &,class CommandContext const &,unsigned int)" (?DoEffect@EffectUI@@YA_NABVwxString@@ABVCommandContext@@I@Z)

2>TrackMenus.obj : error LNK2001: unresolved external symbol "bool __cdecl EffectUI::DoEffect(class wxString const &,class CommandContext const &,unsigned int)" (?DoEffect@EffectUI@@YA_NABVwxString@@ABVCommandContext@@I@Z)
2>C:\Users\Yam\Documents\aud\audacity\win\Debug\Audacity.exe : fatal error LNK1120: 1 unresolved externals
2020-01-06 00:00:14 -06:00
Paul Licameli
91515520bc Remove the nullary override of Effect::Preview 2020-01-05 19:59:30 -05:00
Paul Licameli
8bbc22e47a Cut and paste; EffectManager doesn't need EffectUI; cycle of 3 broken! 2020-01-05 16:11:55 -05:00
Paul Licameli
91c45dd32a Move static EffectManager::DoEffect into new namespace 2020-01-05 16:11:55 -05:00
Paul Licameli
23a0206d2a Remove CreateUI; pass dialog factory to effect client instead 2020-01-05 16:11:55 -05:00
Paul Licameli
738c5c5e90 Remove Effect::PromptUser...
... it was only a thin wrapper of ShowInterface when not overridden, not
clearly serving a distinct purpose.
2020-01-05 16:11:55 -05:00
Paul Licameli
fb678c0eb8 Remove EffectHostInterface::Apply so Effect doesn't use EffectManager 2020-01-05 16:11:54 -05:00
Paul Licameli
8c4d8db133 Move classes EffectUIHost and EffectPanel to EffectUI.cpp 2020-01-05 16:11:54 -05:00
Paul Licameli
91536d734f Rename EffectRack.* as EffectUI 2020-01-05 16:11:54 -05:00
Paul Licameli
129c9deb99 Remove GetActiveProject from EffectRack...
... and make one EffectRack window per project
2020-01-04 16:36:55 -05:00
Paul Licameli
390d833229 Remove one more GetActiveProject in a menu command handler 2020-01-04 14:00:32 -05:00
Paul Licameli
f0b75832b4 Remove uses of GetActiveProject in some dialogs 2020-01-04 13:55:34 -05:00
Paul Licameli
f924df16f8 Eliminate calls to GetActiveProject in src/prefs 2020-01-04 13:19:06 -05:00
Paul Licameli
c3b32d1106 Remove GetActiveProject where finding track panel button tooltips 2020-01-04 12:59:37 -05:00
Paul Licameli
275797bbb4 Fewer uses of ::GetActiveProject()...
... where we have a window, ascend the chain of parent pointers instead to
find the project window.
2020-01-04 12:59:37 -05:00
Paul Licameli
9029eee5bd Remove GetActiveProject from SelectHandle 2020-01-04 12:59:37 -05:00
Paul Licameli
02e5b8db07 Remove unnecessary members of CommandHandler...
... see also commit 02d5e6c
2020-01-04 12:59:37 -05:00
Paul Licameli
c9a9c06bd0 Pass AudacityProject * into preference panel factories 2020-01-04 12:37:57 -05:00
Paul Licameli
72f66b7096 Mac: don't crash in Preferences when there is no project window...
... and you press Preview in Spectrogram preferences.

And complete null checks on GetActiveProject calls in src/prefs.

And in fact, don't even show the useless Preview button when there is no
project.
2020-01-04 12:14:47 -05:00
Paul Licameli
92b857d551 Remove unnecessary const_cast 2020-01-04 11:59:44 -05:00
Paul Licameli
dffe3155b0 Pass AudacityProject & into ButtonHandle::Tip 2020-01-04 11:27:28 -05:00
Paul Licameli
f64bc5a829 Pass non-const AudacityProject to HitTest::Preview...
... because that will be needed for elimination of some GetActiveProject()
calls.  Because some overrides need to find the focused track, but that may
mutate the project by setting the focused track when it wasn't yet defined.
2020-01-04 09:40:33 -05:00
Leland Lucius
04dcc8994d Remove leftover debugging code 2020-01-04 00:43:52 -06:00
Paul Licameli
aef4b80d53 a null check on GetActiveProject() 2020-01-03 20:14:19 -05:00
Paul Licameli
973f15c5ac Move ProjectWindowBase to new files...
... So that you can use GetProject without other linkage dependencies
2020-01-03 17:58:21 -05:00
Paul Licameli
be24e6b5a1 Separate class ProjectWindowBase...
... which adds a project association to wxFrame, and nothing else
2020-01-03 17:54:44 -05:00
Paul Licameli
db6265d4e7 Fix build 2020-01-03 10:14:12 -05:00
Paul Licameli
4a5abc9e41 Pass AudacityProject* to more methods of UIHandle 2020-01-03 10:09:46 -05:00
Paul Licameli
a769cdfe1d MacroCommandDialog remembers reference to project 2020-01-02 14:04:53 -05:00
Paul Licameli
c39718fa1f MacroCommands remembers a reference to project...
... Eliminating several GetActiveProject calls, notably including those where
we construct a CommandContext for executing commands.
2020-01-02 13:58:49 -05:00
Paul Licameli
f85f4db704 Remove use of GetActiveProject in MacroCommandsDialog...
... instead pass into it the project pointer already given to ctor of
MacrosWindow
2020-01-02 13:52:26 -05:00
Paul Licameli
e2539be53b WaveTrack::SyncLockAdjust doesn't need a factory to make a temp track 2020-01-02 13:40:06 -05:00
Paul Licameli
914bb1dc95 Remove some uses of GetActiveProject in src/effects 2020-01-02 13:32:04 -05:00
Paul Licameli
83f7bc6b5c Eliminate some uses of GetActiveProject...
... where there was already a project at hand
2020-01-02 13:15:14 -05:00
Paul Licameli
d23569ca10 Construct Exporter with project pointer, fewer GetActiveProject calls 2020-01-02 13:13:48 -05:00
Paul Licameli
ece7bd888d Eliminate GetActiveProject in TimerRecordDialog 2020-01-02 13:11:17 -05:00
Paul Licameli
7592227f14 Remove uses of GetActiveProject in import 2020-01-02 13:11:17 -05:00
Paul Licameli
a1eeb528b7 Lift a call to GetActiveProject into ScriptCommandRelay...
... Don't do it at the low level of construction of a command object.  Do it
only at the highest possible level, where an external scripting module or
Nyquist calls into the command framework.  Pass the project pointer down where
it is needed.
2020-01-02 13:05:09 -05:00
Paul Licameli
fce85d0e56 Don't use GetActiveProject in track panel pop-up menu handlers 2020-01-01 22:06:16 -05:00