mirror of
https://github.com/cookiengineer/audacity
synced 2025-06-16 08:09:32 +02:00
Ctrl-mousewheel in vertical ruler of waveform dB view varies bottom of scale...
... provided the bottom is visible
This commit is contained in:
parent
2dc824ba46
commit
141d93bbc0
@ -6126,10 +6126,29 @@ void TrackPanel::HandleWheelRotation(wxMouseEvent & event)
|
||||
Track *const pTrack = FindTrack(event.m_x, event.m_y, true, false, &rect);
|
||||
if (pTrack && event.m_x >= GetVRulerOffset()) {
|
||||
if (pTrack->GetKind() == Track::Wave) {
|
||||
HandleWaveTrackVZoom(
|
||||
mTracks, rect, event.m_y, event.m_y,
|
||||
static_cast<WaveTrack*>(pTrack), false, (event.m_wheelRotation < 0),
|
||||
true);
|
||||
WaveTrack *const wt = static_cast<WaveTrack*>(pTrack);
|
||||
if (event.CmdDown() &&
|
||||
wt->GetWaveformSettings().scaleType == WaveformSettings::stLogarithmic) {
|
||||
// Vary the bottom of the dB scale, but only if the midline is visible
|
||||
float min, max;
|
||||
wt->GetDisplayBounds(&min, &max);
|
||||
if (min < 0.0 && max > 0.0) {
|
||||
WaveformSettings &settings = wt->GetIndependentWaveformSettings();
|
||||
if (event.m_wheelRotation < 0)
|
||||
// Zoom out
|
||||
settings.NextLowerDBRange();
|
||||
else
|
||||
settings.NextHigherDBRange();
|
||||
}
|
||||
else
|
||||
return;
|
||||
}
|
||||
else {
|
||||
HandleWaveTrackVZoom(
|
||||
mTracks, rect, event.m_y, event.m_y,
|
||||
wt, false, (event.m_wheelRotation < 0),
|
||||
true);
|
||||
}
|
||||
UpdateVRuler(pTrack);
|
||||
Refresh(false);
|
||||
MakeParentModifyState(true);
|
||||
|
@ -126,10 +126,25 @@ void WaveformSettings::ConvertToActualDBRange()
|
||||
wxArrayString codes;
|
||||
GUIPrefs::GetRangeChoices(NULL, &codes);
|
||||
long value = 0;
|
||||
codes[dBRange].ToLong(&value);
|
||||
codes[std::max(0, std::min(int(codes.size()) - 1, dBRange))]
|
||||
.ToLong(&value);
|
||||
dBRange = int(value);
|
||||
}
|
||||
|
||||
void WaveformSettings::NextLowerDBRange()
|
||||
{
|
||||
ConvertToEnumeratedDBRange();
|
||||
++dBRange;
|
||||
ConvertToActualDBRange();
|
||||
}
|
||||
|
||||
void WaveformSettings::NextHigherDBRange()
|
||||
{
|
||||
ConvertToEnumeratedDBRange();
|
||||
--dBRange;
|
||||
ConvertToActualDBRange();
|
||||
}
|
||||
|
||||
namespace
|
||||
{
|
||||
wxArrayString &scaleNamesArray()
|
||||
|
@ -47,6 +47,8 @@ public:
|
||||
|
||||
void ConvertToEnumeratedDBRange();
|
||||
void ConvertToActualDBRange();
|
||||
void NextLowerDBRange();
|
||||
void NextHigherDBRange();
|
||||
|
||||
enum ScaleType {
|
||||
stLinear,
|
||||
|
Loading…
x
Reference in New Issue
Block a user