Exemplo n.º 1
0
    def __init__(self, iface):
        QWidget.__init__(self)
        self.iface = iface
        self.canvas = self.iface.mapCanvas()
        self.expand_method = ('gray', 'rgb', 'rgba')

        self.setupUi(self)
        BaseBatchWidget.__init__(self, self.iface, "gdal_translate")

        self.outSelector.setType(self.outSelector.FILE)

        # set the default QSpinBoxes and QProgressBar value
        self.outsizeSpin.setValue(25)
        self.progressBar.setValue(0)

        self.progressBar.hide()
        self.formatLabel.hide()
        self.formatCombo.hide()

        if Utils.Version(Utils.GdalConfig.version()) < "1.7":
            index = self.expandCombo.findText('gray', Qt.MatchFixedString)
            if index >= 0:
                self.expandCombo.removeItem(index)

        self.outputFormat = Utils.fillRasterOutputFormat()

        self.setParamsStatus([
            (self.inSelector, SIGNAL("filenameChanged()")),
            (self.outSelector, SIGNAL("filenameChanged()")),
            (self.targetSRSEdit, SIGNAL("textChanged(const QString &)"),
             self.targetSRSCheck),
            (self.selectTargetSRSButton, None, self.targetSRSCheck),
            (self.creationOptionsWidget, SIGNAL("optionsChanged()")),
            (self.outsizeSpin, SIGNAL("valueChanged(const QString &)"),
             self.outsizeCheck),
            (self.nodataSpin, SIGNAL("valueChanged(int)"), self.nodataCheck),
            (self.expandCombo, SIGNAL("currentIndexChanged(int)"),
             self.expandCheck, 1600),
            (self.sdsCheck, SIGNAL("stateChanged(int)")),
            (self.srcwinEdit, SIGNAL("textChanged(const QString &)"),
             self.srcwinCheck),
            (self.prjwinEdit, SIGNAL("textChanged(const QString &)"),
             self.prjwinCheck)
        ])

        #self.connect(self.canvas, SIGNAL("layersChanged()"), self.fillInputLayerCombo)
        self.connect(self.inSelector, SIGNAL("layerChanged()"),
                     self.fillTargetSRSEditDefault)
        self.connect(self.inSelector, SIGNAL("selectClicked()"),
                     self.fillInputFile)
        self.connect(self.outSelector, SIGNAL("selectClicked()"),
                     self.fillOutputFileEdit)
        self.connect(self.selectTargetSRSButton, SIGNAL("clicked()"),
                     self.fillTargetSRSEdit)
        self.connect(self.batchCheck, SIGNAL("stateChanged( int )"),
                     self.switchToolMode)

        # add raster filters to combo
        self.formatCombo.addItems(
            Utils.FileFilter.allRastersFilter().split(";;"))
Exemplo n.º 2
0
    def setParamsStatus(self, wdgts_sgnls_chk_ver_list):
        if isinstance(wdgts_sgnls_chk_ver_list, list):
            for wdgts_sgnls_chk_ver in wdgts_sgnls_chk_ver_list:
                self.setParamsStatus(wdgts_sgnls_chk_ver)
            return

        wdgts_sgnls_chk_ver = wdgts_sgnls_chk_ver_list
        if not isinstance(wdgts_sgnls_chk_ver, tuple):
            return

        if len(wdgts_sgnls_chk_ver) > 0:
            wdgts = wdgts_sgnls_chk_ver[0]
        else:
            wdgts = None

        if len(wdgts_sgnls_chk_ver) > 1:
            sgnls = wdgts_sgnls_chk_ver[1]
        else:
            sgnls = None

        if len(wdgts_sgnls_chk_ver) > 2:
            chk = wdgts_sgnls_chk_ver[2]
        else:
            chk = None

        if len(wdgts_sgnls_chk_ver) > 3:
            ver = wdgts_sgnls_chk_ver[3]
        else:
            ver = None

        if isinstance(wdgts, list):
            for wdgt in wdgts:
                self.setParamsStatus((wdgt, sgnls, chk, ver))
            return

        wdgt = wdgts
        if not isinstance(wdgt, QWidget):
            return

        # if check version fails, disable the widget then hide both it and its enabler checkbox
        # new check for gdal 1.10, must update all widgets for this and then remove previous check
        if ver != None and isinstance(ver, int):
            gdalVerNum = Utils.GdalConfig.versionNum()
            if ver > gdalVerNum:
                wdgt.setVisible(False)
                if isinstance(chk, QWidget):
                    chk.setVisible(False)
                    chk.setChecked(False)
                sgnls = None
                chk = False

        elif ver != None:
            if not isinstance(ver, Utils.Version):
                ver = Utils.Version(ver)
            gdalVer = Utils.GdalConfig.version()
            if ver < "0" or (gdalVer != None and ver > gdalVer):
                wdgt.setVisible(False)
                if isinstance(chk, QWidget):
                    chk.setVisible(False)
                    chk.setChecked(False)
                sgnls = None
                chk = False

        # connects the passed signals to the BasePluginWidget.someValueChanged slot
        if isinstance(sgnls, list):
            for sgnl in sgnls:
                self.setParamsStatus((wdgt, sgnl, chk))
            return

        sgnl = sgnls
        if sgnl != None:
            self.connect(wdgt, sgnl, self.someValueChanged)

        # set the passed checkbox as widget enabler
        if isinstance(chk, bool):
            wdgt.setEnabled(chk)
        if ( isinstance(chk, QAbstractButton) or isinstance(chk, QGroupBox) ) and \
             chk.isCheckable():
            wdgt.setEnabled(chk.isChecked())
            self.connect(chk, SIGNAL("toggled(bool)"), wdgt.setEnabled)
            self.connect(chk, SIGNAL("toggled(bool)"), self.someValueChanged)