def showDialog(self): if self.p1 == None or self.p2 == None: QMessageBox.information(None, "Cancel", "Not enough vertex selected.") else: flags = Qt.WindowTitleHint | Qt.WindowSystemMenuHint | Qt.WindowMaximizeButtonHint # QgisGui.ModalDialogFlags self.ctrl = ArcIntersectionGui(self.iface.mainWindow(), flags) self.ctrl.initGui() self.ctrl.show() # connect the signals QObject.connect(self.ctrl, SIGNAL("distancesFromPoints(double, double)"), self.calculateArcIntersection) QObject.connect(self.ctrl, SIGNAL("closeArcIntersectionGui()"), self.deactivate) QObject.connect(self.ctrl, SIGNAL("unsetTool()"), self.unsetTool)
def showDialog(self): if self.p1 == None or self.p2 == None: QMessageBox.information( None, QCoreApplication.translate("ctools", "Cancel"), QCoreApplication.translate("ctools", "Not enough vertex selected.")) else: flags = Qt.WindowTitleHint | Qt.WindowSystemMenuHint | Qt.WindowMaximizeButtonHint # QgisGui.ModalDialogFlags self.ctrl = ArcIntersectionGui(self.iface.mainWindow(), flags) self.ctrl.initGui() self.ctrl.show() # connect the signals self.ctrl.distancesFromPoints.connect( self.calculateArcIntersection) self.ctrl.closeArcIntersectionGui.connect(self.deactivate) self.ctrl.unsetTool.connect(self.unsetTool)
def showDialog(self): if self.p1 == None or self.p2 == None: QMessageBox.information(None, QCoreApplication.translate("ctools", "Cancel"), QCoreApplication.translate("ctools", "Not enough vertex selected.")) else: flags = Qt.WindowTitleHint | Qt.WindowSystemMenuHint | Qt.WindowMaximizeButtonHint # QgisGui.ModalDialogFlags self.ctrl = ArcIntersectionGui(self.iface.mainWindow(), flags) self.ctrl.initGui() self.ctrl.show() # connect the signals self.ctrl.distancesFromPoints.connect(self.calculateArcIntersection) self.ctrl.closeArcIntersectionGui.connect(self.deactivate) self.ctrl.unsetTool.connect(self.unsetTool)
class ArcIntersectionTool: def __init__(self, iface, toolBar): # Save reference to the QGIS interface self.iface = iface self.canvas = self.iface.mapCanvas() # Points and Markers self.p1 = None self.p2 = None self.m1 = None self.m2 = None # Create actions self.act_intersect_arc = QAction(QIcon(":/plugins/cadtools/icons/arcintersectionpoint.png"), "Arc Intersection", self.iface.mainWindow()) self.act_s2v= QAction(QIcon(":/plugins/cadtools/icons/select2vertex.png"), "Select 2 Vertex Points", self.iface.mainWindow()) self.act_s2v.setCheckable(True) # Connect to signals for button behaviour QObject.connect(self.act_intersect_arc, SIGNAL("triggered()"), self.showDialog) QObject.connect(self.act_s2v, SIGNAL("triggered()"), self.s2v) QObject.connect(self.canvas, SIGNAL("mapToolSet(QgsMapTool*)"), self.deactivate) toolBar.addSeparator() toolBar.addAction(self.act_s2v) toolBar.addAction(self.act_intersect_arc) # Get the tool self.tool = VertexFinderTool(self.canvas) def s2v(self): mc = self.canvas layer = mc.currentLayer() # Set VertexFinderTool as current tool mc.setMapTool(self.tool) self.act_s2v.setChecked(True) #Connect to the VertexFinderTool QObject.connect(self.tool, SIGNAL("vertexFound(PyQt_PyObject)"), self.storeVertexPointsAndMarkers) def storeVertexPointsAndMarkers(self, result): self.p1 = result[0] self.p2 = result[1] self.m1 = result[2] self.m2 = result[3] def showDialog(self): if self.p1 == None or self.p2 == None: QMessageBox.information(None, "Cancel", "Not enough vertex selected.") else: flags = Qt.WindowTitleHint | Qt.WindowSystemMenuHint | Qt.WindowMaximizeButtonHint # QgisGui.ModalDialogFlags self.ctrl = ArcIntersectionGui(self.iface.mainWindow(), flags) self.ctrl.initGui() self.ctrl.show() # connect the signals QObject.connect(self.ctrl, SIGNAL("distancesFromPoints(double, double)"), self.calculateArcIntersection) QObject.connect(self.ctrl, SIGNAL("closeArcIntersectionGui()"), self.deactivate) QObject.connect(self.ctrl, SIGNAL("unsetTool()"), self.unsetTool) def calculateArcIntersection(self, dist1, dist2): result = ArcIntersection.intersectionPoint(self.p1, self.p2, dist1, dist2) if result == 0: mc = self.canvas mc.unsetMapTool(self.tool) return else: cadutils.addGeometryToCadLayer(QgsGeometry.fromPoint(result[0])) cadutils.addGeometryToCadLayer(QgsGeometry.fromPoint(result[1])) self.canvas.refresh() mc = self.canvas mc.unsetMapTool(self.tool) self.deactivate() def unsetTool(self): mc = self.canvas mc.unsetMapTool(self.tool) def deactivate(self): self.p1 = None self.p2 = None #uncheck the button/menu and get rid off the SFtool signal self.act_s2v.setChecked(False)
class ArcIntersectionTool: def __init__(self, iface, toolBar): # Save reference to the QGIS interface self.iface = iface self.canvas = self.iface.mapCanvas() # Points and Markers self.p1 = None self.p2 = None self.m1 = None self.m2 = None # Create actions self.act_intersect_arc = QAction( QIcon(":/plugins/cadtools/icons/arcintersectionpoint.png"), "Arc Intersection", self.iface.mainWindow()) self.act_s2v = QAction( QIcon(":/plugins/cadtools/icons/select2vertex.png"), "Select 2 Vertex Points", self.iface.mainWindow()) self.act_s2v.setCheckable(True) # Connect to signals for button behaviour QObject.connect(self.act_intersect_arc, SIGNAL("triggered()"), self.showDialog) QObject.connect(self.act_s2v, SIGNAL("triggered()"), self.s2v) QObject.connect(self.canvas, SIGNAL("mapToolSet(QgsMapTool*)"), self.deactivate) toolBar.addSeparator() toolBar.addAction(self.act_s2v) toolBar.addAction(self.act_intersect_arc) # Get the tool self.tool = VertexFinderTool(self.canvas) def s2v(self): mc = self.canvas layer = mc.currentLayer() # Set VertexFinderTool as current tool mc.setMapTool(self.tool) self.act_s2v.setChecked(True) #Connect to the VertexFinderTool QObject.connect(self.tool, SIGNAL("vertexFound(PyQt_PyObject)"), self.storeVertexPointsAndMarkers) def storeVertexPointsAndMarkers(self, result): self.p1 = result[0] self.p2 = result[1] self.m1 = result[2] self.m2 = result[3] def showDialog(self): if self.p1 == None or self.p2 == None: QMessageBox.information(None, "Cancel", "Not enough vertex selected.") else: flags = Qt.WindowTitleHint | Qt.WindowSystemMenuHint | Qt.WindowMaximizeButtonHint # QgisGui.ModalDialogFlags self.ctrl = ArcIntersectionGui(self.iface.mainWindow(), flags) self.ctrl.initGui() self.ctrl.show() # connect the signals QObject.connect(self.ctrl, SIGNAL("distancesFromPoints(double, double)"), self.calculateArcIntersection) QObject.connect(self.ctrl, SIGNAL("closeArcIntersectionGui()"), self.deactivate) QObject.connect(self.ctrl, SIGNAL("unsetTool()"), self.unsetTool) def calculateArcIntersection(self, dist1, dist2): result = ArcIntersection.intersectionPoint(self.p1, self.p2, dist1, dist2) if result == 0: mc = self.canvas mc.unsetMapTool(self.tool) return else: cadutils.addGeometryToCadLayer(QgsGeometry.fromPoint(result[0])) cadutils.addGeometryToCadLayer(QgsGeometry.fromPoint(result[1])) self.canvas.refresh() mc = self.canvas mc.unsetMapTool(self.tool) self.deactivate() def unsetTool(self): mc = self.canvas mc.unsetMapTool(self.tool) def deactivate(self): self.p1 = None self.p2 = None #uncheck the button/menu and get rid off the SFtool signal self.act_s2v.setChecked(False)