Fixed crash in case there were no selection and you clicked on the date/time controls's arrows. patch by John Drinkwater
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16044 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -141,7 +141,8 @@ TTimeEdit::DrawSeperator(uint32 index)
|
|||||||
in f_sections or the section to the seps left
|
in f_sections or the section to the seps left
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (index == 3) return; // no seperator for am/pm
|
if (index >= 2)
|
||||||
|
return; // no seperator for am/pm
|
||||||
BString text(":");
|
BString text(":");
|
||||||
uint32 sep;
|
uint32 sep;
|
||||||
GetSeperatorWidth(&sep);
|
GetSeperatorWidth(&sep);
|
||||||
@@ -239,6 +240,9 @@ TTimeEdit::SetTo(uint32 hour, uint32 minute, uint32 second)
|
|||||||
void
|
void
|
||||||
TTimeEdit::DoUpPress()
|
TTimeEdit::DoUpPress()
|
||||||
{
|
{
|
||||||
|
if (f_focus == -1)
|
||||||
|
SectionFocus(0);
|
||||||
|
|
||||||
// update displayed value
|
// update displayed value
|
||||||
f_holdvalue += 1;
|
f_holdvalue += 1;
|
||||||
|
|
||||||
@@ -252,6 +256,9 @@ TTimeEdit::DoUpPress()
|
|||||||
void
|
void
|
||||||
TTimeEdit::DoDownPress()
|
TTimeEdit::DoDownPress()
|
||||||
{
|
{
|
||||||
|
if (f_focus == -1)
|
||||||
|
SectionFocus(0);
|
||||||
|
|
||||||
// update display value
|
// update display value
|
||||||
f_holdvalue -= 1;
|
f_holdvalue -= 1;
|
||||||
|
|
||||||
@@ -295,14 +302,14 @@ TTimeEdit::CheckRange()
|
|||||||
value = 0;
|
value = 0;
|
||||||
else if (value < 0)
|
else if (value < 0)
|
||||||
value = 23;
|
value = 23;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1: //minute
|
case 1: //minute
|
||||||
if (value> 59)
|
if (value> 59)
|
||||||
value = 0;
|
value = 0;
|
||||||
else if (value < 0)
|
else if (value < 0)
|
||||||
value = 59;
|
value = 59;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 2: //second
|
case 2: //second
|
||||||
if (value > 59)
|
if (value > 59)
|
||||||
@@ -310,7 +317,7 @@ TTimeEdit::CheckRange()
|
|||||||
else if (value < 0)
|
else if (value < 0)
|
||||||
value = 59;
|
value = 59;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 3:
|
case 3:
|
||||||
// modify hour value to reflect change in am/pm
|
// modify hour value to reflect change in am/pm
|
||||||
@@ -321,10 +328,10 @@ TTimeEdit::CheckRange()
|
|||||||
value -= 12;
|
value -= 12;
|
||||||
if (value == 24) value = 0;
|
if (value == 24) value = 0;
|
||||||
((TDateTimeSection *)f_sections->ItemAt(0))->SetData(value);
|
((TDateTimeSection *)f_sections->ItemAt(0))->SetData(value);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
((TDateTimeSection *)f_sections->ItemAt(f_focus))->SetData(value);
|
((TDateTimeSection *)f_sections->ItemAt(f_focus))->SetData(value);
|
||||||
@@ -541,6 +548,9 @@ TDateEdit::SetTo(uint32 year, uint32 month, uint32 day)
|
|||||||
void
|
void
|
||||||
TDateEdit::DoUpPress()
|
TDateEdit::DoUpPress()
|
||||||
{
|
{
|
||||||
|
if (f_focus == -1)
|
||||||
|
SectionFocus(0);
|
||||||
|
|
||||||
// update displayed value
|
// update displayed value
|
||||||
f_holdvalue += 1;
|
f_holdvalue += 1;
|
||||||
|
|
||||||
@@ -554,6 +564,9 @@ TDateEdit::DoUpPress()
|
|||||||
void
|
void
|
||||||
TDateEdit::DoDownPress()
|
TDateEdit::DoDownPress()
|
||||||
{
|
{
|
||||||
|
if (f_focus == -1)
|
||||||
|
SectionFocus(0);
|
||||||
|
|
||||||
// update display value
|
// update display value
|
||||||
f_holdvalue -= 1;
|
f_holdvalue -= 1;
|
||||||
|
|
||||||
@@ -596,9 +609,9 @@ TDateEdit::CheckRange()
|
|||||||
value = 0;
|
value = 0;
|
||||||
else if (value < 0)
|
else if (value < 0)
|
||||||
value = 11;
|
value = 11;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
|
|
||||||
case 1: //day
|
case 1: //day
|
||||||
{
|
{
|
||||||
uint32 month = ((TDateTimeSection *)f_sections->ItemAt(0))->Data();
|
uint32 month = ((TDateTimeSection *)f_sections->ItemAt(0))->Data();
|
||||||
@@ -609,8 +622,8 @@ TDateEdit::CheckRange()
|
|||||||
value = 1;
|
value = 1;
|
||||||
else if (value < 1)
|
else if (value < 1)
|
||||||
value = daycnt;
|
value = daycnt;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
|
|
||||||
case 2: //year
|
case 2: //year
|
||||||
{
|
{
|
||||||
@@ -618,11 +631,11 @@ TDateEdit::CheckRange()
|
|||||||
value = YEAR_DELTA_MIN;
|
value = YEAR_DELTA_MIN;
|
||||||
else if (value < YEAR_DELTA_MIN)
|
else if (value < YEAR_DELTA_MIN)
|
||||||
value = YEAR_DELTA_MAX;
|
value = YEAR_DELTA_MAX;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
((TDateTimeSection *)f_sections->ItemAt(f_focus))->SetData(value);
|
((TDateTimeSection *)f_sections->ItemAt(f_focus))->SetData(value);
|
||||||
|
|||||||
Reference in New Issue
Block a user