Title: [119580] trunk/Source/WebCore
Revision
119580
Author
[email protected]
Date
2012-06-06 03:26:18 -0700 (Wed, 06 Jun 2012)

Log Message

[Form] Changes for InputNumber type
https://bugs.webkit.org/show_bug.cgi?id=88394

Reviewed by Kent Tamura.

This patch changes codes for consitency of InputNumber usage for
reducing size of patch when we change InputNumber type alias from
double to Decimal.

No new tests. This patch doesn't change behavior.

* html/BaseDateAndTimeInputType.cpp:
(WebCore::BaseDateAndTimeInputType::serializeWithComponents): Fixed parameter type for getAllowedValueStep.
* html/InputType.cpp:
(WebCore::InputType::minimum): Fixed return value type to InputNumber.
(WebCore::InputType::maximum): ditto.
* html/MonthInputType.cpp:
(WebCore::MonthInputType::defaultValueForStepUp): Fix return value type to InputNumber.
(WebCore::MonthInputType::parseToNumber): ditto.
* html/NumberInputType.cpp:
(WebCore::NumberInputType::setValueAsDouble): Removed extra convertDoubleToInputNumber.
* html/StepRange.cpp:
(WebCore::StepRange::alignValueForStep): Use roundByStep for code sharing.
(WebCore::StepRange::clampValue): ditto.
(WebCore::StepRange::roundByStep): Added.
* html/StepRange.h:
(StepRange): Added a declaration of roundByStep.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (119579 => 119580)


--- trunk/Source/WebCore/ChangeLog	2012-06-06 10:24:47 UTC (rev 119579)
+++ trunk/Source/WebCore/ChangeLog	2012-06-06 10:26:18 UTC (rev 119580)
@@ -1,3 +1,33 @@
+2012-06-06  Yoshifumi Inoue  <[email protected]>
+
+        [Form] Changes for InputNumber type
+        https://bugs.webkit.org/show_bug.cgi?id=88394
+
+        Reviewed by Kent Tamura.
+
+        This patch changes codes for consitency of InputNumber usage for
+        reducing size of patch when we change InputNumber type alias from
+        double to Decimal.
+
+        No new tests. This patch doesn't change behavior.
+
+        * html/BaseDateAndTimeInputType.cpp:
+        (WebCore::BaseDateAndTimeInputType::serializeWithComponents): Fixed parameter type for getAllowedValueStep.
+        * html/InputType.cpp:
+        (WebCore::InputType::minimum): Fixed return value type to InputNumber.
+        (WebCore::InputType::maximum): ditto.
+        * html/MonthInputType.cpp:
+        (WebCore::MonthInputType::defaultValueForStepUp): Fix return value type to InputNumber.
+        (WebCore::MonthInputType::parseToNumber): ditto.
+        * html/NumberInputType.cpp:
+        (WebCore::NumberInputType::setValueAsDouble): Removed extra convertDoubleToInputNumber.
+        * html/StepRange.cpp:
+        (WebCore::StepRange::alignValueForStep): Use roundByStep for code sharing.
+        (WebCore::StepRange::clampValue): ditto.
+        (WebCore::StepRange::roundByStep): Added.
+        * html/StepRange.h:
+        (StepRange): Added a declaration of roundByStep.
+
 2012-06-06  Michael BrĂ¼ning  <[email protected]>
 
         [Qt] Fix harmattan builds broken by r119247.

Modified: trunk/Source/WebCore/html/BaseDateAndTimeInputType.cpp (119579 => 119580)


--- trunk/Source/WebCore/html/BaseDateAndTimeInputType.cpp	2012-06-06 10:24:47 UTC (rev 119579)
+++ trunk/Source/WebCore/html/BaseDateAndTimeInputType.cpp	2012-06-06 10:26:18 UTC (rev 119580)
@@ -146,7 +146,7 @@
 
 String BaseDateAndTimeInputType::serializeWithComponents(const DateComponents& date) const
 {
-    double step;
+    InputNumber step;
     if (!element()->getAllowedValueStep(&step))
         return date.toString();
     if (!fmod(step, msecPerMinute))

Modified: trunk/Source/WebCore/html/InputType.cpp (119579 => 119580)


--- trunk/Source/WebCore/html/InputType.cpp	2012-06-06 10:24:47 UTC (rev 119579)
+++ trunk/Source/WebCore/html/InputType.cpp	2012-06-06 10:26:18 UTC (rev 119580)
@@ -282,12 +282,12 @@
 
 double InputType::minimum() const
 {
-    return createStepRange(RejectAny).minimum();
+    return convertInputNumberToDouble(createStepRange(RejectAny).minimum());
 }
 
 double InputType::maximum() const
 {
-    return createStepRange(RejectAny).maximum();
+    return convertInputNumberToDouble(createStepRange(RejectAny).maximum());
 }
 
 bool InputType::sizeShouldIncludeDecoration(int, int& preferredSize) const

Modified: trunk/Source/WebCore/html/MonthInputType.cpp (119579 => 119580)


--- trunk/Source/WebCore/html/MonthInputType.cpp	2012-06-06 10:24:47 UTC (rev 119579)
+++ trunk/Source/WebCore/html/MonthInputType.cpp	2012-06-06 10:26:18 UTC (rev 119580)
@@ -94,7 +94,7 @@
     date.setMillisecondsSinceEpochForMonth(current);
     double months = date.monthsSinceEpoch();
     ASSERT(isfinite(months));
-    return months;
+    return convertDoubleToInputNumber(months);
 }
 
 StepRange MonthInputType::createStepRange(AnyStepHandling anyStepHandling) const
@@ -115,7 +115,7 @@
         return defaultValue;
     double months = date.monthsSinceEpoch();
     ASSERT(isfinite(months));
-    return months;
+    return convertDoubleToInputNumber(months);
 }
 
 bool MonthInputType::parseToDateComponentsInternal(const UChar* characters, unsigned length, DateComponents* out) const

Modified: trunk/Source/WebCore/html/NumberInputType.cpp (119579 => 119580)


--- trunk/Source/WebCore/html/NumberInputType.cpp	2012-06-06 10:24:47 UTC (rev 119579)
+++ trunk/Source/WebCore/html/NumberInputType.cpp	2012-06-06 10:26:18 UTC (rev 119580)
@@ -87,7 +87,7 @@
 void NumberInputType::setValueAsDouble(double newValue, TextFieldEventBehavior eventBehavior, ExceptionCode& ec) const
 {
     // FIXME: We should use numeric_limits<double>::max for number input type.
-    const double floatMax = convertDoubleToInputNumber(numeric_limits<float>::max());
+    const double floatMax = numeric_limits<float>::max();
     if (newValue < -floatMax) {
         ec = INVALID_STATE_ERR;
         return;

Modified: trunk/Source/WebCore/html/StepRange.cpp (119579 => 119580)


--- trunk/Source/WebCore/html/StepRange.cpp	2012-06-06 10:24:47 UTC (rev 119579)
+++ trunk/Source/WebCore/html/StepRange.cpp	2012-06-06 10:26:18 UTC (rev 119580)
@@ -87,7 +87,7 @@
         newValue = round(newValue * scale) / scale;
     } else {
         const InputNumber scale = pow(10.0, static_cast<InputNumber>(max(m_stepDecimalPlaces, m_stepBaseDecimalPlaces)));
-        newValue = round((m_stepBase + round((newValue - m_stepBase) / m_step) * m_step) * scale) / scale;
+        newValue = round(roundByStep(newValue, m_stepBase) * scale) / scale;
     }
 
     return newValue;
@@ -99,7 +99,7 @@
     if (!m_hasStep)
         return inRangeValue;
     // Rounds inRangeValue to minimum + N * step.
-    const InputNumber roundedValue = m_minimum + round((inRangeValue - m_minimum) / m_step) * m_step;
+    const InputNumber roundedValue = roundByStep(inRangeValue, m_minimum);
     const InputNumber clampedValue = roundedValue > m_maximum ? roundedValue - m_step : roundedValue;
     ASSERT(clampedValue >= m_minimum);
     ASSERT(clampedValue <= m_maximum);
@@ -149,6 +149,11 @@
     return step;
 }
 
+InputNumber StepRange::roundByStep(const InputNumber& value, const InputNumber& base) const
+{
+    return base + round((value - base) / m_step) * m_step;
+}
+
 bool StepRange::stepMismatch(const InputNumber& valueForCheck) const
 {
     if (!m_hasStep)

Modified: trunk/Source/WebCore/html/StepRange.h (119579 => 119580)


--- trunk/Source/WebCore/html/StepRange.h	2012-06-06 10:24:47 UTC (rev 119579)
+++ trunk/Source/WebCore/html/StepRange.h	2012-06-06 10:26:18 UTC (rev 119580)
@@ -141,6 +141,7 @@
 
 private:
     StepRange& operator =(const StepRange&);
+    InputNumber roundByStep(const InputNumber& value, const InputNumber& base) const;
 
     const InputNumber m_maximum; // maximum must be >= minimum.
     const InputNumber m_minimum;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to