Merge pull request #600 from pypeclub/bugfix/environments_and_modifications_fix

Settings GUI environments and discard changes
This commit is contained in:
Milan Kolar 2020-10-05 09:39:24 +02:00 committed by GitHub
commit 33b90bd146
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -851,6 +851,7 @@ class InputObject(SettingObject):
self._is_overriden = False
return
self._state = None
self._is_modified = False
self._is_overriden = self._was_overriden
@ -1307,14 +1308,16 @@ class RawJsonWidget(QtWidgets.QWidget, InputObject):
output = {}
for key, value in value.items():
output[key.upper()] = value
output[METADATA_KEY] = {
"environments": {
self.env_group_key: list(output.keys())
}
}
return output
def config_value(self):
value = self.item_value()
value[METADATA_KEY] = {
"environments": {
self.env_group_key: list(value.keys())
}
}
return {self.key: value}
class ListItem(QtWidgets.QWidget, SettingObject):
_btn_size = 20
@ -2520,13 +2523,22 @@ class DictWidget(QtWidgets.QWidget, SettingObject):
self._has_studio_override = True
def discard_changes(self):
self._is_overriden = self._was_overriden
self._is_modified = False
self._is_overriden = self._was_overriden
self._has_studio_override = self._had_studio_override
for input_field in self.input_fields:
input_field.discard_changes()
self._is_modified = self.child_modified
if not self.is_overidable and self.as_widget:
if self.has_studio_override:
self._is_modified = self.studio_value != self.item_value()
else:
self._is_modified = self.default_value != self.item_value()
self._state = None
self._is_overriden = self._was_overriden
def set_as_overriden(self):
if self.is_overriden:
@ -2928,11 +2940,20 @@ class DictInvisible(QtWidgets.QWidget, SettingObject):
def discard_changes(self):
self._is_modified = False
self._is_overriden = self._was_overriden
self._has_studio_override = self._had_studio_override
for input_field in self.input_fields:
input_field.discard_changes()
self._is_modified = self.child_modified
if not self.is_overidable and self.as_widget:
if self.has_studio_override:
self._is_modified = self.studio_value != self.item_value()
else:
self._is_modified = self.default_value != self.item_value()
self._state = None
self._is_overriden = self._was_overriden
def set_as_overriden(self):
if self.is_overriden:
@ -3334,20 +3355,20 @@ class PathWidget(QtWidgets.QWidget, SettingObject):
self._has_studio_override = True
def discard_changes(self):
self._is_modified = False
self._is_overriden = self._was_overriden
self._has_studio_override = self._had_studio_override
self.input_field.discard_changes()
if not self.is_overidable:
self._is_modified = self.child_modified
if not self.is_overidable and self.as_widget:
if self.has_studio_override:
self._is_modified = self.studio_value != self.item_value()
else:
self._is_modified = self.default_value != self.item_value()
self._is_overriden = False
return
self._is_modified = False
self._state = None
self._is_overriden = self._was_overriden
def set_as_overriden(self):
@ -3463,11 +3484,20 @@ class DictFormWidget(QtWidgets.QWidget, SettingObject):
def discard_changes(self):
self._is_modified = False
self._is_overriden = self._was_overriden
self._has_studio_override = self._had_studio_override
for item in self.input_fields:
item.discard_changes()
for input_field in self.input_fields:
input_field.discard_changes()
self._is_modified = self.child_modified
if not self.is_overidable and self.as_widget:
if self.has_studio_override:
self._is_modified = self.studio_value != self.item_value()
else:
self._is_modified = self.default_value != self.item_value()
self._state = None
self._is_overriden = self._was_overriden
def remove_overrides(self):
self._is_overriden = False