mirror of
https://github.com/cookiengineer/audacity
synced 2025-06-25 16:48:44 +02:00
More complete fix for bug 1060 issues
This commit is contained in:
parent
c43936f630
commit
78d0347be2
@ -724,6 +724,11 @@ wxString Effect::GetDurationFormat()
|
|||||||
return mDurationFormat;
|
return mDurationFormat;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wxString Effect::GetSelectionFormat()
|
||||||
|
{
|
||||||
|
return GetActiveProject()->GetSelectionFormat();
|
||||||
|
}
|
||||||
|
|
||||||
void Effect::SetDuration(double seconds)
|
void Effect::SetDuration(double seconds)
|
||||||
{
|
{
|
||||||
if (seconds < 0.0)
|
if (seconds < 0.0)
|
||||||
|
@ -146,6 +146,7 @@ class AUDACITY_DLL_API Effect : public wxEvtHandler,
|
|||||||
virtual double GetDefaultDuration();
|
virtual double GetDefaultDuration();
|
||||||
virtual double GetDuration();
|
virtual double GetDuration();
|
||||||
virtual wxString GetDurationFormat();
|
virtual wxString GetDurationFormat();
|
||||||
|
virtual wxString GetSelectionFormat(); // time format in Selection toolbar
|
||||||
virtual void SetDuration(double duration);
|
virtual void SetDuration(double duration);
|
||||||
|
|
||||||
virtual bool Apply();
|
virtual bool Apply();
|
||||||
|
@ -38,7 +38,7 @@
|
|||||||
// Define keys, defaults, minimums, and maximums for the effect parameters
|
// Define keys, defaults, minimums, and maximums for the effect parameters
|
||||||
//
|
//
|
||||||
// Name Type Key Def Min Max Scale
|
// Name Type Key Def Min Max Scale
|
||||||
Param( Count, int, XO("Count"), 10, 1, INT_MAX, 1 );
|
Param( Count, int, XO("Count"), 1, 1, INT_MAX, 1 );
|
||||||
|
|
||||||
BEGIN_EVENT_TABLE(EffectRepeat, wxEvtHandler)
|
BEGIN_EVENT_TABLE(EffectRepeat, wxEvtHandler)
|
||||||
EVT_TEXT(wxID_ANY, EffectRepeat::OnRepeatTextChange)
|
EVT_TEXT(wxID_ANY, EffectRepeat::OnRepeatTextChange)
|
||||||
@ -46,7 +46,7 @@ END_EVENT_TABLE()
|
|||||||
|
|
||||||
EffectRepeat::EffectRepeat()
|
EffectRepeat::EffectRepeat()
|
||||||
{
|
{
|
||||||
repeatCount = 10;
|
repeatCount = DEF_Count;
|
||||||
|
|
||||||
SetLinearEffectFlag(true);
|
SetLinearEffectFlag(true);
|
||||||
}
|
}
|
||||||
@ -175,16 +175,17 @@ void EffectRepeat::PopulateOrExchange(ShuttleGui & S)
|
|||||||
{
|
{
|
||||||
IntegerValidator<int> vldRepeatCount(&repeatCount);
|
IntegerValidator<int> vldRepeatCount(&repeatCount);
|
||||||
vldRepeatCount.SetRange(MIN_Count, 2147483647 / mProjectRate);
|
vldRepeatCount.SetRange(MIN_Count, 2147483647 / mProjectRate);
|
||||||
mRepeatCount = S.AddTextBox(_("Number of times to repeat:"), wxT(""), 12);
|
mRepeatCount = S.AddTextBox(_("Number of repeats to add:"), wxT(""), 12);
|
||||||
mRepeatCount->SetValidator(vldRepeatCount);
|
mRepeatCount->SetValidator(vldRepeatCount);
|
||||||
}
|
}
|
||||||
S.EndHorizontalLay();
|
S.EndHorizontalLay();
|
||||||
|
|
||||||
S.StartHorizontalLay(wxCENTER, true);
|
S.StartMultiColumn(1, wxCENTER);
|
||||||
{
|
{
|
||||||
|
mCurrentTime = S.AddVariableText(_("Current selection length: dd:hh:mm:ss"));
|
||||||
mTotalTime = S.AddVariableText(_("New selection length: dd:hh:mm:ss"));
|
mTotalTime = S.AddVariableText(_("New selection length: dd:hh:mm:ss"));
|
||||||
}
|
}
|
||||||
S.EndHorizontalLay();
|
S.EndMultiColumn();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool EffectRepeat::TransferDataToWindow()
|
bool EffectRepeat::TransferDataToWindow()
|
||||||
@ -215,22 +216,32 @@ bool EffectRepeat::TransferDataFromWindow()
|
|||||||
void EffectRepeat::DisplayNewTime()
|
void EffectRepeat::DisplayNewTime()
|
||||||
{
|
{
|
||||||
long l;
|
long l;
|
||||||
|
wxString str;
|
||||||
mRepeatCount->GetValue().ToLong(&l);
|
mRepeatCount->GetValue().ToLong(&l);
|
||||||
|
|
||||||
if (l > 0)
|
NumericConverter nc(NumericConverter::TIME,
|
||||||
{
|
GetSelectionFormat(),
|
||||||
|
mT1 - mT0,
|
||||||
|
mProjectRate);
|
||||||
|
|
||||||
|
str = _("Current selection length: ") + nc.GetString();
|
||||||
|
|
||||||
|
mCurrentTime->SetLabel(str);
|
||||||
|
mCurrentTime->SetName(str); // fix for bug 577 (NVDA/Narrator screen readers do not read static text in dialogs)
|
||||||
|
|
||||||
|
if (l > 0) {
|
||||||
|
EnableApply(true);
|
||||||
repeatCount = l;
|
repeatCount = l;
|
||||||
|
|
||||||
NumericConverter nc(NumericConverter::TIME,
|
nc.SetValue((mT1 - mT0) * (repeatCount + 1));
|
||||||
_("hh:mm:ss"),
|
str = _("New selection length: ") + nc.GetString();
|
||||||
(mT1 - mT0) * (repeatCount + 1),
|
|
||||||
mProjectRate);
|
|
||||||
|
|
||||||
wxString str = _("New selection length: ") + nc.GetString();
|
|
||||||
|
|
||||||
mTotalTime->SetLabel(str);
|
|
||||||
mTotalTime->SetName(str); // fix for bug 577 (NVDA/Narrator screen readers do not read static text in dialogs)
|
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
str = _("Warning: No repeats.");
|
||||||
|
EnableApply(false);
|
||||||
|
}
|
||||||
|
mTotalTime->SetLabel(str);
|
||||||
|
mTotalTime->SetName(str); // fix for bug 577 (NVDA/Narrator screen readers do not read static text in dialogs)
|
||||||
}
|
}
|
||||||
|
|
||||||
void EffectRepeat::OnRepeatTextChange(wxCommandEvent & WXUNUSED(evt))
|
void EffectRepeat::OnRepeatTextChange(wxCommandEvent & WXUNUSED(evt))
|
||||||
|
@ -59,6 +59,7 @@ private:
|
|||||||
int repeatCount;
|
int repeatCount;
|
||||||
|
|
||||||
wxTextCtrl *mRepeatCount;
|
wxTextCtrl *mRepeatCount;
|
||||||
|
wxStaticText *mCurrentTime;
|
||||||
wxStaticText *mTotalTime;
|
wxStaticText *mTotalTime;
|
||||||
|
|
||||||
DECLARE_EVENT_TABLE();
|
DECLARE_EVENT_TABLE();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user