1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-08-01 16:39:30 +02:00

Rearrange the setting of project snap-to...

... Just one low-level function to simply set the variable, and one
high-level function that also pushes notifications.  The danger of infinite
recursion in the toolbar code, as in the previous commit, doesn't exist here.
This commit is contained in:
Paul Licameli 2019-05-27 10:00:30 -04:00
parent 35892fc869
commit c2d57d9e9b
3 changed files with 12 additions and 10 deletions

View File

@ -1554,7 +1554,9 @@ int AudacityProject::AS_GetSnapTo()
void AudacityProject::AS_SetSnapTo(int snap) void AudacityProject::AS_SetSnapTo(int snap)
{ {
mSnapTo = snap; auto &project = *this;
SetSnapTo( snap );
// LLL: TODO - what should this be changed to??? // LLL: TODO - what should this be changed to???
// GetCommandManager()->Check(wxT("Snap"), mSnapTo); // GetCommandManager()->Check(wxT("Snap"), mSnapTo);
@ -1564,6 +1566,8 @@ void AudacityProject::AS_SetSnapTo(int snap)
SnapSelection(); SnapSelection();
RedrawProject(); RedrawProject();
SelectionBar::Get( project ).SetSnapTo(snap);
} }
const NumericFormatSymbol & AudacityProject::AS_GetSelectionFormat() const NumericFormatSymbol & AudacityProject::AS_GetSelectionFormat()
@ -3496,7 +3500,7 @@ bool AudacityProject::HandleXMLTag(const wxChar *tag, const wxChar **attrs)
} }
else if (!wxStrcmp(attr, wxT("snapto"))) { else if (!wxStrcmp(attr, wxT("snapto"))) {
SetSnapTo(wxString(value) == wxT("on") ? true : false); AS_SetSnapTo(wxString(value) == wxT("on") ? true : false);
} }
else if (!wxStrcmp(attr, wxT("selectionformat"))) else if (!wxStrcmp(attr, wxT("selectionformat")))
@ -3513,7 +3517,7 @@ bool AudacityProject::HandleXMLTag(const wxChar *tag, const wxChar **attrs)
} // while } // while
if (longVpos != 0) { if (longVpos != 0) {
// PRL: It seems this must happen after SetSnapTo // PRL: It seems this must happen after AS_SetSnapTo
viewInfo.vpos = longVpos; viewInfo.vpos = longVpos;
mbInitializingScrollbar = true; mbInitializingScrollbar = true;
} }
@ -5175,9 +5179,7 @@ void AudacityProject::OnAudioIONewBlockFiles(const AutoSaveFile & blockFileLog)
void AudacityProject::SetSnapTo(int snap) void AudacityProject::SetSnapTo(int snap)
{ {
auto &project = *this; mSnapTo = snap;
AS_SetSnapTo(snap);
SelectionBar::Get( project ).SetSnapTo(snap);
} }
int AudacityProject::GetSnapTo() const int AudacityProject::GetSnapTo() const

View File

@ -250,7 +250,7 @@ void QuickFixDialog::OnFix(wxCommandEvent &event)
// preference dialogs. // preference dialogs.
if( Str == "/SnapTo" ) if( Str == "/SnapTo" )
{ {
pProject->SetSnapTo( 0 ); pProject->AS_SetSnapTo( 0 );
} }
else else
{ {

View File

@ -883,19 +883,19 @@ void OnZeroCrossing(const CommandContext &context)
void OnSnapToOff(const CommandContext &context) void OnSnapToOff(const CommandContext &context)
{ {
auto &project = context.project; auto &project = context.project;
project.SetSnapTo(SNAP_OFF); project.AS_SetSnapTo(SNAP_OFF);
} }
void OnSnapToNearest(const CommandContext &context) void OnSnapToNearest(const CommandContext &context)
{ {
auto &project = context.project; auto &project = context.project;
project.SetSnapTo(SNAP_NEAREST); project.AS_SetSnapTo(SNAP_NEAREST);
} }
void OnSnapToPrior(const CommandContext &context) void OnSnapToPrior(const CommandContext &context)
{ {
auto &project = context.project; auto &project = context.project;
project.SetSnapTo(SNAP_PRIOR); project.AS_SetSnapTo(SNAP_PRIOR);
} }
void OnSelToStart(const CommandContext &context) void OnSelToStart(const CommandContext &context)