Exemple #1
0
    def updateLayers(self, layers):
        selectedLayer = self.selected and self.selected.layer or None
        layerSelected = False

        while True:
            taken = self.layout.takeAt(0)
            if taken is not None:
                taken.widget().deleteLater()
            else:
                break
        for layer in layers:
            layerView = LayerView(layer, self.cats)
            layerView.onClicked.connect(self.layerViewClicked)
            layerView.onDelete.connect(lambda layer=layer: self.onDeleteLayer.
                                       emit(layer))  # I love this language.
            self.layout.addWidget(layerView)
            layerView.show()
            if layer is selectedLayer:
                layerSelected = True
                self.setLayerSelection(layerView)
        if not layerSelected:
            self.setLayerSelection(None)