1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-10-19 00:51:12 +02:00

A couple of bug fixes for Quick-Play and simplify defaults

This commit is contained in:
Steve Daulton
2015-05-07 14:34:40 +01:00
parent c487b920ca
commit e9b2d0f02d

View File

@@ -1667,9 +1667,9 @@ AdornedRulerPanel::AdornedRulerPanel(wxWindow* parent,
mIsRecording = false;
mTimelineToolTip = gPrefs->Read(wxT("/QuickPlay/ToolTips"), wxT("Enabled")) == wxT("Enabled");
mPlayRegionDragsSelection = gPrefs->Read(wxT("/QuickPlay/DragSelection"), wxT("Enabled")) == wxT("Enabled");
mQuickPlayEnabled = gPrefs->Read(wxT("/QuickPlay/QuickPlayEnabled"), wxT("Enabled")) == wxT("Enabled");
mTimelineToolTip = gPrefs->Read(wxT("/QuickPlay/ToolTips"), 1L);
mPlayRegionDragsSelection = (gPrefs->Read(wxT("/QuickPlay/DragSelection"), 0L) == 1)? true : false;
mQuickPlayEnabled = gPrefs->Read(wxT("/QuickPlay/QuickPlayEnabled"), 1L);
#if wxUSE_TOOLTIPS
RegenerateTooltips();
@@ -1890,8 +1890,10 @@ void AdornedRulerPanel::OnMouseEvents(wxMouseEvent &evt)
}
if (evt.RightDown()) {
if (evt.RightDown() && !(evt.LeftIsDown())) {
ShowMenu(evt.GetPosition());
if (HasCapture())
ReleaseMouse();
}
if (!mQuickPlayEnabled)
@@ -1936,71 +1938,73 @@ void AdornedRulerPanel::OnMouseEvents(wxMouseEvent &evt)
}
switch (mMouseEventState)
{
case mesNone:
// If close to either end of play region, snap to closest
if (isWithinStart || isWithinEnd) {
if (fabs(mQuickPlayPos - mOldPlayRegionStart) < fabs(mQuickPlayPos - mOldPlayRegionEnd))
if (evt.LeftIsDown()) {
switch (mMouseEventState)
{
case mesNone:
// If close to either end of play region, snap to closest
if (isWithinStart || isWithinEnd) {
if (fabs(mQuickPlayPos - mOldPlayRegionStart) < fabs(mQuickPlayPos - mOldPlayRegionEnd))
mQuickPlayPos = mOldPlayRegionStart;
else
mQuickPlayPos = mOldPlayRegionEnd;
}
break;
case mesDraggingPlayRegionStart:
// Don't start dragging until beyond tollerance initial playback start
if (!mIsDragging && isWithinStart)
mQuickPlayPos = mOldPlayRegionStart;
else
mIsDragging = true;
// avoid accidental tiny selection
if (isWithinEnd)
mQuickPlayPos = mOldPlayRegionEnd;
}
break;
case mesDraggingPlayRegionStart:
// Don't start dragging until beyond tollerance initial playback start
if (!mIsDragging && isWithinStart)
mQuickPlayPos = mOldPlayRegionStart;
else
mIsDragging = true;
// avoid accidental tiny selection
if (isWithinEnd)
mQuickPlayPos = mOldPlayRegionEnd;
mPlayRegionStart = mQuickPlayPos;
if (canDragSel) {
DragSelection();
}
break;
case mesDraggingPlayRegionEnd:
if (!mIsDragging && isWithinEnd)
mQuickPlayPos = mOldPlayRegionEnd;
else
mIsDragging = true;
if (isWithinStart)
mQuickPlayPos = mOldPlayRegionStart;
mPlayRegionEnd = mQuickPlayPos;
if (canDragSel) {
DragSelection();
}
break;
case mesSelectingPlayRegionClick:
// Don't start dragging until mouse is beyond tollerance of initial click.
if (isWithinClick || mLeftDownClick == -1) {
mQuickPlayPos = mLeftDownClick;
mPlayRegionStart = mLeftDownClick;
mPlayRegionEnd = mLeftDownClick;
}
else {
mMouseEventState = mesSelectingPlayRegionRange;
}
break;
case mesSelectingPlayRegionRange:
if (isWithinClick) {
mQuickPlayPos = mLeftDownClick;
}
if (mQuickPlayPos < mLeftDownClick) {
mPlayRegionStart = mQuickPlayPos;
mPlayRegionEnd = mLeftDownClick;
}
else {
if (canDragSel) {
DragSelection();
}
break;
case mesDraggingPlayRegionEnd:
if (!mIsDragging && isWithinEnd)
mQuickPlayPos = mOldPlayRegionEnd;
else
mIsDragging = true;
if (isWithinStart)
mQuickPlayPos = mOldPlayRegionStart;
mPlayRegionEnd = mQuickPlayPos;
mPlayRegionStart = mLeftDownClick;
if (canDragSel) {
DragSelection();
}
break;
case mesSelectingPlayRegionClick:
// Don't start dragging until mouse is beyond tollerance of initial click.
if (isWithinClick || mLeftDownClick == -1) {
mQuickPlayPos = mLeftDownClick;
mPlayRegionStart = mLeftDownClick;
mPlayRegionEnd = mLeftDownClick;
}
else {
mMouseEventState = mesSelectingPlayRegionRange;
}
break;
case mesSelectingPlayRegionRange:
if (isWithinClick) {
mQuickPlayPos = mLeftDownClick;
}
if (mQuickPlayPos < mLeftDownClick) {
mPlayRegionStart = mQuickPlayPos;
mPlayRegionEnd = mLeftDownClick;
}
else {
mPlayRegionEnd = mQuickPlayPos;
mPlayRegionStart = mLeftDownClick;
}
if (canDragSel) {
DragSelection();
}
break;
}
if (canDragSel) {
DragSelection();
}
break;
}
if (evt.LeftUp())
@@ -2162,7 +2166,7 @@ void AdornedRulerPanel::ShowMenu(const wxPoint & pos)
void AdornedRulerPanel::OnToggleQuickPlay(wxCommandEvent& evt)
{
mQuickPlayEnabled = (mQuickPlayEnabled)? false : true;
gPrefs->Write(wxT("/QuickPlay/QuickPlayEnabled"), mQuickPlayEnabled ? wxT("Enabled") : wxT("Disabled"));
gPrefs->Write(wxT("/QuickPlay/QuickPlayEnabled"), mQuickPlayEnabled);
gPrefs->Flush();
RegenerateTooltips();
}
@@ -2170,7 +2174,7 @@ void AdornedRulerPanel::OnToggleQuickPlay(wxCommandEvent& evt)
void AdornedRulerPanel::OnSyncSelToQuickPlay(wxCommandEvent& evt)
{
mPlayRegionDragsSelection = (mPlayRegionDragsSelection)? false : true;
gPrefs->Write(wxT("/QuickPlay/DragSelection"), mPlayRegionDragsSelection ? wxT("Enabled") : wxT("Disabled"));
gPrefs->Write(wxT("/QuickPlay/DragSelection"), mPlayRegionDragsSelection);
gPrefs->Flush();
}
@@ -2207,7 +2211,7 @@ void AdornedRulerPanel::HandleSnapping()
void AdornedRulerPanel::OnTimelineToolTips(wxCommandEvent& evt)
{
mTimelineToolTip = (mTimelineToolTip)? false : true;
gPrefs->Write(wxT("/QuickPlay/ToolTips"), mTimelineToolTip ? wxT("Enabled") : wxT("Disabled"));
gPrefs->Write(wxT("/QuickPlay/ToolTips"), mTimelineToolTip);
gPrefs->Flush();
#if wxUSE_TOOLTIPS
RegenerateTooltips();