Ejemplo n.º 1
0
 def __init__(self, customDict, parent=None):
     """Constructor."""
     super(self.__class__, self).__init__(parent)
     self.customDict = customDict
     self.setupUi(self)
     regex = QtCore.QRegExp('[0-9][0-9\.0-9]*')
     validator = QtGui.QRegExpValidator(regex, self.measureLineEdit)
     self.measureLineEdit.setValidator(validator)
Ejemplo n.º 2
0
    def __init__(self, parent=None, iface=None):
        """Constructor for import dialog.

        .. versionadded: 3.3

        :param parent: Optional widget to use as parent.
        :type parent: QWidget

        :param iface: An instance of QgisInterface.
        :type iface: QgisInterface
        """
        QDialog.__init__(self, parent)
        self.parent = parent
        self.setupUi(self)

        title = self.tr('PetaBencana Downloader')
        self.setWindowTitle(title)
        icon = resources_path('img', 'icons', 'add-petabencana-layer.svg')
        self.setWindowIcon(QtGui.QIcon(icon))

        self.iface = iface

        self.source = None

        self.radio_button_group = QButtonGroup()
        self.radio_button_group.addButton(self.radio_button_production)
        self.radio_button_group.addButton(self.radio_button_development)

        self.radio_button_group.setExclusive(True)
        self.radio_button_production.setChecked(True)
        self.populate_combo_box()

        developer_mode = setting('developer_mode', False, bool)
        if not developer_mode:
            self.radio_button_widget.hide()
            self.source_label.hide()
            self.output_group.adjustSize()

        # signals
        self.radio_button_production.clicked.connect(self.populate_combo_box)
        self.radio_button_development.clicked.connect(self.populate_combo_box)

        # Set up things for context help
        self.help_button = self.button_box.button(
            QtWidgets.QDialogButtonBox.Help)
        # Allow toggling the help button
        self.help_button.setCheckable(True)
        self.help_button.toggled.connect(self.help_toggled)
        self.main_stacked_widget.setCurrentIndex(1)

        # set up the validator for the file name prefix
        expression = QRegExp('^[A-Za-z0-9-_]*$')
        validator = QtGui.QRegExpValidator(expression, self.filename_prefix)
        self.filename_prefix.setValidator(validator)
        self.time_stamp = None
        self.restore_state()
Ejemplo n.º 3
0
 def __init__(
         self,
         connection_settings: typing.Optional[ConnectionSettings] = None):
     super().__init__()
     self.setupUi(self)
     self._widgets_to_toggle_during_connection_test = [
         self.test_connection_pb,
         self.buttonBox,
         self.authcfg_acs,
         self.options_gb,
         self.connection_details,
         self.detected_version_gb,
     ]
     self.bar = QgsMessageBar()
     self.bar.setSizePolicy(QtWidgets.QSizePolicy.Minimum,
                            QtWidgets.QSizePolicy.Fixed)
     self.layout().insertWidget(0, self.bar, alignment=QtCore.Qt.AlignTop)
     self.discovery_task = None
     self._populate_wfs_version_combobox()
     if connection_settings is not None:
         self.connection_id = connection_settings.id
         self.remote_geonode_version = connection_settings.geonode_version
         self.name_le.setText(connection_settings.name)
         self.url_le.setText(connection_settings.base_url)
         self.authcfg_acs.setConfigId(connection_settings.auth_config)
         self.page_size_sb.setValue(connection_settings.page_size)
         wfs_version_index = self.wfs_version_cb.findData(
             connection_settings.wfs_version)
         self.wfs_version_cb.setCurrentIndex(wfs_version_index)
         if self.remote_geonode_version == network.UNSUPPORTED_REMOTE:
             utils.show_message(
                 self.bar,
                 tr("Invalid configuration. Correct GeoNode URL and/or test again."
                    ),
                 level=qgis.core.Qgis.Critical,
             )
     else:
         self.connection_id = uuid.uuid4()
         self.remote_geonode_version = None
     self.update_connection_details()
     self.buttonBox.button(QtWidgets.QDialogButtonBox.Ok).setEnabled(False)
     ok_signals = [
         self.name_le.textChanged,
         self.url_le.textChanged,
     ]
     for signal in ok_signals:
         signal.connect(self.update_ok_buttons)
     self.detect_wfs_version_pb.clicked.connect(self.detect_wfs_version)
     self.test_connection_pb.clicked.connect(self.test_connection)
     # disallow names that have a slash since that is not compatible with how we
     # are storing plugin state in QgsSettings
     self.name_le.setValidator(
         QtGui.QRegExpValidator(QtCore.QRegExp("[^\\/]+"), self.name_le))
     self.update_ok_buttons()
    def __init__(self, iface, parent=None):

        super(ResampleImageToBlockDialog, self).__init__(parent)

        # Set up the user interface from Designer.
        self.setupUi(self)

        self.iface = iface
        self.DISP_TEMP_LAYERS = read_setting(PLUGIN_NAME + '/DISP_TEMP_LAYERS', bool)
        self.DEBUG = config.get_debug_mode()

        # Catch and redirect python errors directed at the log messages python error tab.
        QgsApplication.messageLog().messageReceived.connect(errorCatcher)

        if not os.path.exists(TEMPDIR):
            os.mkdir(TEMPDIR)

        # Setup for validation messagebar on gui-----------------------------
        self.messageBar = QgsMessageBar(self)  # leave this message bar for bailouts
        self.validationLayout = QtWidgets.QFormLayout(self)  # new layout to gui

        if isinstance(self.layout(), (QtWidgets.QFormLayout, QtWidgets.QGridLayout)):
            # create a validation layout so multiple messages can be added and cleaned up.
            self.layout().insertRow(0, self.validationLayout)
            self.layout().insertRow(0, self.messageBar)
        else:
            self.layout().insertWidget(0, self.messageBar)  # for use with Vertical/horizontal layout box

        # GUI Runtime Customisation -----------------------------------------------
        self.mcboPolygonLayer.setFilters(QgsMapLayerProxyModel.PolygonLayer)
        self.mcboPolygonLayer.setExcludedProviders(['wms'])
        self.mcboPolygonLayer.setLayer(None)
        
        self.mcboRasterLayer.setFilters(QgsMapLayerProxyModel.RasterLayer)
        self.mcboRasterLayer.setExcludedProviders(['wms'])
        
        self.updateRaster()
        
        #https://stackoverflow.com/questions/13422995/set-qlineedit-to-accept-only-numbers
        #https://stackoverflow.com/questions/12643009/regular-expression-for-floating-point-numbers
        regex_validator  = QtGui.QRegExpValidator(QtCore.QRegExp("[-+]?([0-9]*[.])?[0-9]+([eE][-+]?\d+)?"))
        self.lneNoDataVal.setValidator(regex_validator)
        
        self.setWindowIcon(QtGui.QIcon(':/plugins/pat/icons/icon_resampleToBlock.svg'))
Ejemplo n.º 5
0
    def __init__(self, parent=None, iface=None):
        """Constructor for import dialog.

        :param parent: Optional widget to use as parent.
        :type parent: QWidget

        :param iface: An instance of QgisInterface.
        :type iface: QgisInterface
        """
        QDialog.__init__(self, parent)
        self.parent = parent
        self.setupUi(self)
        icon = resources_path('img', 'icons', 'show-osm-download.svg')
        self.setWindowIcon(QtGui.QIcon(icon))
        title = self.tr('InaSAFE OpenStreetMap Downloader')
        self.setWindowTitle(title)

        self.iface = iface
        self.progress_dialog = None

        # Set up things for context help
        self.help_button = self.button_box.button(
            QtWidgets.QDialogButtonBox.Help)
        # Allow toggling the help button
        self.help_button.setCheckable(True)
        self.help_button.toggled.connect(self.help_toggled)
        self.main_stacked_widget.setCurrentIndex(1)

        # Output directory
        self.directory_button.clicked.connect(self.directory_button_clicked)
        self.output_directory.setPlaceholderText(
            self.tr('[Create a temporary layer]'))

        # Disable boundaries group box until boundary checkbox is ticked
        self.boundary_group.setEnabled(False)

        # set up the validator for the file name prefix
        expression = QRegExp('^[A-Za-z0-9-_]*$')
        validator = QtGui.QRegExpValidator(expression, self.filename_prefix)
        self.filename_prefix.setValidator(validator)

        # Advanced panel
        self.line_edit_custom.setPlaceholderText(STAGING_SERVER)
        developer_mode = setting('developer_mode', expected_type=bool)
        self.group_box_advanced.setVisible(developer_mode)

        self.restore_state()

        # Setup the rectangle map tool
        self.canvas = iface.mapCanvas()
        self.rectangle_map_tool = \
            RectangleMapTool(self.canvas)
        self.rectangle_map_tool.rectangle_created.connect(
            self.update_extent_from_rectangle)
        self.capture_button.clicked.connect(self.drag_rectangle_on_map_canvas)

        # Setup pan tool
        self.pan_tool = QgsMapToolPan(self.canvas)
        self.canvas.setMapTool(self.pan_tool)

        # Setup helper for admin_level
        json_file_path = resources_path('osm', 'admin_level_per_country.json')
        if os.path.isfile(json_file_path):
            with open(json_file_path, encoding='utf-8') as f:
                self.countries = json.load(f)
                self.bbox_countries = None
                self.populate_countries()
                # connect
                self.country_comboBox.currentIndexChanged.connect(
                    self.update_helper_political_level)
                self.admin_level_comboBox.currentIndexChanged.connect(
                    self.update_helper_political_level)

        self.update_extent_from_map_canvas()
Ejemplo n.º 6
0
 def setMask(self):
     """
     REGEx closely related to the valid chars method 'setValidCharacters'
     """
     if self.scaleCombo.currentText() == '1000k':
         regex = QtCore.QRegExp('[NSns]{1}[A-Za-z]{1}\-[0-9]{1,2}')
         validator = QtGui.QRegExpValidator(regex, self.inomLineEdit)
         self.inomLineEdit.setValidator(validator)
     elif self.scaleCombo.currentText() == '500k':
         regex = QtCore.QRegExp(
             '[NSns]{1}[A-Za-z]{1}\-[0-9]{1,2}\-[V-Zv-z]{1}')
         validator = QtGui.QRegExpValidator(regex, self.inomLineEdit)
         self.inomLineEdit.setValidator(validator)
     elif self.scaleCombo.currentText() == '250k':
         regex = QtCore.QRegExp(
             '[NSns]{1}[A-Za-z]{1}\-[0-9]{1,2}\-[V-Zv-z]{1}\-[A-Da-d]{1}')
         validator = QtGui.QRegExpValidator(regex, self.inomLineEdit)
         self.inomLineEdit.setValidator(validator)
     elif self.scaleCombo.currentText() == '100k':
         regex = QtCore.QRegExp(
             '[NSns]{1}[A-Za-z]{1}\-[0-9]{1,2}\-[V-Zv-z]{1}\-[A-Da-d]{1}\-[IViv]{1,3}'
         )
         validator = QtGui.QRegExpValidator(regex, self.inomLineEdit)
         self.inomLineEdit.setValidator(validator)
     elif self.scaleCombo.currentText() == '50k':
         self.inomLineEdit.setInputMask('NN-NN-N-N-Nnn-0')
         regex = QtCore.QRegExp(
             '[NSns]{1}[A-Za-z]{1}\-[0-9]{1,2}\-[V-Zv-z]{1}\-[A-Da-d]{1}\-[IViv]{1,3}\-[1-4]{1}'
         )
         validator = QtGui.QRegExpValidator(regex, self.inomLineEdit)
         self.inomLineEdit.setValidator(validator)
     elif self.scaleCombo.currentText() == '25k':
         regex = QtCore.QRegExp(
             '[NSns]{1}[A-Za-z]{1}\-[0-9]{1,2}\-[V-Zv-z]{1}\-[A-Da-d]{1}\-[IViv]{1,3}\-[1-4]{1}\-[NSns]{1}[OEoe]{1}'
         )
         validator = QtGui.QRegExpValidator(regex, self.inomLineEdit)
         self.inomLineEdit.setValidator(validator)
     elif self.scaleCombo.currentText() == '10k':
         regex = QtCore.QRegExp(
             '[NSns]{1}[A-Za-z]{1}\-[0-9]{1,2}\-[V-Zv-z]{1}\-[A-Da-d]{1}\-[IViv]{1,3}\-[1-4]{1}\-[NSns]{1}[OEoe]{1}\-[A-Fa-f]{1}'
         )
         validator = QtGui.QRegExpValidator(regex, self.inomLineEdit)
         self.inomLineEdit.setValidator(validator)
     elif self.scaleCombo.currentText() == '5k':
         regex = QtCore.QRegExp(
             '[NSns]{1}[A-Za-z]{1}\-[0-9]{1,2}\-[V-Zv-z]{1}\-[A-Da-d]{1}\-[IViv]{1,3}\-[1-4]{1}\-[NSns]{1}[OEoe]{1}\-[A-Fa-f]{1}\-[IViv]{1,3}'
         )
         validator = QtGui.QRegExpValidator(regex, self.inomLineEdit)
         self.inomLineEdit.setValidator(validator)
     elif self.scaleCombo.currentText() == '2k':
         regex = QtCore.QRegExp(
             '[NSns]{1}[A-Za-z]{1}\-[0-9]{1,2}\-[V-Zv-z]{1}\-[A-Da-d]{1}\-[IViv]{1,3}\-[1-4]{1}\-[NSns]{1}[OEoe]{1}\-[A-Fa-f]{1}\-[IViv]{1,3}\-[1-6]{1}'
         )
         validator = QtGui.QRegExpValidator(regex, self.inomLineEdit)
         self.inomLineEdit.setValidator(validator)
     elif self.scaleCombo.currentText() == '1k':
         regex = QtCore.QRegExp(
             '[NSns]{1}[A-Za-z]{1}\-[0-9]{1,2}\-[V-Zv-z]{1}\-[A-Da-d]{1}\-[IViv]{1,3}\-[1-4]{1}\-[NSns]{1}[OEoe]{1}\-[A-Fa-f]{1}\-[IViv]{1,3}\-[1-6]{1}\-[A-Da-d]{1}'
         )
         validator = QtGui.QRegExpValidator(regex, self.inomLineEdit)
         self.inomLineEdit.setValidator(validator)