diff options
Diffstat (limited to 'qface/templates/qface/qtcpp.j2')
-rw-r--r-- | qface/templates/qface/qtcpp.j2 | 52 |
1 files changed, 30 insertions, 22 deletions
diff --git a/qface/templates/qface/qtcpp.j2 b/qface/templates/qface/qtcpp.j2 index c2b13db..97e1c8d 100644 --- a/qface/templates/qface/qtcpp.j2 +++ b/qface/templates/qface/qtcpp.j2 @@ -1,34 +1,39 @@ -{%+ macro enum_decl(enum) %} - enum {{enum}} { +{%+ macro enum_decl(enum) -%} + enum {{enum}}Enum { {% for member in enum.members %} {{member.name}} = {{member.value}}{% if not loop.last %},{%endif%} {% endfor %} }; - Q_ENUM({{enum}}) + {% if enum.is_flag %} + Q_DECLARE_FLAGS({{enum}}Enums, {{enum}}Enum) + Q_FLAG({{enum}}Enum) + {% else %} + Q_ENUM({{enum}}Enum) + {% endif %} {%- endmacro %} -{% macro property(property) -%} -Q_PROPERTY({{property|returnType}} {{property}} READ {{property}} {% if not property.readonly %}WRITE set{{property|upperfirst}} {% endif %}{% if not property.const %}NOTIFY {{property}}Changed{% endif %}) +{% macro property(property, notifiable=True) -%} +Q_PROPERTY({{property|returnType}} {{property}} READ {{property}} {% if not property.readonly %}WRITE set{{property|upperfirst}}{% endif %}{% if not property.const and notifiable %} NOTIFY {{property}}Changed{% endif %}) {%- endmacro %} -{% macro property_setter_decl(property) -%} -virtual void set{{property|upperfirst}}({{ property|parameterType }}); +{% macro property_setter_decl(property, ending=";") -%} +void set{{property|upperfirst}}({{ property|parameterType }}){{ending}} {%- endmacro %} -{% macro property_getter_decl(property) -%} -virtual {{property|returnType}} {{property}}() const; +{% macro property_getter_decl(property, ending=";") -%} +{{property|returnType}} {{property}}() const{{ending}} {%- endmacro %} {% macro signal_decl(symbol, postfix="") -%} void {{symbol}}{{postfix}}({{symbol|parameters}}); {%- endmacro %} -{% macro property_member_decl(property) %} +{% macro property_member_decl(property) -%} {{property|returnType}} m_{{property}}; {%- endmacro %} -{% macro property_setter_impl(class, property) -%} +{% macro property_setter_impl(class, property, notifiable=True) -%} /*! \qmlproperty {{property.type}} {{class}}::{{property}} {% with doc = property.comment|parse_doc %} @@ -40,10 +45,15 @@ void {{symbol}}{{postfix}}({{symbol|parameters}}); void {{class}}::set{{property|upperfirst}}({{ property|parameterType }}) { +{% if notifiable %} if (m_{{property}} != {{property}}) { m_{{property}} = {{property}}; Q_EMIT {{property}}Changed({{property}}); } +{% else %} + m_{{property}} = {{property}}; +{% endif %} + } {%- endmacro %} @@ -56,7 +66,7 @@ void {{class}}::set{{property|upperfirst}}({{ property|parameterType }}) {%- endmacro %} -{% macro operation_impl(class, operation) %} +{% macro operation_impl(class, operation) -%} /*! \qmlmethod {{operation.type}} {{class}}::{{operation}}({{operation|parameters}}) {% with doc = operation.comment|parse_doc %} @@ -72,24 +82,22 @@ void {{class}}::set{{property|upperfirst}}({{ property|parameterType }}) qWarning() << "{{class}}::{{operation}}(...) not implemented"; return {{operation|defaultValue}}; } -{% endmacro %} +{%- endmacro %} -{% macro operation_decl(operation) %} - virtual {{operation|returnType}} {{operation}}({{operation|parameters}}); -{% endmacro %} +{% macro operation_decl(operation, ending=";") -%} + virtual {{operation|returnType}} {{operation}}({{operation|parameters}}){{ending}} +{%- endmacro %} -{% macro autogenerated(prefix="//") %} +{% macro autogenerated(prefix="//") -%} {{prefix}} This is an auto-generated file. {{prefix}} Do not edit! All changes made to it will be lost. -{% endmacro %} - -{% macro preserved(prefix="//") %} +{%- endmacro %} +{% macro preserved(prefix="//") -%} {{prefix}} This is a preserved file. {{prefix}} Changes will not be overriden by the generator. {{prefix}} To reset the file you need to delete it first. - -{% endmacro %} +{%- endmacro %} |