Beispiel #1
0
    def __init__(self, iface):
        QWidget.__init__(self)
        self.iface = iface

        self.setupUi(self)
        BasePluginWidget.__init__(self, self.iface, "gdalinfo")

        # we don't need load to canvas functionality
        self.base.loadCheckBox.hide()
        # make window large
        self.base.resize(400, 360)

        self.setParamsStatus([
            (self.inSelector, "filenameChanged"),
            (self.suppressGCPCheck, "stateChanged"),
            (self.suppressMDCheck, "stateChanged")
        ])

        self.inSelector.selectClicked.connect(self.fillInputFileEdit)

        # helper actions for copying info output
        self.copyLine = QAction(self.tr("Copy"), self)
        self.copyLine.triggered.connect(self.doCopyLine)
        self.copyAll = QAction(self.tr("Copy all"), self)
        self.copyAll.triggered.connect(self.doCopyAll)
Beispiel #2
0
    def __init__(self, iface):
        QWidget.__init__(self)
        self.iface = iface

        self.setupUi(self)
        BasePluginWidget.__init__(self, self.iface, "gdal_rasterize")

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

        # set the default QSpinBoxes and QProgressBar value
        self.widthSpin.setValue(3000)
        self.heightSpin.setValue(3000)
        self.horizresSpin.setValue(1)
        self.vertresSpin.setValue(1)

        self.lastEncoding = Utils.getLastUsedEncoding()

        self.setParamsStatus([
            (self.inSelector, "filenameChanged"),
            (self.outSelector, "filenameChanged"),
            (self.attributeComboBox, "currentIndexChanged"),
            ([self.widthSpin, self.heightSpin], "valueChanged"),
            ([self.horizresSpin, self.vertresSpin], "valueChanged")
        ])

        self.inSelector.selectClicked.connect(self.fillInputFileEdit)
        self.outSelector.selectClicked.connect(self.fillOutputFileEdit)
        self.inSelector.layerChanged.connect(self.fillFieldsCombo)
        self.radioSetSize.toggled.connect(self.someValueChanged)
        self.radioSetResolution.toggled.connect(self.someValueChanged)
Beispiel #3
0
    def __init__(self, iface):
        QWidget.__init__(self)
        self.iface = iface

        self.setupUi(self)
        BaseBatchWidget.__init__(self, self.iface, "gdal_fillnodata.py")

        self.inSelector.setType(self.inSelector.FILE_LAYER)
        self.outSelector.setType(self.outSelector.FILE)
        self.maskSelector.setType(self.maskSelector.FILE)

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

        self.outputFormat = Utils.fillRasterOutputFormat()

        self.setParamsStatus([
            (self.inSelector, "filenameChanged"),
            (self.outSelector, "filenameChanged"),
            (self.maskSelector, "filenameChanged", self.maskCheck),
            (self.distanceSpin, "valueChanged", self.distanceCheck),
            (self.smoothSpin, "valueChanged", self.smoothCheck),
            (self.bandSpin, "valueChanged", self.bandCheck),
            (self.nomaskCheck, "stateChanged")
        ])

        self.inSelector.selectClicked.connect(self.fillInputFile)
        self.outSelector.selectClicked.connect(self.fillOutputFile)
        self.maskSelector.selectClicked.connect(self.fillMaskFile)
        self.batchCheck.stateChanged.connect(self.switchToolMode)

        # add raster filters to combo
        self.formatCombo.addItems(Utils.FileFilter.allRastersFilter().split(";;"))
Beispiel #4
0
    def __init__(self, iface):
        QWidget.__init__(self)
        self.iface = iface

        self.setupUi(self)
        BasePluginWidget.__init__(self, self.iface, "gdal_contour")

        gdalVersion = Utils.GdalConfig.versionNum()
        self.useDirAsOutput = gdalVersion < 1700
        if self.useDirAsOutput:
            self.label_2.setText(QApplication.translate("GdalToolsWidget", "&Output directory for contour lines (shapefile)"))

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

        self.outputFormat = Utils.fillVectorOutputFormat()

        # set the default QSpinBoxes value
        self.intervalDSpinBox.setValue(10.0)

        self.setParamsStatus([
            (self.inSelector, "filenameChanged"),
            (self.outSelector, "filenameChanged"),
            (self.intervalDSpinBox, "valueChanged"),
            (self.attributeEdit, "textChanged", self.attributeCheck)
        ])

        self.inSelector.selectClicked.connect(self.fillInputFileEdit)
        self.outSelector.selectClicked.connect(self.fillOutputFileEdit)
Beispiel #5
0
    def __init__(self, iface):
        QWidget.__init__(self)
        self.iface = iface

        self.setupUi(self)
        BaseBatchWidget.__init__(self, self.iface, "pct2rgb.py")

        # we use one widget for two tools
        self.base.setWindowTitle(self.tr("Convert paletted image to RGB"))

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

        # set the default QSpinBoxes and QProgressBar value
        self.bandSpin.setValue(1)
        self.progressBar.setValue(0)

        self.progressBar.hide()
        self.outputFormat = Utils.fillRasterOutputFormat()

        self.setParamsStatus([
            (self.inSelector, "filenameChanged"),
            (self.outSelector, "filenameChanged"),
            (self.colorsSpin, "valueChanged", self.colorsCheck, "-1"),   # hide this option
            (self.bandSpin, "valueChanged", self.bandCheck)
        ])

        self.inSelector.selectClicked.connect(self.fillInputFile)
        self.outSelector.selectClicked.connect(self.fillOutputFileEdit)
        self.batchCheck.stateChanged.connect(self.switchToolMode)
Beispiel #6
0
    def __init__(self):
        QWidget.__init__(self)

        self.setWindowTitle(self.tr('Qdraw - Settings'))
        self.setFixedSize(320, 100)
        self.center()

        # default color
        self.color = QColor(60, 151, 255, 255)

        self.sld_opacity = QSlider(Qt.Horizontal, self)
        self.sld_opacity.setRange(0, 255)
        self.sld_opacity.setValue(255)
        self.sld_opacity.tracking = True
        self.sld_opacity.valueChanged.connect(self.handler_opacitySliderValue)
        self.lbl_opacity = QLabel(self.tr('Opacity') + ': 100%', self)

        self.dlg_color = QColorDialog(self)
        btn_chColor = QPushButton(self.tr('Change the drawing color'), self)
        btn_chColor.clicked.connect(self.handler_chColor)

        vbox = QVBoxLayout()
        vbox.addWidget(self.lbl_opacity)
        vbox.addWidget(self.sld_opacity)
        vbox.addWidget(btn_chColor)
        self.setLayout(vbox)
Beispiel #7
0
    def __init__(self, iface):
        QWidget.__init__(self)
        self.iface = iface

        self.setupUi(self)
        BasePluginWidget.__init__(self, self.iface, "gdal_merge.py")

        self.inSelector.setType(self.inSelector.FILE)
        self.outSelector.setType(self.outSelector.FILE)
        self.recurseCheck.hide()
        # use this for approx. previous UI
        #self.creationOptionsWidget.setType(QgsRasterFormatSaveOptionsWidget.Table)

        self.outputFormat = Utils.fillRasterOutputFormat()
        self.extent = None

        self.setParamsStatus([
            (self.inSelector, "filenameChanged"),
            (self.outSelector, "filenameChanged"),
            (self.noDataSpin, "valueChanged", self.noDataCheck),
            (self.inputDirCheck, "stateChanged"),
            (self.recurseCheck, "stateChanged", self.inputDirCheck),
            (self.separateCheck, "stateChanged"),
            (self.pctCheck, "stateChanged"),
            (self.intersectCheck, "stateChanged"),
            (self.creationOptionsWidget, "optionsChanged"),
            (self.creationOptionsGroupBox, "toggled")
        ])

        self.inSelector.selectClicked.connect(self.fillInputFilesEdit)
        self.outSelector.selectClicked.connect(self.fillOutputFileEdit)
        self.intersectCheck.toggled.connect(self.refreshExtent)
        self.inputDirCheck.stateChanged.connect(self.switchToolMode)
        self.inSelector.filenameChanged.connect(self.refreshExtent)
Beispiel #8
0
    def __init__(self, iface):
        QWidget.__init__(self)
        self.iface = iface
        self.resampling_method = ('nearest', 'average', 'gauss', 'cubic', 'average_mp', 'average_magphase', 'mode')

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

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

        self.progressBar.hide()
        # we don't need load to canvas functionality
        self.base.loadCheckBox.hide()

        self.setParamsStatus([
            (self.inSelector, "filenameChanged"),
            (self.cleanCheck, "stateChanged", None, 1700),
            (self.mPyramidOptionsWidget, "overviewListChanged"),
            (self.mPyramidOptionsWidget, "someValueChanged")
        ])

        self.inSelector.selectClicked.connect(self.fillInputFile)
        self.batchCheck.stateChanged.connect(self.switchToolMode)

        self.init = False  # workaround bug that pyramid options widgets are not initialized at first
    def __init__(self, iface):
        QWidget.__init__(self)
        self.iface = iface
        self.resolutions = ("highest", "average", "lowest")

        self.setupUi(self)
        BasePluginWidget.__init__(self, self.iface, "gdalbuildvrt")

        self.inSelector.setType(self.inSelector.FILE)
        self.outSelector.setType(self.outSelector.FILE)
        self.recurseCheck.hide()
        self.visibleRasterLayers = []

        self.setParamsStatus(
            [
                (self.inSelector, "filenameChanged"),
                (self.outSelector, "filenameChanged"),
                (self.resolutionComboBox, "currentIndexChanged", self.resolutionCheck),
                (self.noDataEdit, "textChanged", self.srcNoDataCheck, 1700),
                (self.inputDirCheck, "stateChanged"),
                (self.separateCheck, "stateChanged", None, 1700),
                (self.targetSRSEdit, "textChanged", self.targetSRSCheck),
                (self.allowProjDiffCheck, "stateChanged", None, 1700),
                (self.recurseCheck, "stateChanged", self.inputDirCheck),
                (self.inputSelLayersCheck, "stateChanged")
            ]
        )

        self.inSelector.selectClicked.connect(self.fillInputFilesEdit)
        self.outSelector.selectClicked.connect(self.fillOutputFileEdit)
        self.inputDirCheck.stateChanged.connect(self.switchToolMode)
        self.inputSelLayersCheck.stateChanged.connect(self.switchLayerMode)
        self.iface.mapCanvas().layersChanged.connect(self.switchLayerMode)
        self.selectTargetSRSButton.clicked.connect(self.fillTargetSRSEdit)
Beispiel #10
0
    def __init__(self, iface):
        QWidget.__init__(self)
        self.iface = iface

        self.setupUi(self)
        BaseBatchWidget.__init__(self, self.iface, "rgb2pct.py")

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

        # set the default QSpinBoxes and QProgressBar value
        self.colorsSpin.setValue(2)
        self.progressBar.setValue(0)

        self.progressBar.hide()
        self.outputFormat = Utils.fillRasterOutputFormat()

        self.setParamsStatus([
            (self.inSelector, "filenameChanged"),
            (self.outSelector, "filenameChanged"),
            (self.colorsSpin, "valueChanged", self.colorsCheck),
            (self.bandSpin, "valueChanged", self.bandCheck, "-1")   # hide this option
        ])

        self.inSelector.selectClicked.connect(self.fillInputFile)
        self.outSelector.selectClicked.connect(self.fillOutputFileEdit)
        self.batchCheck.stateChanged.connect(self.switchToolMode)
Beispiel #11
0
    def __init__(self, layer, geometry):
        QWidget.__init__(self)
        self.geomType = layer.geometryType()
        self.layer = layer
        self.initialGeom = QgsGeometry(geometry)

        layer.editingStopped.connect(self.layerEditable)
        layer.editingStarted.connect(self.layerEditable)
Beispiel #12
0
    def __init__(self, parent=None):
        """Constructor.

        :param parent: parent - widget to use as parent.
        :type parent: safe.gui.tools.wizard.wizard_dialog.WizardDialog
        """
        QWidget.__init__(self, parent)
        self.parent = parent
        self.setupUi(self)

        self.keyword_io = KeywordIO()
Beispiel #13
0
    def __init__(self, parent=None):
        QWidget.__init__(self, parent)

        self.setupUi(self)

        self.table.cellChanged.connect(self.cellValueChanged)

        self.table.itemSelectionChanged.connect(self.enableDeleteButton)
        self.btnAdd.clicked.connect(self.addNewRow)
        self.btnDel.clicked.connect(self.deleteRow)

        self.btnDel.setEnabled(False)
 def __init__(self):
     QWidget.__init__(self)
     layout = QVBoxLayout()
     labelName = QLabel("Name")
     labelGroup = QLabel("Group")
     self.txtName = QLineEdit()
     self.txtGroup = QLineEdit()
     layout.addWidget(labelName)
     layout.addWidget(self.txtName)
     layout.addWidget(labelGroup)
     layout.addWidget(self.txtGroup)
     layout.addStretch()
     self.setLayout(layout)
Beispiel #15
0
    def __init__(self, parent=None):
        """Constructor

        :param parent: parent - widget to use as parent.
        :type parent: QWidget
        """
        QWidget.__init__(self, parent)
        self.parent = parent
        self.setupUi(self)

        self.wizard_step = None
        self.next_button_state = False
        self.back_button_state = False
Beispiel #16
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.GdalConfig.versionNum() < 1700:
            index = self.expandCombo.findText("gray", Qt.MatchFixedString)
            if index >= 0:
                self.expandCombo.removeItem(index)

        self.outputFormat = Utils.fillRasterOutputFormat()

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

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

        # add raster filters to combo
        self.formatCombo.addItems(Utils.FileFilter.allRastersFilter().split(";;"))
Beispiel #17
0
    def __init__(self, iface):
        QWidget.__init__(self)
        self.iface = iface
        self.modes = ("hillshade", "slope", "aspect", "color-relief", "TRI", "TPI", "roughness")

        self.setupUi(self)
        BasePluginWidget.__init__(self, self.iface, "gdaldem")

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

        # set the default QSpinBoxes and QProgressBar value
        self.bandSpin.setValue(1)

        self.hillshadeZFactorSpin.setValue(1)
        self.hillshadeScaleSpin.setValue(1)
        self.hillshadeAltitudeSpin.setValue(45.0)
        self.hillshadeAzimuthSpin.setValue(315.0)
        self.slopeScaleSpin.setValue(1)

        # set the default color configuration file to terrain
        import os.path
        colorConfigFile = os.path.join(os.path.dirname(__file__), "terrain.txt")
        self.configSelector.setFilename(colorConfigFile)

        self.outputFormat = Utils.fillRasterOutputFormat()
        self.creationOptionsWidget.setFormat(self.outputFormat)

        self.setParamsStatus([
            (self.inSelector, "filenameChanged"),
            (self.outSelector, "filenameChanged"),
            (self.computeEdgesCheck, "stateChanged", None, 1800),
            (self.bandSpin, "valueChanged", self.bandCheck),
            (self.algorithmCheck, "stateChanged", None, 1800),
            (self.creationOptionsWidget, "optionsChanged"),
            (self.creationOptionsGroupBox, "toggled"),
            (self.modeCombo, "currentIndexChanged"),
            ([self.hillshadeZFactorSpin, self.hillshadeScaleSpin, self.hillshadeAltitudeSpin, self.hillshadeAzimuthSpin], "valueChanged"),
            (self.slopeScaleSpin, "valueChanged"),
            (self.slopePercentCheck, "stateChanged"),
            ([self.aspectTrigonometricCheck, self.aspectZeroForFlatCheck], "stateChanged"),
            (self.configSelector, "filenameChanged"),
            ([self.colorExactRadio, self.colorNearestRadio], "toggled", self.colorMatchGroupBox),
            (self.colorAlphaCheck, "stateChanged")
        ])

        self.inSelector.selectClicked.connect(self.fillInputFileEdit)
        self.outSelector.selectClicked.connect(self.fillOutputFileEdit)
        self.configSelector.selectClicked.connect(self.fillColorConfigFileEdit)
        self.modeCombo.currentIndexChanged.connect(self.showModeParams)
Beispiel #18
0
    def __init__(self, parent=None):
        QWidget.__init__(self, parent)
        self.canvas = None
        self.tool = None
        self.previousMapTool = None
        self.isStarted = False

        self.setupUi(self)

        self.x1CoordEdit.textChanged.connect(self.coordsChanged)
        self.x2CoordEdit.textChanged.connect(self.coordsChanged)
        self.y1CoordEdit.textChanged.connect(self.coordsChanged)
        self.y2CoordEdit.textChanged.connect(self.coordsChanged)
        self.btnEnable.clicked.connect(self.start)
 def __init__(self, iface, dockwidget, olLayerTypeRegistry):
     QWidget.__init__(self)
     Ui_Form.__init__(self)
     self.setupUi(self)
     self.__canvas = iface.mapCanvas()
     self.__dockwidget = dockwidget
     self.__olLayerTypeRegistry = olLayerTypeRegistry
     self.__initLayerOL = False
     self.__fileNameImg = ''
     self.__srsOL = QgsCoordinateReferenceSystem(
         3857, QgsCoordinateReferenceSystem.EpsgCrsId)
     self.__marker = MarkerCursor(self.__canvas, self.__srsOL)
     self.__manager = None  # Need persist for PROXY
     bindogr.initOgr()
     self.__init()
Beispiel #20
0
    def __init__(self, iface):
        QWidget.__init__(self)
        self.iface = iface
        self.canvas = self.iface.mapCanvas()
        self.algorithm = ('invdist', 'average', 'nearest', 'datametrics')
        self.datametrics = ('minimum', 'maximum', 'range')

        self.setupUi(self)
        BasePluginWidget.__init__(self, self.iface, "gdal_grid")

        self.outSelector.setType(self.outSelector.FILE)
        self.extentSelector.setCanvas(self.canvas)
        #self.extentSelector.stop()

        # set the default QSpinBoxes and QProgressBar value
        self.widthSpin.setValue(3000)
        self.heightSpin.setValue(3000)
        self.invdistPowerSpin.setValue(2.0)

        self.outputFormat = Utils.fillRasterOutputFormat()
        self.lastEncoding = Utils.getLastUsedEncoding()

        self.setParamsStatus([
            (self.inSelector, "filenameChanged"),
            (self.outSelector, "filenameChanged"),
            (self.zfieldCombo, "currentIndexChanged", self.zfieldCheck),
            (self.algorithmCombo, "currentIndexChanged", self.algorithmCheck),
            (self.stackedWidget, None, self.algorithmCheck),
            ([self.invdistPowerSpin, self.invdistSmothingSpin, self.invdistRadius1Spin, self.invdistRadius2Spin, self.invdistAngleSpin, self.invdistNoDataSpin], "valueChanged"),
            ([self.invdistMaxPointsSpin, self.invdistMinPointsSpin], "valueChanged"),
            ([self.averageRadius1Spin, self.averageRadius2Spin, self.averageAngleSpin, self.averageNoDataSpin], "valueChanged"),
            (self.averageMinPointsSpin, "valueChanged"),
            ([self.nearestRadius1Spin, self.nearestRadius2Spin, self.nearestAngleSpin, self.nearestNoDataSpin], "valueChanged"),
            (self.datametricsCombo, "currentIndexChanged"),
            ([self.datametricsRadius1Spin, self.datametricsRadius2Spin, self.datametricsAngleSpin, self.datametricsNoDataSpin], "valueChanged"),
            (self.datametricsMinPointsSpin, "valueChanged"),
            (self.extentSelector, ["selectionStarted", "newExtentDefined"], self.extentGroup),
            ([self.widthSpin, self.heightSpin], "valueChanged", self.resizeGroupBox)
        ])

        self.inSelector.selectClicked.connect(self.fillInputFileEdit)
        self.outSelector.selectClicked.connect(self.fillOutputFileEdit)
        self.inSelector.layerChanged.connect(self.fillFieldsCombo)
        self.extentGroup.toggled.connect(self.onExtentCheckedChanged)
Beispiel #21
0
    def __init__(self, iface):
        QWidget.__init__(self)
        self.iface = iface

        self.setupUi(self)
        BasePluginWidget.__init__(self, self.iface, "gdal_sieve.py")

        self.outSelector.setType(self.outSelector.FILE)
        self.outputFormat = Utils.fillRasterOutputFormat()

        self.setParamsStatus([
            (self.inSelector, "filenameChanged"),
            (self.outSelector, "filenameChanged"),
            (self.thresholdSpin, "valueChanged", self.thresholdCheck),
            (self.connectionsCombo, "currentIndexChanged", self.connectionsCheck)
        ])

        self.inSelector.selectClicked.connect(self.fillInputFileEdit)
        self.outSelector.selectClicked.connect(self.fillOutputFileEdit)
Beispiel #22
0
    def __init__(self, parent=None, type=None):
        QWidget.__init__(self, parent)

        self.setupUi(self)
        self.setFocusPolicy(Qt.StrongFocus)
        self.combo.setInsertPolicy(QComboBox.NoInsert)

        self.clear()

        self.typ = None
        if type is None:
            self.resetType()
        else:
            self.setType(type)

        self.selectBtn.clicked.connect(self.selectClicked)
        self.fileEdit.textChanged.connect(self.textChanged)
        self.combo.editTextChanged.connect(self.textChanged)
        self.combo.currentIndexChanged.connect(self.indexChanged)
Beispiel #23
0
    def __init__(self, parent=None):
        QWidget.__init__(self, parent)

        # create gui
        self.btnSelect = QToolButton()
        self.btnSelect.setText('…')
        self.lineEdit = QLineEdit()
        self.hbl = QHBoxLayout()
        self.hbl.setMargin(0)
        self.hbl.setSpacing(0)
        self.hbl.addWidget(self.lineEdit)
        self.hbl.addWidget(self.btnSelect)

        self.setLayout(self.hbl)

        self.canFocusOut = False

        self.setFocusPolicy(Qt.StrongFocus)
        self.btnSelect.clicked.connect(self.select)
Beispiel #24
0
    def __init__(self, iface):
        QWidget.__init__(self)
        self.iface = iface
        self.resampling_method = ("near", "bilinear", "cubic", "cubicspline", "lanczos")

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

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

        # set the default QSpinBoxes and QProgressBar value
        self.widthSpin.setValue(3000)
        self.heightSpin.setValue(3000)
        self.progressBar.setValue(0)

        self.progressBar.hide()

        self.outputFormat = Utils.fillRasterOutputFormat()

        self.setParamsStatus(
            [
                (self.inSelector, "filenameChanged"),
                (self.outSelector, "filenameChanged"),
                (self.sourceSRSEdit, "textChanged", self.sourceSRSCheck),
                (self.selectSourceSRSButton, None, self.sourceSRSCheck),
                (self.targetSRSEdit, "textChanged", self.targetSRSCheck),
                (self.selectTargetSRSButton, None, self.targetSRSCheck),
                (self.resamplingCombo, "currentIndexChanged", self.resamplingCheck),
                (self.cacheSpin, "valueChanged", self.cacheCheck),
                ([self.widthSpin, self.heightSpin], "valueChanged", self.resizeGroupBox),
                (self.multithreadCheck, "stateChanged"),
                (self.noDataEdit, "textChanged", self.noDataCheck),
                (self.maskSelector, "filenameChanged", self.maskCheck, 1600),
            ]
        )

        self.inSelector.layerChanged.connect(self.fillSourceSRSEditDefault)
        self.inSelector.selectClicked.connect(self.fillInputFile)
        self.outSelector.selectClicked.connect(self.fillOutputFileEdit)
        self.selectSourceSRSButton.clicked.connect(self.fillSourceSRSEdit)
        self.selectTargetSRSButton.clicked.connect(self.fillTargetSRSEdit)
        self.maskSelector.selectClicked.connect(self.fillMaskFile)
        self.batchCheck.stateChanged.connect(self.switchToolMode)
Beispiel #25
0
	def __init__(self, parent=None):
		QWidget.__init__(self, parent)
		self.setupUi(self)

		self.legendCheck.hide()
		self.smoothCheck.hide()

		self.refreshScaleButton.setIcon( QIcon( ":/pstimeseries_plugin/icons/refresh" ) )

		# limits group
		#self.connect(self.minDateEdit, SIGNAL("dateChanged(const QDate &)"), self.updateLimits)
		#self.connect(self.maxDateEdit, SIGNAL("dateChanged(const QDate &)"), self.updateLimits)
		#self.connect(self.minYEdit, SIGNAL("valueChanged(const QString &)"), self.updateLimits)
		#self.connect(self.minYEdit, SIGNAL("valueChanged(const QString &)"), self.updateLimits)
		self.refreshScaleButton.clicked.connect(self.updateLimits)

		# replica group
		self.replicaUpCheck.toggled.connect(self.updateReplicas)
		self.replicaDownCheck.toggled.connect(self.updateReplicas)
		self.replicaDistEdit.textChanged.connect(self.updateReplicas)

		# labels group
		self.xLabelEdit.textChanged.connect(self.updateLabels)
		self.yLabelEdit.textChanged.connect(self.updateLabels)

		# title group
		for i in range(3):
			edit = getattr(self, "titleParam%dEdit" % i)
			edit.textChanged.connect(self.updateTitle)
			combo = getattr(self, "titleParam%dCombo" % i)
			combo.currentIndexChanged.connect(self.updateTitle)

		# options group
		self.hGridCheck.toggled.connect(self.updateGrids)
		self.vGridCheck.toggled.connect(self.updateGrids)
		self.labelsCheck.toggled.connect(self.updateLabels)
		self.linesCheck.toggled.connect(self.updateOptions)
		self.linRegrCheck.toggled.connect(self.updateOptions)
		self.polyRegrCheck.toggled.connect(self.updateOptions)
		self.detrendingCheck.toggled.connect(self.updateOptions)
		self.smoothCheck.toggled.connect(self.updateOptions)
		self.legendCheck.toggled.connect(self.updateOptions)
Beispiel #26
0
    def __init__(self, iface):
        QWidget.__init__(self)
        self.iface = iface

        self.setupUi(self)
        BasePluginWidget.__init__(self, self.iface, "gdaltindex")

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

        self.setParamsStatus([
            (self.inSelector, "filenameChanged"),
            #( self.recurseCheck, "stateChanged" ),
            (self.outSelector, "filenameChanged"),
            (self.indexFieldEdit, "textChanged", self.indexFieldCheck),
            (self.skipDifferentProjCheck, "stateChanged", None, 1500)
        ])

        self.inSelector.selectClicked.connect(self.fillInputDirEdit)
        self.outSelector.selectClicked.connect(self.fillOutputFileEdit)
Beispiel #27
0
    def __init__(self, parent=None, selectFile=False):
        QWidget.__init__(self, parent)

        # create gui
        self.btnSelect = QToolButton()
        self.btnSelect.setText('…')
        self.lineEdit = QLineEdit()
        self.hbl = QHBoxLayout()
        self.hbl.setMargin(0)
        self.hbl.setSpacing(0)
        self.hbl.addWidget(self.lineEdit)
        self.hbl.addWidget(self.btnSelect)

        self.setLayout(self.hbl)

        self.canFocusOut = False
        self.selectFile = selectFile

        self.setFocusPolicy(Qt.StrongFocus)
        self.btnSelect.clicked.connect(self.select)
Beispiel #28
0
    def __init__(self, iface):
        QWidget.__init__(self)
        self.iface = iface

        self.setupUi(self)
        BasePluginWidget.__init__(self, self.iface, "gdaltindex")

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

        self.setParamsStatus([
            (self.inSelector, "filenameChanged"),
            #( self.recurseCheck, "stateChanged" ),
            (self.outSelector, "filenameChanged"),
            (self.indexFieldEdit, "textChanged", self.indexFieldCheck),
            (self.skipDifferentProjCheck, "stateChanged", None, 1500)
        ])

        self.inSelector.selectClicked.connect(self.fillInputDirEdit)
        self.outSelector.selectClicked.connect(self.fillOutputFileEdit)
Beispiel #29
0
    def __init__(self, parent=None):
        QWidget.__init__(self, parent)

        self.canvas = QMatplotlibCanvas()
        self.ax = self.canvas.ax
        self.figure = self.canvas.figure
        self.toolBar = NavigationToolbar2QT(self.canvas, self)

        bgColor = self.palette().color(QPalette.Background).name()
        self.figure.set_facecolor(bgColor)

        self.layout = QVBoxLayout()
        self.layout.setSpacing(2)
        self.layout.setMargin(0)

        self.layout.addWidget(self.toolBar)
        self.layout.addWidget(self.canvas)
        self.setLayout(self.layout)

        self._setupToolbar()
Beispiel #30
0
    def __init__(self, parent=None):
        QWidget.__init__(self, parent)
        self.setupUi(self)
        self.legendCheck.hide()
        self.smoothCheck.hide()
        self.refreshScaleButton.setIcon(
            QIcon(":/pstimeseries_plugin/icons/refresh"))

        # limits group
        #self.connect(self.minDateEdit, SIGNAL("dateChanged(const QDate &)"), self.updateLimits)
        #self.connect(self.maxDateEdit, SIGNAL("dateChanged(const QDate &)"), self.updateLimits)
        #self.connect(self.minYEdit, SIGNAL("valueChanged(const QString &)"), self.updateLimits)
        #self.connect(self.minYEdit, SIGNAL("valueChanged(const QString &)"), self.updateLimits)
        self.refreshScaleButton.clicked.connect(self.updateLimits)

        # replica group
        self.replicaUpCheck.toggled.connect(self.updateReplicas)
        self.replicaDownCheck.toggled.connect(self.updateReplicas)
        self.replicaDistEdit.textChanged.connect(self.updateReplicas)

        # labels group
        self.xLabelEdit.textChanged.connect(self.updateLabels)
        self.yLabelEdit.textChanged.connect(self.updateLabels)

        # title group
        for i in range(3):
            edit = getattr(self, "titleParam%dEdit" % i)
            edit.textChanged.connect(self.updateTitle)
            combo = getattr(self, "titleParam%dCombo" % i)
            combo.currentIndexChanged.connect(self.updateTitle)

        # options group
        self.hGridCheck.toggled.connect(self.updateGrids)
        self.vGridCheck.toggled.connect(self.updateGrids)
        self.labelsCheck.toggled.connect(self.updateLabels)
        self.linesCheck.toggled.connect(self.updateOptions)
        self.linRegrCheck.toggled.connect(self.updateOptions)
        self.polyRegrCheck.toggled.connect(self.updateOptions)
        self.detrendingCheck.toggled.connect(self.updateOptions)
        self.smoothCheck.toggled.connect(self.updateOptions)
        self.legendCheck.toggled.connect(self.updateOptions)
Beispiel #31
0
    def __init__(self, iface):
        QWidget.__init__(self)
        self.iface = iface
        self.resampling_method = ('near', 'bilinear', 'cubic', 'cubicspline', 'lanczos')

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

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

        # set the default QSpinBoxes and QProgressBar value
        self.widthSpin.setValue(3000)
        self.heightSpin.setValue(3000)
        self.progressBar.setValue(0)

        self.progressBar.hide()

        self.outputFormat = Utils.fillRasterOutputFormat()

        self.setParamsStatus([
            (self.inSelector, "filenameChanged"),
            (self.outSelector, "filenameChanged"),
            (self.sourceSRSEdit, "textChanged", self.sourceSRSCheck),
            (self.selectSourceSRSButton, None, self.sourceSRSCheck),
            (self.targetSRSEdit, "textChanged", self.targetSRSCheck),
            (self.selectTargetSRSButton, None, self.targetSRSCheck),
            (self.resamplingCombo, "currentIndexChanged", self.resamplingCheck),
            (self.cacheSpin, "valueChanged", self.cacheCheck),
            ([self.widthSpin, self.heightSpin], "valueChanged", self.resizeGroupBox),
            (self.multithreadCheck, "stateChanged"),
            (self.noDataEdit, "textChanged", self.noDataCheck),
            (self.maskSelector, "filenameChanged", self.maskCheck, 1600),
        ])

        self.inSelector.layerChanged.connect(self.fillSourceSRSEditDefault)
        self.inSelector.selectClicked.connect(self.fillInputFile)
        self.outSelector.selectClicked.connect(self.fillOutputFileEdit)
        self.selectSourceSRSButton.clicked.connect(self.fillSourceSRSEdit)
        self.selectTargetSRSButton.clicked.connect(self.fillTargetSRSEdit)
        self.maskSelector.selectClicked.connect(self.fillMaskFile)
        self.batchCheck.stateChanged.connect(self.switchToolMode)
 def __init__(self, dialog, server, user, repo, graph, layer=None, initialSimplify=False):
     self.graph = graph
     self.dialog = dialog
     self.server = server
     self.user = user
     self.repo = repo 
     self.layer = layer
     self.afterLayer = None
     self.beforeLayer = None
     self.extraLayers = [] # layers for the "Map" tab
     QWidget.__init__(self, iface.mainWindow())
     self.setWindowFlags(Qt.Window)
     self.simplifyLog = initialSimplify
     self.initGui()
     self.tabWidget.setVisible(False)
     self.setLabelText("Select a commit to show its content")
     self.label.setVisible(False)
     if self.graph.commits:
         self.history.setCurrentItem(self.history.topLevelItem(0))
         self.itemChanged(self.history.topLevelItem(0), None)
     self.history.currentItemChanged.connect(self.itemChanged)
    def __init__(self, history):
        QWidget.__init__(self)
        self.history = history
        self.history.historyChanged.connect(self.historyChanged)
        self.graph = history.graph
        hlayout = QHBoxLayout()
        self.searchBox = QgsFilterLineEdit()
        self.searchBox.setPlaceholderText("Enter text or date to filter")
        self.searchBox.textChanged.connect(self.filterCommits)
        hlayout.addWidget(self.searchBox)
        self.simplifyLog = False
        self.simplifyButton = QPushButton("Show Simplified History")        
        self.simplifyButton.clicked.connect(self.simplifyButtonClicked)
        hlayout.addWidget(self.simplifyButton)

        layout = QVBoxLayout()
        layout.setMargin(0)
        layout.addLayout(hlayout)

        layout.addWidget(history)
        self.setLayout(layout)
    def __init__(self, title, data, parent=None):
        QWidget.__init__(self, parent)

        self.setWindowTitle("Geology log viewer")

        formLayout = QFormLayout()
        # id
        titleW = QLineEdit(title, self)
        titleW.setReadOnly(True)

        formLayout.addRow("Description", titleW)

        # the plot
        layout = QVBoxLayout()
        self.plot = PlotView(self)
        layout.addLayout(formLayout)
        layout.addWidget(self.plot)
        self.setLayout(layout)

        self.plot.setData(data)
        self.resize(800, 600)
Beispiel #35
0
    def __init__(self, composer_wrapper, frame_item, parent=None):
        QWidget.__init__(self, parent)
        self.setupUi(self)

        self._composer_wrapper = composer_wrapper
        if isinstance(frame_item, QgsComposerFrame):
            self._composer_table_item = frame_item.multiFrame()
        else:
            self._composer_table_item = frame_item

        self._notif_bar = NotificationBar(self.vl_notification)

        # Load fields if the data source has been specified
        ds_name = self._composer_wrapper.selectedDataSource()
        self.ref_table.load_data_source_fields(ds_name)

        # Load source tables
        self.ref_table.load_link_tables()

        # Connect signals
        self._composer_wrapper.dataSourceSelected.connect(self.ref_table.on_data_source_changed)
Beispiel #36
0
    def __init__(self, iface):
        QWidget.__init__(self)
        self.iface = iface

        self.setupUi(self)
        BasePluginWidget.__init__(self, self.iface, "gdal_proximity.py")

        self.outSelector.setType(self.outSelector.FILE)
        self.outputFormat = Utils.fillRasterOutputFormat()

        self.setParamsStatus(
            [(self.inSelector, "filenameChanged"),
             (self.outSelector, "filenameChanged"),
             (self.valuesEdit, "textChanged", self.valuesCheck),
             (self.distUnitsCombo, "currentIndexChanged", self.distUnitsCheck),
             (self.maxDistSpin, "valueChanged", self.maxDistCheck),
             (self.noDataSpin, "valueChanged", self.noDataCheck),
             (self.fixedBufValSpin, "valueChanged", self.fixedBufValCheck)])

        self.inSelector.selectClicked.connect(self.fillInputFileEdit)
        self.outSelector.selectClicked.connect(self.fillOutputFileEdit)
Beispiel #37
0
    def __init__(self, iface):
        QWidget.__init__(self)
        self.iface = iface

        self.setupUi(self)
        BasePluginWidget.__init__(self, self.iface, "nearblack")

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

        # set the default QSpinBoxes value
        self.nearSpin.setValue(15)

        self.setParamsStatus([
            (self.inSelector, "filenameChanged"),
            (self.outSelector, "filenameChanged"),
            (self.nearSpin, "valueChanged", self.nearCheck),
            (self.whiteCheckBox, "stateChanged")
        ])

        self.inSelector.selectClicked.connect(self.fillInputFileEdit)
        self.outSelector.selectClicked.connect(self.fillOutputFileEdit)
Beispiel #38
0
    def __init__(self, iface):
        QWidget.__init__(self)
        self.iface = iface
        self.resolutions = ("highest", "average", "lowest")

        self.setupUi(self)
        BasePluginWidget.__init__(self, self.iface, "gdal_polygonize.py")

        self.outSelector.setType(self.outSelector.FILE)
        self.outputFormat = Utils.fillVectorOutputFormat()

        self.setParamsStatus([
            (self.inSelector, "filenameChanged"),
            (self.outSelector, "filenameChanged"),
            (self.maskSelector, "filenameChanged", self.maskCheck),
            (self.fieldEdit, "textChanged", self.fieldCheck)
        ])

        self.inSelector.selectClicked.connect(self.fillInputFileEdit)
        self.outSelector.selectClicked.connect(self.fillOutputFileEdit)
        self.maskSelector.selectClicked.connect(self.fillMaskFileEdit)
Beispiel #39
0
    def __init__(self, iface):
        QWidget.__init__(self)
        self.iface = iface

        self.setupUi(self)
        BasePluginWidget.__init__(self, self.iface, "nearblack")

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

        # set the default QSpinBoxes value
        self.nearSpin.setValue(15)

        self.setParamsStatus([
            (self.inSelector, "filenameChanged"),
            (self.outSelector, "filenameChanged"),
            (self.nearSpin, "valueChanged", self.nearCheck),
            (self.whiteCheckBox, "stateChanged")
        ])

        self.inSelector.selectClicked.connect(self.fillInputFileEdit)
        self.outSelector.selectClicked.connect(self.fillOutputFileEdit)
Beispiel #40
0
    def __init__(self, iface):
        QWidget.__init__(self)
        self.iface = iface
        self.resolutions = ("highest", "average", "lowest")

        self.setupUi(self)
        BasePluginWidget.__init__(self, self.iface, "gdal_polygonize.py")

        self.outSelector.setType(self.outSelector.FILE)
        self.outputFormat = Utils.fillVectorOutputFormat()

        self.setParamsStatus([
            (self.inSelector, "filenameChanged"),
            (self.outSelector, "filenameChanged"),
            (self.maskSelector, "filenameChanged", self.maskCheck),
            (self.fieldEdit, "textChanged", self.fieldCheck)
        ])

        self.inSelector.selectClicked.connect(self.fillInputFileEdit)
        self.outSelector.selectClicked.connect(self.fillOutputFileEdit)
        self.maskSelector.selectClicked.connect(self.fillMaskFileEdit)
Beispiel #41
0
    def __init__(self, iface):
        QWidget.__init__(self)
        self.iface = iface

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

        self.inSelector.setType(self.inSelector.FILE)

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

        self.progressBar.hide()
        self.recurseCheck.hide()

        self.setParamsStatus([(self.inSelector, "filenameChanged"),
                              (self.desiredSRSEdit, "textChanged")])

        self.inSelector.selectClicked.connect(self.fillInputFileEdit)
        self.selectDesiredSRSButton.clicked.connect(self.fillDesiredSRSEdit)
        self.batchCheck.stateChanged.connect(self.switchToolMode)
        self.recurseCheck.stateChanged.connect(self.enableRecurse)
Beispiel #42
0
    def __init__(self, parent=None, State=VIEW):
        QWidget.__init__(self, parent)
        self.setupUi(self)

        self.btnRemove.setIcon(GuiUtils.get_icon('remove.png'))
        self.btnClear.setIcon(GuiUtils.get_icon('reset.png'))
        self.btnAdd.setIcon(GuiUtils.get_icon('add.png'))

        self._defaultEditTriggers = self.tvAdminUnits.editTriggers()

        self._state = State
        self._onStateChange()

        self._notifBar = NotificationBar(self.vlNotification)

        # Configure validating line edit controls
        # invalidMsg = "{} already exists."
        # self.txtUnitCode.setModelAttr(AdminSpatialUnitSet,"Code")
        # self.txtUnitCode.setInvalidMessage(invalidMsg)
        # self.txtUnitCode.setNotificationBar(self._notifBar)
        '''
        Initialize formatter for the rendering the admin unit nodes and insert
        the root node into the tree view model.
        '''
        self._adminUnitNodeFormatter = AdminUnitFormatter(
            self.tvAdminUnits, self)
        self._rtNode = self._adminUnitNodeFormatter.rootNode

        self._adminUnitTreeModel = STRTreeViewModel(
            self._adminUnitNodeFormatter.root(), view=self.tvAdminUnits)
        self.tvAdminUnits.setModel(self._adminUnitTreeModel)
        self.tvAdminUnits.hideColumn(2)
        self.tvAdminUnits.setColumnWidth(0, 220)
        self.tvAdminUnits.expandAll()
        # Connects slots
        self.btnAdd.clicked.connect(self.onCreateAdminUnit)
        self.btnClear.clicked.connect(self.onClearSelection)
        self.btnRemove.clicked.connect(self.onDeleteSelection)
        self._adminUnitTreeModel.dataChanged.connect(self.onModelDataChanged)
Beispiel #43
0
    def __init__(self, iface):
        QWidget.__init__(self)
        self.iface = iface

        self.setupUi(self)
        BasePluginWidget.__init__(self, self.iface, "gdal_proximity.py")

        self.outSelector.setType(self.outSelector.FILE)
        self.outputFormat = Utils.fillRasterOutputFormat()

        self.setParamsStatus([
            (self.inSelector, "filenameChanged"),
            (self.outSelector, "filenameChanged"),
            (self.valuesEdit, "textChanged", self.valuesCheck),
            (self.distUnitsCombo, "currentIndexChanged", self.distUnitsCheck),
            (self.maxDistSpin, "valueChanged", self.maxDistCheck),
            (self.noDataSpin, "valueChanged", self.noDataCheck),
            (self.fixedBufValSpin, "valueChanged", self.fixedBufValCheck)
        ])

        self.inSelector.selectClicked.connect(self.fillInputFileEdit)
        self.outSelector.selectClicked.connect(self.fillOutputFileEdit)
Beispiel #44
0
    def __init__(self, parent=None):
        QWidget.__init__(self, parent)
        self.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum)

        self._vboxLayout = QVBoxLayout(self)
        self._vboxLayout.setMargin(0)

        self._cboItem = QComboBox(self)
        self._cboItem.setMinimumSize(QSize(0, 30))
        self._vboxLayout.addWidget(self._cboItem)

        self._txtOther = QLineEdit(self)
        self._txtOther.setMinimumSize(QSize(0, 30))
        self._txtOther.setVisible(False)
        self._vboxLayout.addWidget(self._txtOther)

        # We are using random text here so that the custom line edit is not shown on selecting a blank item in the list.
        self._activatorText = QApplication.translate("ComboBoxWithOther",
                                                     "Other")

        # Connect signals
        self._cboItem.currentIndexChanged[str].connect(
            self.onComboIndexChanged)
    def __init__(self,
                 plugIn,
                 parent,
                 size,
                 transparency,
                 windowFlags=Qt.Widget):
        self.plugIn = plugIn
        self.size = size
        self.transparency = transparency
        QWidget.__init__(self, parent, windowFlags)

        self.edit1 = QTextEdit(self)
        self.edit1.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        self.edit1.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        self.edit1.insertPlainText("12.3456")
        self.edit1.setReadOnly(True)

        self.edit2 = QTextEdit(self)
        self.edit2.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        self.edit2.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        self.edit2.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Fixed)
        self.edit2.insertPlainText("78.9012")
        self.edit2.setReadOnly(True)
Beispiel #46
0
    def __init__(self, iface):
        QWidget.__init__(self)
        self.iface = iface

        self.setupUi(self)
        BasePluginWidget.__init__(self, self.iface, "gdalinfo")

        # we don't need load to canvas functionality
        self.base.loadCheckBox.hide()
        # make window large
        self.base.resize(400, 360)

        self.setParamsStatus([(self.inSelector, "filenameChanged"),
                              (self.suppressGCPCheck, "stateChanged"),
                              (self.suppressMDCheck, "stateChanged")])

        self.inSelector.selectClicked.connect(self.fillInputFileEdit)

        # helper actions for copying info output
        self.copyLine = QAction(self.tr("Copy"), self)
        self.copyLine.triggered.connect(self.doCopyLine)
        self.copyAll = QAction(self.tr("Copy all"), self)
        self.copyAll.triggered.connect(self.doCopyAll)
Beispiel #47
0
    def __init__(self,
                 entity_supporting_document,
                 supporting_doc_model_cls,
                 parent=None):
        """
        Class constructor.
        :param entity_supporting_document: Object containing information
        pertaining to document types, parent entity etc.
        :type entity_supporting_document: EntitySupportingDocument
        :param supporting_doc_model_cls: Class representing the data model
        corresponding to the entity supporting document object.
        :type supporting_doc_model_cls: object
        :param parent: Parent container widget.
        :type parent: QWidget
        """
        QWidget.__init__(self, parent)

        self._init_gui()

        self._entity_supporting_doc = entity_supporting_document

        # Container for document type widgets based on lookup id
        self._doc_type_widgets = {}

        # Init document manager
        self.source_document_manager = SourceDocumentManager(
            self._entity_supporting_doc, supporting_doc_model_cls, self)

        self._load_document_types()

        # Connect signals
        self._btn_add_document.clicked.connect(
            self._on_add_supporting_document)
        self._cbo_doc_type.currentIndexChanged.connect(
            self.on_doc_type_changed)
        self._doc_tab_container.currentChanged.connect(
            self.on_tab_doc_type_changed)
Beispiel #48
0
    def __init__(self, iface):
        QWidget.__init__(self)
        self.iface = iface
        self.canvas = self.iface.mapCanvas()

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

        self.outSelector.setType(self.outSelector.FILE)
        self.extentSelector.setCanvas(self.canvas)
        self.outputFormat = Utils.fillRasterOutputFormat()

        # set the default QDoubleSpinBoxes
        self.xRes.setValue(12.5)
        self.yRes.setValue(12.5)

        self.setParamsStatus([
            (self.inSelector, "filenameChanged"),
            (self.outSelector, "filenameChanged"),
            (self.noDataSpin, "valueChanged", self.noDataCheck, 1700),
            (self.maskSelector, "filenameChanged", self.maskModeRadio, 1600),
            (self.alphaBandCheck, "stateChanged"),
            (self.cropToCutlineCheck, "stateChanged"),
            ([self.xRes, self.yRes], "valueChanged", self.setResolutionRadio),
            (self.extentSelector, ["selectionStarted",
                                   "newExtentDefined"], self.extentModeRadio),
            (self.modeStackedWidget, "currentChanged")
        ])

        self.inSelector.selectClicked.connect(self.fillInputFileEdit)
        self.outSelector.selectClicked.connect(self.fillOutputFileEdit)
        self.maskSelector.selectClicked.connect(self.fillMaskFileEdit)
        self.extentSelector.newExtentDefined.connect(self.extentChanged)
        self.extentSelector.selectionStarted.connect(self.checkRun)

        self.extentModeRadio.toggled.connect(self.switchClippingMode)
        self.keepResolutionRadio.toggled.connect(self.switchResolutionMode)
Beispiel #49
0
    def __init__(
            self,
            document_model=None,
            fileManager=None,
            mode=UPLOAD_MODE,
            parent=None,
            canRemove=True,
            view_manager=None
    ):
        QWidget.__init__(self, parent)
        self.setupUi(self)

        self.lblClose.setPixmap(GuiUtils.get_icon_pixmap('close.png'))

        self.initGui()
        self.fileInfo = None
        self.fileUUID = None
        self.document_model = document_model
        self.fileManager = fileManager
        self._mode = mode
        self._displayName = ""
        self._docSize = 0
        self._srcDoc = None
        self._fileName = ""
        self._canRemove = canRemove
        self._view_manager = view_manager

        self.curr_profile = current_profile()
        self.removed_doc = []
        self.lblClose.installEventFilter(self)
        self.lblName.installEventFilter(self)
        self._source_entity = ""
        self._doc_type = ""
        self._doc_type_id = None
        # Set defaults
        self.fileNameColor = "#5555ff"
        self.fileMetaColor = "#8f8f8f"
Beispiel #50
0
    def __init__(self,
                 parent=None,
                 value_field='',
                 def_color='#2564e1',
                 legend_name=''):
        QWidget.__init__(self, parent)

        self._value_field = value_field

        # Insert controls for editing fill color and legend names
        self.lbl_fill_color = QLabel(self)
        self.lbl_fill_color.setText(
            QApplication.translate("ValueConfigWidget", "Fill color"))
        self.fill_color_btn = QgsColorButton(
            self,
            QApplication.translate("ValueConfigWidget",
                                   "Select bar fill color"))
        self.fill_color_btn.setMaximumHeight(30)
        self.fill_color_btn.setMinimumHeight(30)
        self.fill_color_btn.setMinimumWidth(100)
        if QColor.isValidColor(def_color):
            default_color = QColor(def_color)
            self.fill_color_btn.setColor(default_color)

        self.lbl_legend_name = QLabel(self)
        self.lbl_legend_name.setText(
            QApplication.translate("ValueConfigWidget", "Legend name"))
        self.txt_legend_name = QLineEdit(self)
        self.txt_legend_name.setMaxLength(50)
        self.txt_legend_name.setMinimumHeight(30)
        self.txt_legend_name.setText(legend_name)

        self.layout = QGridLayout(self)
        self.layout.addWidget(self.lbl_fill_color, 0, 0, 1, 1)
        self.layout.addWidget(self.fill_color_btn, 0, 1, 1, 1)
        self.layout.addWidget(self.lbl_legend_name, 1, 0, 1, 1)
        self.layout.addWidget(self.txt_legend_name, 1, 1, 1, 1)
    def __init__(self, spColumnName, composerWrapper, parent=None):
        QWidget.__init__(self, parent)
        self.setupUi(self)

        self._composerWrapper = composerWrapper

        self._spColumnName = spColumnName

        self._symbol_editor = None

        self._zoom_out_level = 16

        self._zoom_fixed_scale = 1000

        self.sb_zoom.setValue(self._zoom_out_level)

        self.sb_fixed_zoom.setValue(self._zoom_fixed_scale)

        self._srid = -1

        self._geomType = ""

        # Load fields if the data source has been specified
        self._dsName = self._composerWrapper.selectedDataSource()
        self._loadFields()

        # Connect signals
        self._composerWrapper.dataSourceSelected.connect(
            self.onDataSourceChanged)
        self.sb_zoom.valueChanged.connect(self.on_zoom_level_changed)
        self.sb_fixed_zoom.valueChanged.connect(
            self.on_zoom_fixed_scale_changed)
        self.rb_relative_zoom.toggled.connect(self.on_relative_zoom_checked)

        # Set relative zoom level as the default selected option for the radio buttons
        self.rb_relative_zoom.setChecked(True)
Beispiel #52
0
    def __init__(self, iface):
        QWidget.__init__(self)
        self.iface = iface

        self.setupUi(self)
        BaseBatchWidget.__init__(self, self.iface, "gdal_fillnodata.py")

        self.inSelector.setType(self.inSelector.FILE_LAYER)
        self.outSelector.setType(self.outSelector.FILE)
        self.maskSelector.setType(self.maskSelector.FILE)

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

        self.outputFormat = Utils.fillRasterOutputFormat()

        self.setParamsStatus([
            (self.inSelector, "filenameChanged"),
            (self.outSelector, "filenameChanged"),
            (self.maskSelector, "filenameChanged", self.maskCheck),
            (self.distanceSpin, "valueChanged", self.distanceCheck),
            (self.smoothSpin, "valueChanged", self.smoothCheck),
            (self.bandSpin, "valueChanged", self.bandCheck),
            (self.nomaskCheck, "stateChanged")
        ])

        self.inSelector.selectClicked.connect(self.fillInputFile)
        self.outSelector.selectClicked.connect(self.fillOutputFile)
        self.maskSelector.selectClicked.connect(self.fillMaskFile)
        self.batchCheck.stateChanged.connect(self.switchToolMode)

        # add raster filters to combo
        self.formatCombo.addItems(
            Utils.FileFilter.allRastersFilter().split(";;"))
    def __init__(self,
                 parent,
                 network_analyzer: QgepGraphManager,
                 url: str = None):
        QWidget.__init__(self, parent)

        self.webView = QWebView()
        self.webView.setPage(QgepWebPage(self.webView))

        self.networkAnalyzer = network_analyzer

        settings = QSettings()

        layout = QVBoxLayout(self)
        if url is None:
            # Starting with QGIS 3.4, QWebView requires paths with / even on windows.
            default_url = plugin_root_path().replace(
                '\\', '/') + '/svgprofile/index.html'
            url = settings.value("/QGEP/SvgProfilePath", default_url)
            url = 'file:///' + url

        developer_mode = settings.value("/QGEP/DeveloperMode",
                                        False,
                                        type=bool)

        if developer_mode is True:
            self.webView.page().settings().setAttribute(
                QWebSettings.DeveloperExtrasEnabled, True)
        else:
            self.webView.setContextMenuPolicy(Qt.NoContextMenu)

        self.webView.load(QUrl(url))
        self.frame = self.webView.page().mainFrame()
        self.frame.javaScriptWindowObjectCleared.connect(self.initJs)

        layout.addWidget(self.webView)
 def __init__(self, plugIn, color, parent=None, windowFlags=Qt.Widget):
     self.plugIn = plugIn
     self.color = color
     self.size = 0
     QWidget.__init__(self, parent, windowFlags)
Beispiel #55
0
    def __init__(self, iface, db, parent=None):
        QWidget.__init__(self, parent)
        self.mainWindow = parent
        self.iface = iface
        self.db = db
        self.dbType = db.connection().typeNameString()
        self.connectionName = db.connection().connectionName()
        self.filter = ""
        self.modelAsync = None
        self.allowMultiColumnPk = isinstance(db, PGDatabase)  # at the moment only PostgreSQL allows a primary key to span multiple columns, SpatiaLite doesn't
        self.aliasSubQuery = isinstance(db, PGDatabase)       # only PostgreSQL requires subqueries to be aliases
        self.setupUi(self)
        self.setWindowTitle(
            self.tr(u"{0} - {1} [{2}]").format(self.windowTitle(), self.connectionName, self.dbType))

        self.defaultLayerName = self.tr('QueryLayer')

        if self.allowMultiColumnPk:
            self.uniqueColumnCheck.setText(self.tr("Column(s) with unique values"))
        else:
            self.uniqueColumnCheck.setText(self.tr("Column with unique values"))

        self.editSql.setFocus()
        self.editSql.setVerticalScrollBarPolicy(Qt.ScrollBarAsNeeded)
        self.editSql.setMarginVisible(True)
        self.initCompleter()

        settings = QgsSettings()
        self.history = settings.value('DB_Manager/queryHistory/' + self.dbType, {self.connectionName: []})
        if self.connectionName not in self.history:
            self.history[self.connectionName] = []

        self.queryHistoryWidget.setVisible(False)
        self.queryHistoryTableWidget.verticalHeader().hide()
        self.queryHistoryTableWidget.doubleClicked.connect(self.insertQueryInEditor)
        self.populateQueryHistory()
        self.btnQueryHistory.toggled.connect(self.showHideQueryHistory)

        self.btnCancel.setEnabled(False)
        self.btnCancel.clicked.connect(self.executeSqlCanceled)
        self.btnCancel.setShortcut(QKeySequence.Cancel)
        self.progressBar.setEnabled(False)
        self.progressBar.setRange(0, 100)
        self.progressBar.setValue(0)
        self.progressBar.setFormat("")
        self.progressBar.setAlignment(Qt.AlignCenter)

        # allow copying results
        copyAction = QAction("copy", self)
        self.viewResult.addAction(copyAction)
        copyAction.setShortcuts(QKeySequence.Copy)

        copyAction.triggered.connect(self.copySelectedResults)

        self.btnExecute.clicked.connect(self.executeSql)
        self.btnSetFilter.clicked.connect(self.setFilter)
        self.btnClear.clicked.connect(self.clearSql)

        self.presetStore.clicked.connect(self.storePreset)
        self.presetSaveAsFile.clicked.connect(self.saveAsFilePreset)
        self.presetLoadFile.clicked.connect(self.loadFilePreset)
        self.presetDelete.clicked.connect(self.deletePreset)
        self.presetCombo.activated[str].connect(self.loadPreset)
        self.presetCombo.activated[str].connect(self.presetName.setText)

        self.updatePresetsCombobox()

        self.geomCombo.setEditable(True)
        self.geomCombo.lineEdit().setReadOnly(True)

        self.uniqueCombo.setEditable(True)
        self.uniqueCombo.lineEdit().setReadOnly(True)
        self.uniqueModel = QStandardItemModel(self.uniqueCombo)
        self.uniqueCombo.setModel(self.uniqueModel)
        if self.allowMultiColumnPk:
            self.uniqueCombo.setItemDelegate(QStyledItemDelegate())
            self.uniqueModel.itemChanged.connect(self.uniqueChanged)                 # react to the (un)checking of an item
            self.uniqueCombo.lineEdit().textChanged.connect(self.uniqueTextChanged)  # there are other events that change the displayed text and some of them can not be caught directly

        # hide the load query as layer if feature is not supported
        self._loadAsLayerAvailable = self.db.connector.hasCustomQuerySupport()
        self.loadAsLayerGroup.setVisible(self._loadAsLayerAvailable)
        if self._loadAsLayerAvailable:
            self.layerTypeWidget.hide()  # show if load as raster is supported
            self.loadLayerBtn.clicked.connect(self.loadSqlLayer)
            self.getColumnsBtn.clicked.connect(self.fillColumnCombos)
            self.loadAsLayerGroup.toggled.connect(self.loadAsLayerToggled)
            self.loadAsLayerToggled(False)

        self._createViewAvailable = self.db.connector.hasCreateSpatialViewSupport()
        self.btnCreateView.setVisible(self._createViewAvailable)
        if self._createViewAvailable:
            self.btnCreateView.clicked.connect(self.createView)

        self.queryBuilderFirst = True
        self.queryBuilderBtn.setIcon(QIcon(":/db_manager/icons/sql.gif"))
        self.queryBuilderBtn.clicked.connect(self.displayQueryBuilder)

        self.presetName.textChanged.connect(self.nameChanged)
Beispiel #56
0
    def __init__(self, iface, layer, parent=None):
        QWidget.__init__(self, parent)
        self.iface = iface
        self.layer = layer

        uri = QgsDataSourceUri(layer.source())
        dbplugin = None
        db = None
        if layer.dataProvider().name() == 'postgres':
            dbplugin = createDbPlugin('postgis', 'postgres')
        elif layer.dataProvider().name() == 'spatialite':
            dbplugin = createDbPlugin('spatialite', 'spatialite')
        elif layer.dataProvider().name() == 'oracle':
            dbplugin = createDbPlugin('oracle', 'oracle')
        elif layer.dataProvider().name() == 'virtual':
            dbplugin = createDbPlugin('vlayers', 'virtual')
        elif layer.dataProvider().name() == 'ogr':
            dbplugin = createDbPlugin('gpkg', 'gpkg')
        if dbplugin:
            dbplugin.connectToUri(uri)
            db = dbplugin.db

        self.dbplugin = dbplugin
        self.db = db
        self.filter = ""
        self.allowMultiColumnPk = isinstance(
            db, PGDatabase
        )  # at the moment only PostgreSQL allows a primary key to span multiple columns, SpatiaLite doesn't
        self.aliasSubQuery = isinstance(
            db,
            PGDatabase)  # only PostgreSQL requires subqueries to be aliases
        self.setupUi(self)
        self.setWindowTitle(
            u"%s - %s [%s]" %
            (self.windowTitle(), db.connection().connectionName(),
             db.connection().typeNameString()))

        self.defaultLayerName = 'QueryLayer'

        if self.allowMultiColumnPk:
            self.uniqueColumnCheck.setText(
                self.tr("Column(s) with unique values"))
        else:
            self.uniqueColumnCheck.setText(
                self.tr("Column with unique values"))

        self.editSql.setFocus()
        self.editSql.setVerticalScrollBarPolicy(Qt.ScrollBarAsNeeded)
        self.editSql.setMarginVisible(True)
        self.initCompleter()

        # allow copying results
        copyAction = QAction("copy", self)
        self.viewResult.addAction(copyAction)
        copyAction.setShortcuts(QKeySequence.Copy)

        copyAction.triggered.connect(self.copySelectedResults)

        self.btnExecute.clicked.connect(self.executeSql)
        self.btnSetFilter.clicked.connect(self.setFilter)
        self.btnClear.clicked.connect(self.clearSql)

        self.presetStore.clicked.connect(self.storePreset)
        self.presetDelete.clicked.connect(self.deletePreset)
        self.presetCombo.activated[str].connect(self.loadPreset)
        self.presetCombo.activated[str].connect(self.presetName.setText)

        self.editSql.textChanged.connect(self.updatePresetButtonsState)
        self.presetName.textChanged.connect(self.updatePresetButtonsState)
        self.presetCombo.currentIndexChanged.connect(
            self.updatePresetButtonsState)

        self.updatePresetsCombobox()

        self.geomCombo.setEditable(True)
        self.geomCombo.lineEdit().setReadOnly(True)

        self.uniqueCombo.setEditable(True)
        self.uniqueCombo.lineEdit().setReadOnly(True)
        self.uniqueModel = QStandardItemModel(self.uniqueCombo)
        self.uniqueCombo.setModel(self.uniqueModel)
        if self.allowMultiColumnPk:
            self.uniqueCombo.setItemDelegate(QStyledItemDelegate())
            self.uniqueModel.itemChanged.connect(
                self.uniqueChanged)  # react to the (un)checking of an item
            self.uniqueCombo.lineEdit().textChanged.connect(
                self.uniqueTextChanged
            )  # there are other events that change the displayed text and some of them can not be caught directly

        self.layerTypeWidget.hide()  # show if load as raster is supported
        # self.loadLayerBtn.clicked.connect(self.loadSqlLayer)
        self.updateLayerBtn.clicked.connect(self.updateSqlLayer)
        self.getColumnsBtn.clicked.connect(self.fillColumnCombos)

        self.queryBuilderFirst = True
        self.queryBuilderBtn.setIcon(QIcon(":/db_manager/icons/sql.gif"))
        self.queryBuilderBtn.clicked.connect(self.displayQueryBuilder)

        self.presetName.textChanged.connect(self.nameChanged)

        # Update from layer
        # First the SQL from QgsDataSourceUri table
        sql = uri.table()
        if uri.keyColumn() == '_uid_':
            match = re.search(
                r'^\(SELECT .+ AS _uid_,\* FROM \((.*)\) AS _subq_.+_\s*\)$',
                sql, re.S | re.X)
            if match:
                sql = match.group(1)
        else:
            match = re.search(r'^\((SELECT .+ FROM .+)\)$', sql, re.S | re.X)
            if match:
                sql = match.group(1)
        # Need to check on table() since the parentheses were removed by the regexp
        if not uri.table().startswith('(') and not uri.table().endswith(')'):
            schema = uri.schema()
            if schema and schema.upper() != 'PUBLIC':
                sql = 'SELECT * FROM {0}.{1}'.format(
                    self.db.connector.quoteId(schema),
                    self.db.connector.quoteId(sql))
            else:
                sql = 'SELECT * FROM {0}'.format(
                    self.db.connector.quoteId(sql))
        self.editSql.setText(sql)
        self.executeSql()

        # Then the columns
        self.geomCombo.setCurrentIndex(
            self.geomCombo.findText(uri.geometryColumn(), Qt.MatchExactly))
        if uri.keyColumn() != '_uid_':
            self.uniqueColumnCheck.setCheckState(Qt.Checked)
            if self.allowMultiColumnPk:
                itemsData = uri.keyColumn().split(',')
                for item in self.uniqueModel.findItems("*", Qt.MatchWildcard):
                    if item.data() in itemsData:
                        item.setCheckState(Qt.Checked)
            else:
                keyColumn = uri.keyColumn()
                for item in self.uniqueModel.findItems("*", Qt.MatchWildcard):
                    if item.data() == keyColumn:
                        self.uniqueCombo.setCurrentIndex(
                            self.uniqueModel.indexFromItem(item).row())

        # Finally layer name, filter and selectAtId
        self.layerNameEdit.setText(layer.name())
        self.filter = uri.sql()
        if uri.selectAtIdDisabled():
            self.avoidSelectById.setCheckState(Qt.Checked)
    def __init__(self, title=None, image_dir=None, parent=None):
        QWidget.__init__(self, parent)

        self.__toolbar = QToolBar()
        self.__scene = MyScene(0, 0, 600, 400)
        self.__view = TimeSeriesGraphicsView(self.__scene)
        self.__view.setAlignment(Qt.AlignLeft | Qt.AlignTop)

        self.__scene.sceneRectChanged.connect(self.on_rect_changed)

        if image_dir is None:
            image_dir = os.path.join(os.path.dirname(__file__), "img")

        self.__action_move_row_up = QAction(
            QIcon(os.path.join(image_dir, "up.svg")), "Move the row up",
            self.__toolbar)
        self.__action_move_row_up.triggered.connect(self.on_move_row_up)
        self.__action_move_row_down = QAction(
            QIcon(os.path.join(image_dir, "down.svg")), "Move the row down",
            self.__toolbar)
        self.__action_move_row_down.triggered.connect(self.on_move_row_down)

        self.__action_edit_style = QAction(
            QIcon(os.path.join(image_dir, "symbology.svg")), "Edit row style",
            self.__toolbar)
        self.__action_edit_style.triggered.connect(self.on_edit_style)

        self.__action_add_row = QAction(
            QIcon(os.path.join(image_dir, "add.svg")), "Add a data row",
            self.__toolbar)
        self.__action_add_row.triggered.connect(self.on_add_row)

        self.__action_remove_row = QAction(
            QIcon(os.path.join(image_dir, "remove.svg")), "Remove the row",
            self.__toolbar)
        self.__action_remove_row.triggered.connect(self.on_remove_row)

        self.__toolbar.addAction(self.__action_move_row_up)
        self.__toolbar.addAction(self.__action_move_row_down)
        self.__toolbar.addAction(self.__action_edit_style)
        self.__toolbar.addAction(self.__action_add_row)
        self.__toolbar.addAction(self.__action_remove_row)

        self.__title_label = QLabel()
        if title is not None:
            self.set_title(title)

        self.__status_bar = QStatusBar()

        vbox = QVBoxLayout()
        vbox.addWidget(self.__title_label)
        vbox.addWidget(self.__toolbar)
        vbox.addWidget(self.__view)
        vbox.addWidget(self.__status_bar)
        self.setLayout(vbox)

        self.__station_id = None
        # (log_item, legend_item) for each row
        self.__rows = []
        # { layer : (log_item, legend_item) }
        self.__data2logitems = {}
        self.__row_heights = []

        self._min_x = None
        self._max_x = None

        self.__allow_mouse_translation = True
        self.__translation_orig = None

        self.__style_dir = os.path.join(os.path.dirname(__file__), 'styles')

        self.select_row(-1)

        self._update_row_depths()
Beispiel #58
0
    def __init__(self, ):
        QWidget.__init__(self)
        self.setupUi(self)
        self.logger = Logger()
        self.app = AppInterface()

        self.validators = Validators()

        self.restore_settings()

        self.btn_browse_file_predio_bloqueo.clicked.connect(
            make_file_selector(
                self.txt_file_path_predio_bloqueo,
                QCoreApplication.translate(
                    "SNCDataSourceWidget",
                    "Select the predio sanción .csv file with SNC data "),
                QCoreApplication.translate("SNCDataSourceWidget",
                                           'CSV File (*.csv)'),
                setting_property="snc_files_path"))

        self.btn_browse_file_predio.clicked.connect(
            make_file_selector(
                self.txt_file_path_predio,
                QCoreApplication.translate(
                    "SNCDataSourceWidget",
                    "Select the predio .csv file with SNC data "),
                QCoreApplication.translate("SNCDataSourceWidget",
                                           'CSV File (*.csv)'),
                setting_property="snc_files_path"))

        self.btn_browse_file_direccion.clicked.connect(
            make_file_selector(
                self.txt_file_path_direccion,
                QCoreApplication.translate(
                    "SNCDataSourceWidget",
                    "Select the dirección .csv file with SNC data "),
                QCoreApplication.translate("SNCDataSourceWidget",
                                           'CSV File (*.csv)'),
                setting_property="snc_files_path"))

        self.btn_browse_file_uni.clicked.connect(
            make_file_selector(
                self.txt_file_path_uni,
                QCoreApplication.translate(
                    "SNCDataSourceWidget",
                    "Select the unidad construcción .csv file with SNC data "),
                QCoreApplication.translate("SNCDataSourceWidget",
                                           'CSV File (*.csv)'),
                setting_property="snc_files_path"))

        self.btn_browse_file_uni_comp.clicked.connect(
            make_file_selector(
                self.txt_file_path_uni_comp,
                QCoreApplication.translate(
                    "SNCDataSourceWidget",
                    "Select the unidad construcción comp .csv file with SNC data "
                ),
                QCoreApplication.translate("SNCDataSourceWidget",
                                           'CSV File (*.csv)'),
                setting_property="snc_files_path"))

        self.btn_browse_file_persona.clicked.connect(
            make_file_selector(
                self.txt_file_path_persona,
                QCoreApplication.translate(
                    "SNCDataSourceWidget",
                    "Select the persona .csv file with SNC data "),
                QCoreApplication.translate("SNCDataSourceWidget",
                                           'CSV File (*.csv)'),
                setting_property="snc_files_path"))

        self.btn_browse_file_persona_predio.clicked.connect(
            make_file_selector(
                self.txt_file_path_persona_predio,
                QCoreApplication.translate(
                    "SNCDataSourceWidget",
                    "Select the persona predio .csv file with SNC data "),
                QCoreApplication.translate("SNCDataSourceWidget",
                                           'CSV File (*.csv)'),
                setting_property="snc_files_path"))

        self.btn_browse_file_ficha_m.clicked.connect(
            make_file_selector(
                self.txt_file_path_ficha_m,
                QCoreApplication.translate(
                    "SNCDataSourceWidget",
                    "Select the ficha matriz .csv file with SNC data "),
                QCoreApplication.translate("SNCDataSourceWidget",
                                           'CSV File (*.csv)'),
                setting_property="snc_files_path"))

        self.btn_browse_file_ficha_m_predio.clicked.connect(
            make_file_selector(
                self.txt_file_path_ficha_m_predio,
                QCoreApplication.translate(
                    "SNCDataSourceWidget",
                    "Select the ficha matriz predio .csv file with SNC data "),
                QCoreApplication.translate("SNCDataSourceWidget",
                                           'CSV File (*.csv)'),
                setting_property="snc_files_path"))

        self.btn_browse_file_ficha_m_torre.clicked.connect(
            make_file_selector(
                self.txt_file_path_ficha_m_torre,
                QCoreApplication.translate(
                    "SNCDataSourceWidget",
                    "Select the ficha matriz torre .csv file with SNC data "),
                QCoreApplication.translate("SNCDataSourceWidget",
                                           'CSV File (*.csv)'),
                setting_property="snc_files_path"))

        self.btn_browse_file_gdb.clicked.connect(
            make_folder_selector(self.txt_file_path_gdb,
                                 QCoreApplication.translate(
                                     "SNCDataSourceWidget", "Open GDB folder"),
                                 None,
                                 setting_property="snc_files_path"))

        file_validator_optional = FileValidator(pattern='*.csv',
                                                allow_empty=True)
        file_validator_csv = FileValidator(pattern='*.csv',
                                           allow_non_existing=False)
        dir_validator_gdb = DirValidator(pattern='*.gdb',
                                         allow_non_existing=False)

        self.txt_file_path_predio_bloqueo.setValidator(file_validator_optional)
        self.txt_file_path_predio.setValidator(file_validator_csv)
        self.txt_file_path_direccion.setValidator(file_validator_csv)
        self.txt_file_path_uni.setValidator(file_validator_csv)
        self.txt_file_path_uni_comp.setValidator(file_validator_csv)
        self.txt_file_path_persona.setValidator(file_validator_csv)
        self.txt_file_path_persona_predio.setValidator(file_validator_csv)
        self.txt_file_path_ficha_m.setValidator(file_validator_optional)
        self.txt_file_path_ficha_m_predio.setValidator(file_validator_optional)
        self.txt_file_path_ficha_m_torre.setValidator(file_validator_optional)
        self.txt_file_path_gdb.setValidator(dir_validator_gdb)

        self.txt_file_path_predio_bloqueo.textChanged.connect(
            self.validators.validate_line_edits)
        self.txt_file_path_predio.textChanged.connect(
            self.validators.validate_line_edits)
        self.txt_file_path_direccion.textChanged.connect(
            self.validators.validate_line_edits)
        self.txt_file_path_uni.textChanged.connect(
            self.validators.validate_line_edits)
        self.txt_file_path_uni_comp.textChanged.connect(
            self.validators.validate_line_edits)
        self.txt_file_path_persona.textChanged.connect(
            self.validators.validate_line_edits)
        self.txt_file_path_persona_predio.textChanged.connect(
            self.validators.validate_line_edits)
        self.txt_file_path_ficha_m.textChanged.connect(
            self.validators.validate_line_edits)
        self.txt_file_path_ficha_m_predio.textChanged.connect(
            self.validators.validate_line_edits)
        self.txt_file_path_ficha_m_torre.textChanged.connect(
            self.validators.validate_line_edits)
        self.txt_file_path_gdb.textChanged.connect(
            self.validators.validate_line_edits)

        self.txt_file_path_predio_bloqueo.textChanged.connect(
            self.emit_input_data_changed)
        self.txt_file_path_predio.textChanged.connect(
            self.emit_input_data_changed)
        self.txt_file_path_direccion.textChanged.connect(
            self.emit_input_data_changed)
        self.txt_file_path_uni.textChanged.connect(
            self.emit_input_data_changed)
        self.txt_file_path_uni_comp.textChanged.connect(
            self.emit_input_data_changed)
        self.txt_file_path_persona.textChanged.connect(
            self.emit_input_data_changed)
        self.txt_file_path_persona_predio.textChanged.connect(
            self.emit_input_data_changed)
        self.txt_file_path_ficha_m.textChanged.connect(
            self.emit_input_data_changed)
        self.txt_file_path_ficha_m_predio.textChanged.connect(
            self.emit_input_data_changed)
        self.txt_file_path_ficha_m_torre.textChanged.connect(
            self.emit_input_data_changed)
        self.txt_file_path_gdb.textChanged.connect(
            self.emit_input_data_changed)

        # Trigger validations right now
        self.txt_file_path_predio_bloqueo.textChanged.emit(
            self.txt_file_path_predio_bloqueo.text())
        self.txt_file_path_predio.textChanged.emit(
            self.txt_file_path_predio.text())
        self.txt_file_path_direccion.textChanged.emit(
            self.txt_file_path_direccion.text())
        self.txt_file_path_uni.textChanged.emit(self.txt_file_path_uni.text())
        self.txt_file_path_uni_comp.textChanged.emit(
            self.txt_file_path_uni_comp.text())
        self.txt_file_path_persona.textChanged.emit(
            self.txt_file_path_persona.text())
        self.txt_file_path_persona_predio.textChanged.emit(
            self.txt_file_path_persona_predio.text())
        self.txt_file_path_ficha_m.textChanged.emit(
            self.txt_file_path_ficha_m.text())
        self.txt_file_path_ficha_m_predio.textChanged.emit(
            self.txt_file_path_ficha_m_predio.text())
        self.txt_file_path_ficha_m_torre.textChanged.emit(
            self.txt_file_path_ficha_m_torre.text())
        self.txt_file_path_gdb.textChanged.emit(self.txt_file_path_gdb.text())
Beispiel #59
0
 def __init__(self, parent=None):
     QWidget.__init__(self, parent)
     self.ticks = 12
     self.counter = 0
     self.timer = None
     self.setMinimumSize(16, 16)
    def __init__(self, parameter, parent=None):
        """Constructor.

        :param parameter: A GroupSelectParameter object.
        :type parameter: GroupSelectParameter
        """
        QWidget.__init__(self, parent)
        self._parameter = parameter

        # Store spin box
        self.spin_boxes = {}

        # Create elements
        # Label (name)
        self.label = QLabel(self._parameter.name)

        # Layouts
        self.main_layout = QVBoxLayout()
        self.input_layout = QVBoxLayout()

        # _inner_input_layout must be filled with widget in the child class
        self.inner_input_layout = QVBoxLayout()

        self.radio_button_layout = QGridLayout()

        # Create radio button group
        self.input_button_group = QButtonGroup()

        # List widget
        self.list_widget = QListWidget()
        self.list_widget.setSelectionMode(QAbstractItemView.ExtendedSelection)
        self.list_widget.setDragDropMode(QAbstractItemView.DragDrop)
        self.list_widget.setDefaultDropAction(Qt.MoveAction)
        self.list_widget.setEnabled(False)
        self.list_widget.setSizePolicy(QSizePolicy.Maximum,
                                       QSizePolicy.Expanding)

        for i, key in enumerate(self._parameter.options):
            value = self._parameter.options[key]
            radio_button = QRadioButton(value.get('label'))
            self.radio_button_layout.addWidget(radio_button, i, 0)
            if value.get('type') == SINGLE_DYNAMIC:
                percentage_spin_box = PercentageSpinBox(self)
                self.radio_button_layout.addWidget(percentage_spin_box, i, 1)
                percentage_spin_box.setValue(value.get('value', 0))
                step = percentage_spin_box.singleStep()
                if step > 1:
                    precision = 0
                else:
                    precision = len(str(step).split('.')[1])
                    if precision > 3:
                        precision = 3
                percentage_spin_box.setDecimals(precision)
                self.spin_boxes[key] = percentage_spin_box

                # Enable spin box depends on the selected option
                if self._parameter.selected == key:
                    percentage_spin_box.setEnabled(True)
                else:
                    percentage_spin_box.setEnabled(False)

            elif value.get('type') == STATIC:
                static_value = value.get('value', 0)
                if static_value is not None:
                    self.radio_button_layout.addWidget(
                        QLabel(str(static_value * 100) + ' %'), i, 1)
            elif value.get('type') == MULTIPLE_DYNAMIC:
                if self._parameter.selected == key:
                    self.list_widget.setEnabled(True)
                else:
                    self.list_widget.setEnabled(False)

            self.input_button_group.addButton(radio_button, i)
            if self._parameter.selected == key:
                radio_button.setChecked(True)

        # Help text
        self.help_label = QLabel(self._parameter.help_text)
        self.help_label.setSizePolicy(QSizePolicy.Maximum,
                                      QSizePolicy.Expanding)
        self.help_label.setWordWrap(True)
        self.help_label.setAlignment(Qt.AlignTop)

        self.inner_input_layout.addLayout(self.radio_button_layout)
        self.inner_input_layout.addWidget(self.list_widget)

        # Put elements into layouts
        self.input_layout.addWidget(self.label)
        self.input_layout.addLayout(self.inner_input_layout)

        self.help_layout = QVBoxLayout()
        self.help_layout.addWidget(self.help_label)

        self.main_layout.addLayout(self.input_layout)
        self.main_layout.addLayout(self.help_layout)

        self.setLayout(self.main_layout)

        self.setSizePolicy(QSizePolicy.Maximum, QSizePolicy.Expanding)

        # Update list widget
        self.update_list_widget()

        # Connect signal
        # noinspection PyUnresolvedReferences
        self.input_button_group.buttonClicked.connect(
            self.radio_buttons_clicked)