class DtExtractPartTool(DtSingleTool): def __init__(self, iface, toolBar): super().__init__(iface, toolBar, QtGui.QIcon(":/ExtractPart.png"), QtCore.QCoreApplication.translate("digitizingtools", "Split off one part and add it as a new feature"), geometryTypes = [1, 2, 3, 4, 5, 6], dtName = "dtExtractPart") self.tool = DtSelectPartTool(self.iface) self.tool.partSelected.connect(self.partSelected) self.enable() def process(self): self.canvas.setMapTool(self.tool) self.act.setChecked(True) def partSelected(self, part): fid = part[0] partNumber = part[1] aPart = part[2] layer = self.iface.mapCanvas().currentLayer() feature = dtutils.dtGetFeatureForId(layer, fid) geom = QgsGeometry(feature.geometry()) if geom.deletePart(partNumber): layer.beginEditCommand(QtCore.QCoreApplication.translate("editcommand", "Extract part")) aFeat = dtutils.dtCopyFeature(layer, feature) aFeat.setGeometry(aPart) layer.addFeature(aFeat) feature.setGeometry(geom) layer.updateFeature(feature) layer.endEditCommand() self.canvas.refresh() self.tool.reset()
def __init__(self, iface, toolBar): super().__init__(iface, toolBar, QtGui.QIcon(":/ExtractPart.png"), QtCore.QCoreApplication.translate( "digitizingtools", "Split off one part and add it as a new feature"), geometryTypes=[1, 2, 3, 4, 5, 6], dtName="dtExtractPart") self.tool = DtSelectPartTool(self.iface) self.tool.partSelected.connect(self.partSelected) self.enable()
def __init__(self, iface, toolBar): super().__init__(iface, toolBar, QtGui.QIcon(":/ExtractPart.png"), QtCore.QCoreApplication.translate("digitizingtools", "Split off one part and add it as a new feature"), geometryTypes = [1, 2, 3, 4, 5, 6], dtName = "dtExtractPart") self.tool = DtSelectPartTool(self.iface) self.tool.partSelected.connect(self.partSelected) self.enable()
class DtExtractPartTool(DtSingleTool): def __init__(self, iface, toolBar): super().__init__(iface, toolBar, QtGui.QIcon(":/ExtractPart.png"), QtCore.QCoreApplication.translate( "digitizingtools", "Split off one part and add it as a new feature"), geometryTypes=[1, 2, 3, 4, 5, 6], dtName="dtExtractPart") self.tool = DtSelectPartTool(self.iface) self.tool.partSelected.connect(self.partSelected) self.enable() def process(self): self.canvas.setMapTool(self.tool) self.act.setChecked(True) def partSelected(self, part): fid = part[0] partNumber = part[1] aPart = part[2] layer = self.iface.mapCanvas().currentLayer() feature = dtutils.dtGetFeatureForId(layer, fid) geom = QgsGeometry(feature.geometry()) if geom.deletePart(partNumber): layer.beginEditCommand( QtCore.QCoreApplication.translate("editcommand", "Extract part")) aFeat = dtutils.dtCopyFeature(layer, feature) aFeat.setGeometry(aPart) layer.addFeature(aFeat) feature.setGeometry(geom) layer.updateFeature(feature) layer.endEditCommand() self.canvas.refresh() self.tool.reset()