{% load kdev_filters %} {% block license_header %} {% if license %} {{ license|lines_prepend:"# " }} {% endif %} {% endblock license_header %} {% if include_load_save %} import os {% endif %} from PySide2.QtCore import QObject, Signal{% if include_load_save %}, QSettings{% endif %} class {{ name }}{% if base_classes %}({% for inh in base_classes %}{{ inh.baseType }}{% if not forloop.last %}, {% endif %}{% endfor %}){% endif %}: {% for member in members %} {{ member.name }}Changed = Signal({{ member.type }}) {% endfor %} {% if include_load_save %} configLoaded = Signal() configSaved = Signal() {% endif %} def __init__(self{% for member in members %}, {{ member.name }}=None{% endfor %}): {% for inh in base_classes %} {{ inh.baseType }}.__init__() {% endfor %} {% for member in members %} self._{{ member.name }} = {{ member.name }} {% empty %} pass {% endfor %} {% for method in methods %} {% if method.isStatic %} @staticmethod def {{ method.name }}({% include "arguments_names.txt" %}): {% else %}{% if method.arguments %} def {{ method.name }}(self{% for arg in method.arguments %}, {{ arg.name }}{% endfor %}): {% else %} def {{ method.name }}(self): {% endif %}{% endif %} pass {% endfor %} {% if include_load_save %} def load(self): if not self.{% if settings_filepath_variable %}{{settings_filepath_variable}}{% else %}settingsFile{% endif %}: return if os.path.exists(self.{% if settings_filepath_variable %}{{settings_filepath_variable}}{% else %}settingsFile{% endif %}): pass settings = QSettings(self.{% if settings_filepath_variable %}{{settings_filepath_variable}}{% else %}settingsFile{% endif %}, QSettings.IniFormat) settings.beginGroup("{% if settings_group_name %}{{ settings_group_name }}{% else %}{{ name }}{% endif %}") {% for member in members %} self.{{ member.name }} = {% if member.type == "bool" %}self._{% endif %}{{ member.type }}(settings.value("{{ member.name }}", self.{{ member.name }})) {% endfor %} settings.endGroup() self.configLoaded.emit() def save(self): if not self.{% if settings_filepath_variable %}{{settings_filepath_variable}}{% else %}settingsFile{% endif %}: return if os.path.exists(self.{% if settings_filepath_variable %}{{settings_filepath_variable}}{% else %}settingsFile{% endif %}): pass settings = QSettings(self.{% if settings_filepath_variable %}{{settings_filepath_variable}}{% else %}settingsFile{% endif %}, QSettings.IniFormat) settings.beginGroup("{% if settings_group_name %}{{ settings_group_name }}{% else %}{{ name }}{% endif %}") {% for member in members %} settings.setValue("{{ member.name }}", self.{{ member.name }}) {% endfor %} settings.endGroup() settings.sync() self.configSaved.emit() {% endif %} {% for member in members %} @property def {{ member.name }}(self): return self._{{ member.name }} @{{ member.name }}.setter def {{ member.name }}(self, {{ member.name }}): if not {{ member.name }}: return if self._{{ member.name }} == {{ member.name }}: return self._{{ member.name }} = {{ member.name }} self.{{ member.name }}Changed.emit({{ member.name }}) {% endfor %} {% if include_load_save %} def _bool(self, value): return value == "true" {% endif %}