Skip to content

Commit da5d3c7

Browse files
committed
Merge branch 'dev-3.6' into master-3.6
2 parents 5191485 + 676b9a0 commit da5d3c7

File tree

4 files changed

+28
-13
lines changed

4 files changed

+28
-13
lines changed

core/toolbars/utilities/style_manager.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ def _add_style_group(self, dialog):
123123
self._load_sys_roles(dialog_create)
124124

125125
dialog_create.btn_add.clicked.connect(partial(self._handle_add_feature, dialog_create))
126+
dialog_create.btn_cancel.clicked.connect(partial(tools_gw.close_dialog, dialog_create))
126127
dialog_create.feature_id.textChanged.connect(partial(self._check_style_exists, dialog_create))
127128
dialog_create.idval.textChanged.connect(partial(self._check_style_exists, dialog_create))
128129

core/toolbars/utilities/toolbox_btn.py

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
from time import time
1414
from datetime import timedelta
1515

16-
from qgis.PyQt.QtCore import Qt, QTimer
16+
from qgis.PyQt.QtCore import Qt, QTimer, QDate
1717
from qgis.PyQt.QtGui import QColor, QIcon, QStandardItemModel, QStandardItem
1818
from qgis.PyQt.QtWidgets import QSpinBox, QWidget, QLineEdit, QComboBox, QCheckBox, QRadioButton, QAbstractItemView, \
1919
QTreeWidget, QCompleter, QGridLayout, QHBoxLayout, QLabel, QTableWidgetItem, QFileDialog
@@ -39,6 +39,7 @@ def __init__(self, icon_path, action_name, text, toolbar, action_group):
3939
self.function_list = []
4040
self.rbt_checked = {}
4141
self.no_clickable_items = ['Processes', 'Reports']
42+
self.ignore_widgets = ['qt_spinbox_lineedit', 'qt_calendar_yearedit']
4243
self.temp_layers_added = []
4344
self.add_columns = {}
4445
self.queryAdd = None
@@ -137,6 +138,8 @@ def save_parametric_values(self, dialog, function_name):
137138
layout = dialog.findChild(QWidget, 'grb_parameters')
138139
widgets = layout.findChildren(QWidget)
139140
for widget in widgets:
141+
if widget.objectName() in self.ignore_widgets:
142+
continue
140143
if type(widget) is QCheckBox:
141144
tools_gw.set_config_parser('btn_toolbox', f"{function_name}_{widget.objectName()}",
142145
f"{widget.isChecked()}")
@@ -146,6 +149,9 @@ def save_parametric_values(self, dialog, function_name):
146149
elif type(widget) in (QLineEdit, QSpinBox):
147150
value = tools_qt.get_text(dialog, widget, False, False)
148151
tools_gw.set_config_parser('btn_toolbox', f"{function_name}_{widget.objectName()}", f"{value}")
152+
elif type(widget) is QgsDateTimeEdit:
153+
value = tools_qt.get_calendar_date(dialog, widget, date_format=lib_vars.date_format)
154+
tools_gw.set_config_parser('btn_toolbox', f"{function_name}_{widget.objectName()}", f"{value}")
149155

150156

151157
def save_settings_values(self, dialog, function_name):
@@ -517,23 +523,26 @@ def _load_parametric_values(self, dialog, function):
517523
widgets = layout.findChildren(QWidget)
518524

519525
for widget in widgets:
520-
if type(widget) not in (QCheckBox, QComboBox, QLineEdit, QRadioButton):
521-
continue
522-
if type(widget) in (QCheckBox, QRadioButton):
526+
if type(widget) in (QCheckBox, QRadioButton) and widget.property('value') is None:
523527
value = tools_gw.get_config_parser('btn_toolbox', f"{function_name}_{widget.objectName()}", "user",
524528
"session")
525529
if value not in (None, 'None'):
526530
tools_qt.set_checked(dialog, widget, value)
527-
elif type(widget) is QComboBox and widget.property('selectedId') in (None,'','NULL'):
531+
elif type(widget) is QComboBox and widget.property('selectedId') is None:
528532
value = tools_gw.get_config_parser('btn_toolbox', f"{function_name}_{widget.objectName()}", "user",
529533
"session")
530534
if value in (None, '', 'NULL') and widget.property('selectedId') not in (None, '', 'NULL'):
531535
value = widget.property('selectedId')
532536
tools_qt.set_combo_value(widget, value, 0)
533-
elif type(widget) in (QLineEdit, QSpinBox) and widget.property('value') in (None, ''):
537+
elif type(widget) in (QLineEdit, QSpinBox) and widget.property('value') is None:
534538
value = tools_gw.get_config_parser('btn_toolbox', f"{function_name}_{widget.objectName()}", "user",
535539
"session")
536540
tools_qt.set_widget_text(dialog, widget, value)
541+
elif type(widget) is QgsDateTimeEdit and widget.property('value') is None:
542+
value = tools_gw.get_config_parser('btn_toolbox', f"{function_name}_{widget.objectName()}", "user",
543+
"session")
544+
date = QDate.fromString(value, lib_vars.date_format)
545+
tools_qt.set_calendar(dialog, widget, date)
537546

538547

539548
def _load_settings_values(self, dialog, function):

core/utils/tools_gw.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1400,7 +1400,7 @@ def build_dialog_options(dialog, row, pos, _json, temp_layers_added=None, module
14001400
widget.setProperty('ismandatory', field['isMandatory'])
14011401
else:
14021402
widget.setProperty('ismandatory', False)
1403-
if 'value' in field:
1403+
if field.get('value') is not None:
14041404
widget.setText(field['value'])
14051405
widget.setProperty('value', field['value'])
14061406
widgetcontrols = field.get('widgetcontrols')
@@ -1423,10 +1423,9 @@ def build_dialog_options(dialog, row, pos, _json, temp_layers_added=None, module
14231423
widget.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
14241424
elif field['widgettype'] == 'check':
14251425
widget = QCheckBox()
1426-
if field['value'] is not None and field['value'].lower() == "true":
1427-
widget.setChecked(True)
1428-
else:
1429-
widget.setChecked(False)
1426+
if field.get('value') is not None:
1427+
widget.setChecked(tools_os.set_boolean(field['value']))
1428+
widget.setProperty('value', field['value'])
14301429
widget.stateChanged.connect(partial(get_dialog_changed_values, dialog, None, widget, field, _json))
14311430
widget.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
14321431
elif field['widgettype'] == 'datetime':
@@ -1437,8 +1436,9 @@ def build_dialog_options(dialog, row, pos, _json, temp_layers_added=None, module
14371436
if lib_vars.date_format in ("dd/MM/yyyy", "dd-MM-yyyy", "yyyy/MM/dd", "yyyy-MM-dd"):
14381437
widget.setDisplayFormat(lib_vars.date_format)
14391438
widget.clear() # Set date to NULL initially
1440-
if field.get('value') not in ('', None, 'null'):
1439+
if field.get('value') is not None:
14411440
date = QDate.fromString(field['value'].replace('/', '-'), 'yyyy-MM-dd')
1441+
widget.setProperty('value', field['value'].replace('/', '-'))
14421442
widget.setDate(date)
14431443
widget.valueChanged.connect(partial(get_dialog_changed_values, dialog, None, widget, field, _json))
14441444
widget.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
@@ -1452,9 +1452,10 @@ def build_dialog_options(dialog, row, pos, _json, temp_layers_added=None, module
14521452
maximumNumber = widgetcontrols.get('maximumNumber')
14531453
if maximumNumber is not None:
14541454
widget.setMaximum(maximumNumber)
1455-
if field.get('value') not in (None, ""):
1455+
if field.get('value') is not None:
14561456
value = float(str(field['value']))
14571457
widget.setValue(value)
1458+
widget.setProperty('value', field['value'])
14581459
widget.valueChanged.connect(partial(get_dialog_changed_values, dialog, None, widget, field, _json))
14591460
widget.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
14601461
elif field['widgettype'] == 'button':

metadata.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ version=3.6.019
88
author=David Erill, Natasa Cica, Nestor Ibañez, Barbara Rzepka, Sergi Muñoz, Josep Lluís Sala, Edgar Fusté, Albert Bofill, Sergi Maspons, Lia Bertran, Abel García Juanes, Maria Guzmán, Jordi Blanch, Xavier Torret, Daniel Marín, Ferran Martínez, Nico Pérez, Pablo Marques, Arnau Torret, Namrata Karki, Arnau Urgeles, Oscar Pueyo
99

1010
Changelog=Version 3.6.019
11+
version=3.6.020
12+
author=David Erill, Natasa Cica, Nestor Ibañez, Barbara Rzepka, Sergi Muñoz, Josep Lluís Sala, Edgar Fusté, Albert Bofill, Sergi Maspons, Lia Bertran, Abel García Juanes, Maria Guzmán, Jordi Blanch, Xavier Torret, Daniel Marín, Ferran Martínez, Nico Pérez, Pablo Marques, Arnau Torret, Namrata Karki, Arnau Urgeles, Oscar Pueyo
13+
14+
Changelog=Version 3.6.020
1115

1216

1317
tags= giswater, water networks, sewerage, urban drainage, EPANET, SWMM

0 commit comments

Comments
 (0)