diff --git a/src/Model/SedimentLayer/SedimentLayer.py b/src/Model/SedimentLayer/SedimentLayer.py index 47d84df5a94d1b72f782ed361ccf467535c179a8..65684bd870a79f41882113097f9d2fedc3f5d9ce 100644 --- a/src/Model/SedimentLayer/SedimentLayer.py +++ b/src/Model/SedimentLayer/SedimentLayer.py @@ -180,7 +180,56 @@ class SedimentLayer(SQLSubModel): for l in self._layers: data["ind"] = ind l._sql_save(execute, data) - ind += 1 return True + + def get(self, index): + return self._layers[index] + + def set(self, index, new): + self._layers[index] = new + self._status.modified() + + def insert(self, index, new): + self._layers.insert(index, new) + self._status.modified() + + def new(self, index): + n = Layer(status = self._status) + self.insert(index, n) + self._status.modified() + return n + + def delete(self, els): + for el in els: + self._layers.remove(el) + self._status.modified() + + def delete_i(self, indexes): + els = list( + map( + lambda x: x[1], + filter( + lambda x: x[0] in indexes, + enumerate(self._layers) + ) + ) + ) + self.delete(els) + + def move_up(self, index): + if index < len(self._layers): + next = index - 1 + + l = self._layers + l[index], l[next] = l[next], l[index] + self._status.modified() + + def move_down(self, index): + if index >= 0: + prev = index + 1 + + l = self._layers + l[index], l[prev] = l[prev], l[index] + self._status.modified() diff --git a/src/Model/SedimentLayer/SedimentLayerList.py b/src/Model/SedimentLayer/SedimentLayerList.py index b360c7233c092258927e700595d37823aaf27f6f..32317c0baf4d2235027054773b4e033255969fb9 100644 --- a/src/Model/SedimentLayer/SedimentLayerList.py +++ b/src/Model/SedimentLayer/SedimentLayerList.py @@ -37,6 +37,10 @@ class SedimentLayerList(SQLSubModel): def _sql_save(self, execute, data = None): ok = True + # Delete previous data + execute("DELETE FROM sedimentary_layer") + execute("DELETE FROM sedimentary_layer_layer") + for sl in self._sl: ok &= sl._sql_save(execute, data)