File indexing completed on 2024-05-12 04:37:33

0001 {% extends "cpp_header.h" %}
0002 {% load kdev_filters %}
0003 
0004 {% block includes %}
0005 {{ block.super }}
0006 {% if not base_classes %}
0007 #include <QObject>
0008 {% endif %}
0009 {% endblock %}
0010 
0011 {% block class_body %}
0012 public:
0013 {# doing our own destructor, to ensure there is one #}
0014 {% if not base_classes %}
0015     virtual ~{{ name }}();
0016 {% else %}{# Assumption: subclassing only other interfaces #}
0017     ~{{ name }}() override;
0018 {% endif %}
0019 
0020     {% for method in public_functions %}
0021         {# skipping any defined destructor #}
0022         {% if not method.isDestructor %}
0023 
0024         {% include "class_method_declaration_apidox_cpp.txt" %}
0025         {% include "class_method_declaration_cpp.txt" %}
0026 
0027         {% endif %}
0028     {% endfor %}
0029 
0030 {% for property in members %}
0031 
0032     {% include "class_property_getter_declaration_apidox_cpp.txt" %}
0033     virtual {{ property.type }} {{ property.name }}() const = 0;
0034 
0035 
0036     {% include "class_property_setter_declaration_apidox_cpp.txt" %}
0037     virtual void set{{ property.name|upper_first }}({{ property.type|arg_type }} {{ property.name }}) = 0;
0038 
0039 {% endfor %}
0040 {% if protected_functions %}
0041 
0042 protected:
0043     {% for method in protected_functions %}
0044         {# skipping any defined destructor #}
0045         {% if not method.isDestructor %}
0046 
0047         {% include "class_method_declaration_apidox_cpp.txt" %}
0048         {% include "class_method_declaration_cpp.txt" %}
0049 
0050         {% endif %}
0051     {% endfor %}
0052 {% endif %}
0053 {% if private_functions %}
0054 
0055 private:
0056     {% for method in private_functions %}
0057     {# skipping any defined destructor #}
0058     {% if not method.isDestructor %}
0059 
0060         {% include "class_method_declaration_apidox_cpp.txt" %}
0061         {% include "class_method_declaration_cpp.txt" %}
0062 
0063     {% endif %}
0064     {% endfor %}
0065 {% endif %}
0066 {% endblock class_body %}
0067 
0068 {% block outside_namespace %}
0069 {{ block.super }}
0070 Q_DECLARE_INTERFACE({% if namespaces %}{{ namespaces|join:"::" }}::{% endif %}{{ name }}, "{{ interfaceid }}")
0071 {% endblock %}