mirror of
https://github.com/cookiengineer/audacity
synced 2025-11-16 22:23:53 +01:00
Bug1933: commit 2c28af05e8 needs null checks
This commit is contained in:
@@ -1072,7 +1072,7 @@ void TrackPanel::OnMouseEvent(wxMouseEvent & event)
|
|||||||
const auto foundCell = FindCell(event.m_x, event.m_y);
|
const auto foundCell = FindCell(event.m_x, event.m_y);
|
||||||
const auto t = FindTrack( foundCell.pCell.get() );
|
const auto t = FindTrack( foundCell.pCell.get() );
|
||||||
if ( t )
|
if ( t )
|
||||||
EnsureVisible(t.get());
|
EnsureVisible(t.get());
|
||||||
} );
|
} );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -192,8 +192,10 @@ UIHandle::Result StretchHandle::Drag
|
|||||||
const wxMouseEvent &event = evt.event;
|
const wxMouseEvent &event = evt.event;
|
||||||
const int x = event.m_x;
|
const int x = event.m_x;
|
||||||
|
|
||||||
Track *clickedTrack =
|
Track *clickedTrack;
|
||||||
static_cast<CommonTrackPanelCell*>(evt.pCell.get())->FindTrack().get();
|
if (evt.pCell)
|
||||||
|
clickedTrack =
|
||||||
|
static_cast<CommonTrackPanelCell*>(evt.pCell.get())->FindTrack().get();
|
||||||
|
|
||||||
if (clickedTrack == NULL && mpTrack != NULL)
|
if (clickedTrack == NULL && mpTrack != NULL)
|
||||||
clickedTrack = mpTrack.get();
|
clickedTrack = mpTrack.get();
|
||||||
|
|||||||
@@ -178,7 +178,8 @@ UIHandle::Result EnvelopeHandle::Click
|
|||||||
const ViewInfo &viewInfo = pProject->GetViewInfo();
|
const ViewInfo &viewInfo = pProject->GetViewInfo();
|
||||||
const auto pTrack = static_cast<Track*>(evt.pCell.get());
|
const auto pTrack = static_cast<Track*>(evt.pCell.get());
|
||||||
|
|
||||||
if (pTrack->GetKind() == Track::Wave) {
|
if (pTrack &&
|
||||||
|
pTrack->GetKind() == Track::Wave) {
|
||||||
WaveTrack *const wt = static_cast<WaveTrack*>(pTrack);
|
WaveTrack *const wt = static_cast<WaveTrack*>(pTrack);
|
||||||
if (wt->GetDisplay() != WaveTrack::Waveform)
|
if (wt->GetDisplay() != WaveTrack::Waveform)
|
||||||
return Cancelled;
|
return Cancelled;
|
||||||
@@ -203,7 +204,8 @@ UIHandle::Result EnvelopeHandle::Click
|
|||||||
std::make_unique< EnvelopeEditor >( *clickedEnvelope, true );
|
std::make_unique< EnvelopeEditor >( *clickedEnvelope, true );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (pTrack->GetKind() == Track::Time)
|
else if (pTrack &&
|
||||||
|
pTrack->GetKind() == Track::Time)
|
||||||
{
|
{
|
||||||
TimeTrack *const tt = static_cast<TimeTrack*>(pTrack);
|
TimeTrack *const tt = static_cast<TimeTrack*>(pTrack);
|
||||||
if (!mEnvelope)
|
if (!mEnvelope)
|
||||||
|
|||||||
@@ -837,34 +837,36 @@ UIHandle::Result SelectHandle::Drag
|
|||||||
return RefreshNone;
|
return RefreshNone;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( auto clickedTrack =
|
if (evt.pCell) {
|
||||||
static_cast<CommonTrackPanelCell*>(evt.pCell.get())->FindTrack() ) {
|
if ( auto clickedTrack =
|
||||||
// Handle which tracks are selected
|
static_cast<CommonTrackPanelCell*>(evt.pCell.get())->FindTrack() ) {
|
||||||
Track *sTrack = pTrack.get();
|
// Handle which tracks are selected
|
||||||
Track *eTrack = clickedTrack.get();
|
Track *sTrack = pTrack.get();
|
||||||
auto trackList = pProject->GetTracks();
|
Track *eTrack = clickedTrack.get();
|
||||||
auto pMixerBoard = pProject->GetMixerBoard();
|
auto trackList = pProject->GetTracks();
|
||||||
if ( sTrack && eTrack && !event.ControlDown() ) {
|
auto pMixerBoard = pProject->GetMixerBoard();
|
||||||
auto &selectionState = pProject->GetSelectionState();
|
if ( sTrack && eTrack && !event.ControlDown() ) {
|
||||||
selectionState.SelectRangeOfTracks
|
auto &selectionState = pProject->GetSelectionState();
|
||||||
( *trackList, *sTrack, *eTrack, pMixerBoard );
|
selectionState.SelectRangeOfTracks
|
||||||
|
( *trackList, *sTrack, *eTrack, pMixerBoard );
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef EXPERIMENTAL_SPECTRAL_EDITING
|
||||||
|
#ifndef SPECTRAL_EDITING_ESC_KEY
|
||||||
|
if (mFreqSelMode == FREQ_SEL_SNAPPING_CENTER &&
|
||||||
|
!viewInfo.selectedRegion.isPoint())
|
||||||
|
MoveSnappingFreqSelection
|
||||||
|
(pProject, viewInfo, y, mRect.y, mRect.height, pTrack.get());
|
||||||
|
else
|
||||||
|
#endif
|
||||||
|
if (pProject->GetTracks()->Lock(mFreqSelTrack) == pTrack)
|
||||||
|
AdjustFreqSelection(
|
||||||
|
static_cast<WaveTrack*>(pTrack.get()),
|
||||||
|
viewInfo, y, mRect.y, mRect.height);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
AdjustSelection(pProject, viewInfo, x, mRect.x, clickedTrack.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef EXPERIMENTAL_SPECTRAL_EDITING
|
|
||||||
#ifndef SPECTRAL_EDITING_ESC_KEY
|
|
||||||
if (mFreqSelMode == FREQ_SEL_SNAPPING_CENTER &&
|
|
||||||
!viewInfo.selectedRegion.isPoint())
|
|
||||||
MoveSnappingFreqSelection
|
|
||||||
(pProject, viewInfo, y, mRect.y, mRect.height, pTrack.get());
|
|
||||||
else
|
|
||||||
#endif
|
|
||||||
if (pProject->GetTracks()->Lock(mFreqSelTrack) == pTrack)
|
|
||||||
AdjustFreqSelection(
|
|
||||||
static_cast<WaveTrack*>(pTrack.get()),
|
|
||||||
viewInfo, y, mRect.y, mRect.height);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
AdjustSelection(pProject, viewInfo, x, mRect.x, clickedTrack.get());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return RefreshNone
|
return RefreshNone
|
||||||
|
|||||||
@@ -431,6 +431,8 @@ UIHandle::Result TimeShiftHandle::Click
|
|||||||
const ViewInfo &viewInfo = pProject->GetViewInfo();
|
const ViewInfo &viewInfo = pProject->GetViewInfo();
|
||||||
|
|
||||||
const auto pTrack = std::static_pointer_cast<Track>(evt.pCell);
|
const auto pTrack = std::static_pointer_cast<Track>(evt.pCell);
|
||||||
|
if (!pTrack)
|
||||||
|
return RefreshCode::Cancelled;
|
||||||
|
|
||||||
TrackList *const trackList = pProject->GetTracks();
|
TrackList *const trackList = pProject->GetTracks();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user