MCPcopy Create free account
hub / github.com/audacity/audacity / OnToolChanged

Method OnToolChanged

src/SpectralDataDialog.cpp:379–409  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

377}
378
379void SpectralDataDialogWorker::OnToolChanged(ProjectSettingsEvent evt)
380{
381 if (evt.type == ProjectSettingsEvent::ChangedTool) {
382 // Find not Get to avoid creating the dialog if not yet done
383 if (auto pDialog = SpectralDataDialog::Find(&mProject);
384 pDialog && pDialog->IsShown())
385 pDialog->DoToolChanged();
386 else {
387 // Dialog is hidden, or not yet constructed
388 using Type = std::underlying_type_t<decltype(ToolCodes::brushTool)>;
389 constexpr auto value = static_cast<Type>(ToolCodes::brushTool);
390
391 auto &projectSettings = ProjectSettings::Get( mProject );
392 if (projectSettings.GetTool() == value) {
393 auto oldValue = evt.oldValue;
394 if (oldValue + 1 == value)
395 // continue tool rotation
396 wxTheApp->CallAfter([&]{ projectSettings.SetTool(
397 (value + 1) % ToolCodes::numTools); });
398 else if ((oldValue + ToolCodes::numTools - 1 ) % ToolCodes::numTools
399 == value)
400 // continue backwards tool rotation
401 wxTheApp->CallAfter([&]{ projectSettings.SetTool(
402 (value + ToolCodes::numTools - 1 ) % ToolCodes::numTools); });
403 else
404 // restore old tool value
405 wxTheApp->CallAfter([&]{ projectSettings.SetTool(oldValue); });
406 }
407 }
408 }
409}
410
411static bool HasVisibleSpectralView(WaveTrack *wt)
412{

Callers

nothing calls this directly

Calls 5

FindFunction · 0.85
GetFunction · 0.85
IsShownMethod · 0.80
SetToolMethod · 0.80
DoToolChangedMethod · 0.45

Tested by

no test coverage detected