def _newDialog(self, cloneFeature): feature = QgsFeature() if (cloneFeature): feature = QgsFeature(self._feature) else: feature = self._feature context = QgsAttributeEditorContext() myDa = QgsDistanceArea() myDa.setSourceCrs(self._layer.crs()) myDa.setEllipsoidalMode( self._iface.mapCanvas().mapSettings().hasCrsTransformEnabled()) myDa.setEllipsoid(QgsProject.instance().readEntry( 'Measure', '/Ellipsoid', GEO_NONE)[0]) context.setDistanceArea(myDa) context.setVectorLayerTools(self._iface.vectorLayerTools()) dialog = QgsAttributeDialog(self._layer, feature, cloneFeature, None, True, context) if (self._layer.actions().size() > 0): dialog.setContextMenuPolicy(Qt.ActionsContextMenu) a = QAction(self.tr('Run actions'), dialog) a.setEnabled(False) dialog.addAction(a) i = 0 for action in self._layer.actions(): if (action.runable()): a = FeatureAction(action.name(), feature, self._layer, i, -1, self._iface, dialog) dialog.addAction(a) a.triggered.connect(a.execute) pb = dialog.findChild(action.name()) if (pb): pb.clicked.connect(a.execute) i += 1 return dialog
def _newDialog(self, cloneFeature): feature = QgsFeature() if (cloneFeature): feature = QgsFeature(self._feature) else: feature = self._feature context = QgsAttributeEditorContext() myDa = QgsDistanceArea() myDa.setSourceCrs(self._layer.crs()) myDa.setEllipsoidalMode(self._iface.mapCanvas().mapSettings().hasCrsTransformEnabled()) myDa.setEllipsoid(QgsProject.instance().readEntry('Measure', '/Ellipsoid', GEO_NONE)[0]) context.setDistanceArea(myDa) context.setVectorLayerTools(self._iface.vectorLayerTools()) dialog = QgsAttributeDialog(self._layer, feature, cloneFeature, None, True, context) if (self._layer.actions().size() > 0): dialog.setContextMenuPolicy(Qt.ActionsContextMenu) a = QAction(self.tr('Run actions'), dialog) a.setEnabled(False) dialog.addAction(a) i = 0 for action in self._layer.actions(): if (action.runable()): a = ArkFeatureAction(action.name(), feature, self._layer, i, -1, self._iface, dialog) dialog.addAction(a) a.triggered.connect(a.execute) pb = dialog.findChild(action.name()) if (pb): pb.clicked.connect(a.execute) i += 1 return dialog