mirror of
https://github.com/cappuccino/cappuccino.git
synced 2026-10-07 01:18:02 +00:00
Merge pull request #2140 from Dogild/DatePickerStepperValue
Fixed: CPDatePicker value is wrong when making a click on the stepper
This commit is contained in:
commit
57f6ee7f78
1 file changed
+19
-14
@@ -133,10 +133,10 @@ var CPZeroKeyCode = 48,
|
||||
return NO;
|
||||
}
|
||||
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark Setter Getter methods
|
||||
|
||||
|
||||
/*! Set the value of the control
|
||||
@param aDateValue
|
||||
*/
|
||||
@@ -145,6 +145,10 @@ var CPZeroKeyCode = 48,
|
||||
var dateValue = [aDateValue copy];
|
||||
[dateValue _dateWithTimeZone:[_datePicker timeZone]];
|
||||
[_datePickerElementView setDateValue:dateValue];
|
||||
|
||||
// Be sure to update the stepper value. We don't use -setObjectValue to avoid a binding update.
|
||||
if (_currentTextField)
|
||||
_stepper._value = [_currentTextField intValue];
|
||||
}
|
||||
|
||||
/*! Set the widget enabled or not
|
||||
@@ -217,7 +221,7 @@ var CPZeroKeyCode = 48,
|
||||
if ([_currentTextField dateType] != CPAMPMDateType)
|
||||
{
|
||||
// We update the value of the stepper dependind on the textField
|
||||
[_stepper setObjectValue:parseInt([_currentTextField stringValue])];
|
||||
[_stepper setObjectValue:[_currentTextField intValue]];
|
||||
[_stepper setMaxValue:[_currentTextField maxNumber]];
|
||||
[_stepper setMinValue:[_currentTextField minNumber]];
|
||||
|
||||
@@ -245,11 +249,11 @@ var CPZeroKeyCode = 48,
|
||||
[self _selectTextField:_firstTextField];
|
||||
[[self window] makeFirstResponder:_datePicker];
|
||||
|
||||
// This gonna update the dateValue with the binding
|
||||
// Update the dateValue with the binding.
|
||||
if (isUp)
|
||||
[_stepper setDoubleValue:parseInt([_currentTextField objectValue]) + 1];
|
||||
[_stepper setDoubleValue:[_currentTextField intValue] + 1];
|
||||
else
|
||||
[_stepper setDoubleValue:parseInt([_currentTextField objectValue]) - 1];
|
||||
[_stepper setDoubleValue:[_currentTextField intValue] - 1];
|
||||
|
||||
return;
|
||||
}
|
||||
@@ -257,7 +261,7 @@ var CPZeroKeyCode = 48,
|
||||
if ([_currentTextField dateType] != CPAMPMDateType)
|
||||
{
|
||||
// Make sure to get the good value, especially when we reach the maxDate or minDate
|
||||
[sender setDoubleValue:parseInt([_currentTextField objectValue])];
|
||||
[sender setDoubleValue:[_currentTextField intValue]];
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -284,7 +288,7 @@ var CPZeroKeyCode = 48,
|
||||
if (key == CPUpArrowFunctionKey)
|
||||
{
|
||||
[_currentTextField _invalidTimer];
|
||||
[_stepper setDoubleValue:parseInt([_currentTextField objectValue])];
|
||||
[_stepper setDoubleValue:[_currentTextField intValue]];
|
||||
[_stepper performClickUp:self];
|
||||
return YES;
|
||||
}
|
||||
@@ -292,7 +296,7 @@ var CPZeroKeyCode = 48,
|
||||
if (key == CPDownArrowFunctionKey)
|
||||
{
|
||||
[_currentTextField _invalidTimer];
|
||||
[_stepper setDoubleValue:parseInt([_currentTextField objectValue])];
|
||||
[_stepper setDoubleValue:[_currentTextField intValue]];
|
||||
[_stepper performClickDown:self];
|
||||
return YES;
|
||||
}
|
||||
@@ -593,23 +597,23 @@ var CPZeroKeyCode = 48,
|
||||
[date _dateWithTimeZone:[_datePicker timeZone]];
|
||||
|
||||
if (![_textFieldDay isHidden])
|
||||
date.setDate([_textFieldDay stringValue]);
|
||||
date.setDate([_textFieldDay intValue]);
|
||||
|
||||
if (![_textFieldMonth isHidden])
|
||||
date.setMonth(parseInt([_textFieldMonth stringValue]) - 1);
|
||||
date.setMonth([_textFieldMonth intValue] - 1);
|
||||
|
||||
if (![_textFieldYear isHidden])
|
||||
date.setFullYear([_textFieldYear stringValue]);
|
||||
date.setFullYear([_textFieldYear intValue]);
|
||||
|
||||
if (![_textFieldSecond isHidden])
|
||||
date.setSeconds([_textFieldSecond stringValue]);
|
||||
date.setSeconds([_textFieldSecond intValue]);
|
||||
|
||||
if (![_textFieldMinute isHidden])
|
||||
date.setMinutes([_textFieldMinute stringValue]);
|
||||
date.setMinutes([_textFieldMinute intValue]);
|
||||
|
||||
if (![_textFieldHour isHidden])
|
||||
{
|
||||
var hour = parseInt([_textFieldHour stringValue]),
|
||||
var hour = [_textFieldHour intValue],
|
||||
currentHour = parseInt(date.getHours());
|
||||
|
||||
if (hour != currentHour)
|
||||
@@ -1563,6 +1567,7 @@ var CPMonthDateType = 0,
|
||||
[self setStringValue:dateValue.getSeconds().toString()];
|
||||
return;
|
||||
}
|
||||
|
||||
[super setObjectValue:objectValue];
|
||||
break;
|
||||
|
||||
|
||||
Reference in new issue
Block a user