1

Config: Add load ans save method, fix typo

Signed-off-by: Juraj Oravec <sgd.orava@gmail.com>
This commit is contained in:
Juraj Oravec 2019-06-29 20:29:15 +02:00
parent 88bf2c0b13
commit b98699c704
No known key found for this signature in database
GPG Key ID: 63ACB65056BC8D07
3 changed files with 81 additions and 3 deletions

View File

@ -6,7 +6,10 @@
{% endblock license_header %} {% endblock license_header %}
from PySide2.QtCore import QObject, Signal {% 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 %}: class {{ name }}{% if base_classes %}({% for inh in base_classes %}{{ inh.baseType }}{% if not forloop.last %}, {% endif %}{% endfor %}){% endif %}:
@ -15,9 +18,15 @@ class {{ name }}{% if base_classes %}({% for inh in base_classes %}{{ inh.baseTy
{% endfor %} {% endfor %}
{% if include_load_save %}
configLoaded = Signal()
configSaved = Signal()
{% endif %}
def __init__(self{% for member in members %}, {{ member.name }}=None{% endfor %}): def __init__(self{% for member in members %}, {{ member.name }}=None{% endfor %}):
{% for inh in base_classes %} {% for inh in base_classes %}
{{ inh.baseType }}.__init__(self) {{ inh.baseType }}.__init__()
{% endfor %} {% endfor %}
@ -43,12 +52,60 @@ class {{ name }}{% if base_classes %}({% for inh in base_classes %}{{ inh.baseTy
{% endfor %} {% 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 }} = {{ 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 %} {% for member in members %}
@property @property
def {{ member.name }}(self): def {{ member.name }}(self):
return self._{{ member.name }} return self._{{ member.name }}
@{{ member.name }}.setter @{{ member.name }}.setter
def {{ member.name }}(self, {{ member.name }}): def {{ member.name }}(self, {{ member.name }}):
if not {{ member.name }}: if not {{ member.name }}:

21
config/options.kcfg Normal file
View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<kcfg xmlns="http://www.kde.org/standards/kcfg/1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.kde.org/standards/kcfg/1.0
http://www.kde.org/standards/kcfg/1.0/kcfg.xsd">
<kcfgfile arg="true"/>
<group name="Config">
<entry name="include_load_save" type="Bool">
<label>Include load and save methods?</label>
<default>True</default>
</entry>
<entry name="settings_filepath_variable" type="String">
<label>FilePath variable</label>
<default>settingsFile</default>
</entry>
<entry name="settings_group_name" type="String">
<label>Settings group name</label>
<default>{{ name }}</default>
</entry>
</group>
</kcfg>

View File

@ -6,7 +6,7 @@ Language=Python
Type=Class Type=Class
Files=Implementation Files=Implementation
BaseClasses=QObject BaseClasses=QObject
# OptionsFile=options.kcfg OptionsFile=options.kcfg
[Implementation] [Implementation]
Name=Implementation Name=Implementation