1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-10-25 15:53:52 +02:00

Rewrite many iterations over tracks and channels in various places

This commit is contained in:
Paul Licameli
2018-09-18 12:03:37 -04:00
parent fee0f284fe
commit 968d63d5fd
14 changed files with 137 additions and 267 deletions

View File

@@ -376,30 +376,19 @@ bool SpectrumPrefs::Validate()
void SpectrumPrefs::Rollback()
{
const auto partner =
mWt ?
// Assume linked track is wave or null
static_cast<WaveTrack*>(mWt->GetLink())
: nullptr;
if (mWt) {
if (mOrigDefaulted) {
mWt->SetSpectrogramSettings({});
mWt->SetSpectrumBounds(-1, -1);
if (partner) {
partner->SetSpectrogramSettings({});
partner->SetSpectrumBounds(-1, -1);
auto channels = TrackList::Channels(mWt);
for (auto channel : channels) {
if (mOrigDefaulted) {
channel->SetSpectrogramSettings({});
channel->SetSpectrumBounds(-1, -1);
}
}
else {
SpectrogramSettings *pSettings =
&mWt->GetIndependentSpectrogramSettings();
mWt->SetSpectrumBounds(mOrigMin, mOrigMax);
*pSettings = mOrigSettings;
if (partner) {
pSettings = &partner->GetIndependentSpectrogramSettings();
partner->SetSpectrumBounds(mOrigMin, mOrigMax);
*pSettings = mOrigSettings;
else {
auto &settings =
channel->GetIndependentSpectrogramSettings();
channel->SetSpectrumBounds(mOrigMin, mOrigMax);
settings = mOrigSettings;
}
}
}
@@ -411,9 +400,9 @@ void SpectrumPrefs::Rollback()
const bool isOpenPage = this->IsShown();
if (mWt && isOpenPage) {
mWt->SetDisplay(mOrigDisplay);
if (partner)
partner->SetDisplay(mOrigDisplay);
auto channels = TrackList::Channels(mWt);
for (auto channel : channels)
channel->SetDisplay(mOrigDisplay);
}
if (isOpenPage) {
@@ -430,12 +419,6 @@ void SpectrumPrefs::Preview()
const bool isOpenPage = this->IsShown();
const auto partner =
mWt ?
// Assume linked track is wave or null
static_cast<WaveTrack*>(mWt->GetLink())
: nullptr;
ShuttleGui S(this, eIsSavingToPrefs);
PopulateOrExchange(S);
@@ -443,24 +426,17 @@ void SpectrumPrefs::Preview()
mTempSettings.ConvertToActualWindowSizes();
if (mWt) {
if (mDefaulted) {
mWt->SetSpectrogramSettings({});
// ... and so that the vertical scale also defaults:
mWt->SetSpectrumBounds(-1, -1);
if (partner) {
partner->SetSpectrogramSettings({});
partner->SetSpectrumBounds(-1, -1);
for (auto channel : TrackList::Channels(mWt)) {
if (mDefaulted) {
channel->SetSpectrogramSettings({});
// ... and so that the vertical scale also defaults:
channel->SetSpectrumBounds(-1, -1);
}
}
else {
SpectrogramSettings *pSettings =
&mWt->GetIndependentSpectrogramSettings();
mWt->SetSpectrumBounds(mTempSettings.minFreq, mTempSettings.maxFreq);
*pSettings = mTempSettings;
if (partner) {
pSettings = &partner->GetIndependentSpectrogramSettings();
partner->SetSpectrumBounds(mTempSettings.minFreq, mTempSettings.maxFreq);
*pSettings = mTempSettings;
else {
SpectrogramSettings &settings =
channel->GetIndependentSpectrogramSettings();
channel->SetSpectrumBounds(mTempSettings.minFreq, mTempSettings.maxFreq);
settings = mTempSettings;
}
}
}
@@ -472,9 +448,8 @@ void SpectrumPrefs::Preview()
mTempSettings.ConvertToEnumeratedWindowSizes();
if (mWt && isOpenPage) {
mWt->SetDisplay(WaveTrack::Spectrum);
if (partner)
partner->SetDisplay(WaveTrack::Spectrum);
for (auto channel : TrackList::Channels(mWt))
channel->SetDisplay(WaveTrack::Spectrum);
}
if (isOpenPage) {

View File

@@ -140,12 +140,6 @@ bool WaveformPrefs::Commit()
{
const bool isOpenPage = this->IsShown();
const auto partner =
mWt ?
// Assume linked track is wave or null
static_cast<WaveTrack*>(mWt->GetLink())
: nullptr;
ShuttleGui S(this, eIsGettingFromDialog);
PopulateOrExchange(S);
@@ -153,18 +147,13 @@ bool WaveformPrefs::Commit()
WaveformSettings::Globals::Get().SavePrefs();
if (mWt) {
if (mDefaulted) {
mWt->SetWaveformSettings({});
if (partner)
partner->SetWaveformSettings({});
}
else {
WaveformSettings *pSettings =
&mWt->GetIndependentWaveformSettings();
*pSettings = mTempSettings;
if (partner) {
pSettings = &partner->GetIndependentWaveformSettings();
*pSettings = mTempSettings;
for (auto channel : TrackList::Channels(mWt)) {
if (mDefaulted)
channel->SetWaveformSettings({});
else {
WaveformSettings &settings =
channel->GetIndependentWaveformSettings();
settings = mTempSettings;
}
}
}
@@ -179,9 +168,8 @@ bool WaveformPrefs::Commit()
mTempSettings.ConvertToEnumeratedDBRange();
if (mWt && isOpenPage) {
mWt->SetDisplay(WaveTrack::Waveform);
if (partner)
partner->SetDisplay(WaveTrack::Waveform);
for (auto channel : TrackList::Channels(mWt))
channel->SetDisplay(WaveTrack::Waveform);
}
if (isOpenPage) {