void BaseMultipleFieldsDateAndTimeInputType::updateView() { DateTimeEditElement* edit = dateTimeEditElement(); if (!edit) return; DateTimeEditElement::LayoutParameters layoutParameters(element().locale(), createStepRange(AnyIsDefaultStep)); DateComponents date; bool hasValue = false; if (!element().suggestedValue().isNull()) hasValue = parseToDateComponents(element().suggestedValue(), &date); else hasValue = parseToDateComponents(element().value(), &date); if (!hasValue) setMillisecondToDateComponents(layoutParameters.stepRange.minimum().toDouble(), &date); setupLayoutParameters(layoutParameters, date); DEFINE_STATIC_LOCAL(AtomicString, datetimeformatAttr, ("datetimeformat", AtomicString::ConstructFromLiteral)); edit->setAttribute(datetimeformatAttr, AtomicString(layoutParameters.dateTimeFormat), ASSERT_NO_EXCEPTION); const AtomicString pattern = edit->fastGetAttribute(HTMLNames::patternAttr); if (!pattern.isEmpty()) layoutParameters.dateTimeFormat = pattern; if (!DateTimeFormatValidator().validateFormat(layoutParameters.dateTimeFormat, *this)) layoutParameters.dateTimeFormat = layoutParameters.fallbackDateTimeFormat; if (hasValue) edit->setValueAsDate(layoutParameters, date); else edit->setEmptyValue(layoutParameters, date); updateClearButtonVisibility(); }
void BaseMultipleFieldsDateAndTimeInputType::restoreFormControlState(const FormControlState& state) { DateTimeEditElement* edit = dateTimeEditElement(); if (!edit) return; DateTimeFieldsState dateTimeFieldsState = DateTimeFieldsState::restoreFormControlState(state); edit->setValueAsDateTimeFieldsState(dateTimeFieldsState); element().setValueInternal(sanitizeValue(edit->value()), DispatchNoEvent); updateClearButtonVisibility(); }
void BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue() { if (!m_dateTimeEditElement) return; DateTimeEditElement::LayoutParameters layoutParameters(element()->locale(), createStepRange(AnyIsDefaultStep)); DateComponents date; const bool hasValue = parseToDateComponents(element()->value(), &date); if (!hasValue) setMillisecondToDateComponents(layoutParameters.stepRange.minimum().toDouble(), &date); setupLayoutParameters(layoutParameters, date); const AtomicString pattern = m_dateTimeEditElement->fastGetAttribute(HTMLNames::patternAttr); if (!pattern.isEmpty()) layoutParameters.dateTimeFormat = pattern; if (hasValue) m_dateTimeEditElement->setValueAsDate(layoutParameters, date); else m_dateTimeEditElement->setEmptyValue(layoutParameters, date); updateClearButtonVisibility(); }
/*! * \brief Updates the visibility of the clear button. */ void ClearPlainTextEdit::handleTextChanged() { updateClearButtonVisibility(!document()->isEmpty()); }
void MultipleFieldsTemporalInputTypeView::requiredAttributeChanged() { updateClearButtonVisibility(); }
void BaseMultipleFieldsDateAndTimeInputType::requiredAttributeChanged() { updateClearButtonVisibility(); }
void BaseMultipleFieldsDateAndTimeInputType::requiredAttributeChanged() { m_clearButton->releaseCapture(); updateClearButtonVisibility(); }