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