// {{ autogenerated_disclaimer }}
#include <{{ header }}>

{{ className }}::{{ className }}(QObject* parent)
    : {{ baseClassName }}(parent) {
}

{% for property in properties if not property.impl == 'pure' %}
{{ property.type }} {{ className }}::{{ property.name }}() const {
    return {{ property.varName }};
}

{%- if property.mutability == 'readwrite' %}
void {{ className }}::{{ property.setterName }}({{ property.argType }} value) {
    {% if property.type == 'qreal' %}
    if (qFuzzyCompare({{ property.varName }}, value)) {
    {% else %}
    if ({{ property.varName }} == value) {
    {% endif %}
        return;
    }
    {{ property.varName }} = value;
    {{ property.name }}Changed(value);
}
{%- endif %}
{% endfor %}
