def __init__(self, dialog, param):
        super(ExtentSelectionPanel, self).__init__(None)
        self.setupUi(self)

        self.dialog = dialog
        self.param = param
        self.crs = QgsProject.instance().crs()

        if self.param.flags() & QgsProcessingParameterDefinition.FlagOptional:
            if hasattr(self.leText, 'setPlaceholderText'):
                self.leText.setPlaceholderText(
                    self.tr('[Leave blank to use min covering extent]'))

        self.btnSelect.clicked.connect(self.selectExtent)

        if iface is not None:
            canvas = iface.mapCanvas()
            self.prevMapTool = canvas.mapTool()
            self.tool = RectangleMapTool(canvas)
            self.tool.rectangleCreated.connect(self.updateExtent)
        else:
            self.prevMapTool = None
            self.tool = None

        if param.defaultValue() is not None:
            context = createContext()
            rect = QgsProcessingParameters.parameterAsExtent(
                param, {param.name(): param.defaultValue()}, context)
            crs = QgsProcessingParameters.parameterAsExtentCrs(
                param, {param.name(): param.defaultValue()}, context)
            if not rect.isNull():
                try:
                    s = '{},{},{},{}'.format(rect.xMinimum(), rect.xMaximum(),
                                             rect.yMinimum(), rect.yMaximum())
                    if crs.isValid():
                        s += ' [' + crs.authid() + ']'
                        self.crs = crs
                    self.leText.setText(s)
                except:
                    pass
Exemple #2
0
 def __init__(self, dialog, alg, default):
     super(ExtentSelectionPanel, self).__init__(None)
     self.dialog = dialog
     self.params = alg.parameters
     self.horizontalLayout = QtGui.QHBoxLayout(self)
     self.horizontalLayout.setSpacing(2)
     self.horizontalLayout.setMargin(0)
     self.text = QtGui.QLineEdit()
     self.text.setSizePolicy(QtGui.QSizePolicy.Expanding,
                             QtGui.QSizePolicy.Expanding)
     if self.canUseAutoExtent():
         if hasattr(self.text, 'setPlaceholderText'):
             self.text.setPlaceholderText(
                 self.tr('[Leave blank to use min covering extent]'))
     self.horizontalLayout.addWidget(self.text)
     self.pushButton = QtGui.QPushButton()
     self.pushButton.setText('...')
     self.pushButton.clicked.connect(self.buttonPushed)
     self.horizontalLayout.addWidget(self.pushButton)
     self.setLayout(self.horizontalLayout)
     canvas = iface.mapCanvas()
     self.prevMapTool = canvas.mapTool()
     self.tool = RectangleMapTool(canvas)
     self.connect(self.tool, SIGNAL('rectangleCreated()'), self.fillCoords)