simplify api by abstracting layer changes

This commit is contained in:
Jakob Ketterl
2021-03-06 22:20:47 +01:00
parent 6af0ad0262
commit 3d20e3ed80
3 changed files with 19 additions and 11 deletions

View File

@ -353,10 +353,12 @@ class PropertyCarousel(PropertyDelegator):
return self.emptyLayer
def addLayer(self, key, value):
self.layers[key] = value
def hasLayer(self, key):
return key in self.layers
if key in self.layers and self.layers[key] is self.pm:
self.layers[key] = value
# switch after introducing the new value
self.switch(key)
else:
self.layers[key] = value
def removeLayer(self, key):
if key in self.layers and self.layers[key] is self.pm:

View File

@ -84,7 +84,7 @@ class SdrProfileCarousel(PropertyCarousel):
for profile_id, profile in changes.items():
if profile is PropertyDeleted:
self.removeLayer(profile_id)
elif not self.hasLayer(profile_id):
else:
self.addLayer(profile_id, profile)
def _getDefaultLayer(self):