diff --git a/README.md b/README.md index a467bc3..ec8abc8 100644 --- a/README.md +++ b/README.md @@ -6,4 +6,5 @@ Falkon Python plugin templates for KDevelop. - **plugin**: python plugin project template - **button**: toolbar button file template -- **sidebar**: sidebar template file template +- **sidebar**: sidebar file template +- **config**: pythos - PySide2 config class template (in progress) diff --git a/config/config.py b/config/config.py new file mode 100644 index 0000000..3d6b130 --- /dev/null +++ b/config/config.py @@ -0,0 +1,62 @@ +{% load kdev_filters %} +{% block license_header %} +{% if license %} +{{ license|lines_prepend:"# " }} +{% endif %} +{% endblock license_header %} + + +from PySide2.QtCore import QObject, Signal + + +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 %} + + + def __init__(self{% for member in members %}, {{ member.name }}=None{% endfor %}): + {% for inh in base_classes %} + {{ inh.baseType }}.__init__(self) + {% 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 %} + + + {% 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 %} diff --git a/config/pyside2-config.desktop b/config/pyside2-config.desktop new file mode 100644 index 0000000..829d6fb --- /dev/null +++ b/config/pyside2-config.desktop @@ -0,0 +1,14 @@ +[General] +Name=PySide2 Config +Comment=Config class for PySide2 +Category=Python/PySide2 +Language=Python +Type=Class +Files=Implementation +BaseClasses=QObject +# OptionsFile=options.kcfg + +[Implementation] +Name=Implementation +File=config.py +OutputFile={{ name }}.py