コード例 #1
0
ファイル: ReliefColorsWidget.py プロジェクト: cayetanobv/QGIS
    def on_reliefClassTree_itemDoubleClicked(self, item, column):
        if not item:
            return

        if column == 0:
            d, ok = QInputDialog.getDouble(None,
                                           self.tr('Enter lower elevation class bound'),
                                           self.tr('Elevation'),
                                           float(item.text(0)),
                                           decimals=2)
            if ok:
                item.setText(0, str(d))
        elif column == 1:
            d, ok = QInputDialog.getDouble(None,
                                           self.tr('Enter upper elevation class bound'),
                                           self.tr('Elevation'),
                                           float(item.text(1)),
                                           decimals=2)
            if ok:
                item.setText(1, str(d))
        elif column == 2:
            c = QColorDialog.getColor(item.background(2).color(),
                                      None,
                                      self.tr('Select color for relief class'))
            if c.isValid():
                item.setBackground(2, QBrush(c))
コード例 #2
0
    def addWFS(self):
        if self.wfs == None: return
        try:
            lyrs = getWFSLayerNames(self.wfs, self.proxy)
        except:
            self.bar.pushMessage("Error", str(sys.exc_info()[1]), level=Qgis.Critical, duration=10)
            return
        if len(lyrs) == 0:
            self.bar.pushMessage("WFS",
                 QCoreApplication.translate("geopunt4QgisDataCatalog",
                 "Kan geen lagen vinden in: %s" % self.wfs), level=Qgis.Warning, duration=10)
            return
        elif len(lyrs) == 1:
            layerTitle = lyrs[0][1]
        else:
            layerTitle, accept = QInputDialog.getItem(self, "WFS toevoegen",
                                                            "Kies een laag om toe te voegen", [n[1] for n in lyrs],
                                                            editable=0)
            if not accept: return

        layerName = [n[0] for n in lyrs if n[1] == layerTitle][0]
        crs = [n[2] for n in lyrs if n[1] == layerTitle][0]
        url = self.wfs.split('?')[0]

        wfsUri = makeWFSuri(url, layerName, crs )

        try:
          vlayer = QgsVectorLayer(wfsUri, layerTitle, "WFS")
          QgsProject.instance().addMapLayer(vlayer)
        except:
            self.bar.pushMessage("Error", str(sys.exc_info()[1]), level=Qgis.Critical, duration=10)
            return
コード例 #3
0
ファイル: ExtentSelectionPanel.py プロジェクト: Zakui/QGIS
 def useLayerExtent(self):
     CANVAS_KEY = "Use canvas extent"
     extentsDict = {}
     extentsDict[CANVAS_KEY] = {
         "extent": iface.mapCanvas().extent(),
         "authid": iface.mapCanvas().mapSettings().destinationCrs().authid(),
     }
     extents = [CANVAS_KEY]
     layers = dataobjects.getAllLayers()
     for layer in layers:
         authid = layer.crs().authid()
         if ProcessingConfig.getSetting(ProcessingConfig.SHOW_CRS_DEF) and authid is not None:
             layerName = u"{} [{}]".format(layer.name(), authid)
         else:
             layerName = layer.name()
         extents.append(layerName)
         extentsDict[layerName] = {"extent": layer.extent(), "authid": authid}
     (item, ok) = QInputDialog.getItem(self, self.tr("Select extent"), self.tr("Use extent from"), extents, False)
     if ok:
         self.setValueFromRect(extentsDict[item]["extent"])
         if extentsDict[item]["authid"] != iface.mapCanvas().mapSettings().destinationCrs().authid():
             iface.messageBar().pushMessage(
                 self.tr("Warning"),
                 self.tr(
                     "The projection of the chosen layer is not the same as canvas projection! The selected extent might not be what was intended."
                 ),
                 QgsMessageBar.WARNING,
                 8,
             )
コード例 #4
0
    def saveToGeopackage(self):
        file_filter = self.tr('GeoPackage files (*.gpkg);;All files (*.*)', 'OutputFile')

        settings = QgsSettings()
        if settings.contains('/Processing/LastOutputPath'):
            path = settings.value('/Processing/LastOutputPath')
        else:
            path = ProcessingConfig.getSetting(ProcessingConfig.OUTPUT_FOLDER)

        filename, filter = QFileDialog.getSaveFileName(self, self.tr("Save to GeoPackage"), path,
                                                       file_filter, options=QFileDialog.DontConfirmOverwrite)

        if not filename:
            return

        layer_name, ok = QInputDialog.getText(self, self.tr('Save to GeoPackage'), self.tr('Layer name'), text=self.parameter.name().lower())
        if ok:
            self.use_temporary = False
            if not filename.lower().endswith('.gpkg'):
                filename += '.gpkg'
            settings.setValue('/Processing/LastOutputPath',
                              os.path.dirname(filename))

            uri = QgsDataSourceUri()
            uri.setDatabase(filename)
            uri.setDataSource('', layer_name,
                              'geom' if isinstance(self.parameter, QgsProcessingParameterFeatureSink) and self.parameter.hasGeometry() else None)
            self.leText.setText("ogr:" + uri.uri())

            self.skipOutputChanged.emit(False)
            self.destinationChanged.emit()
コード例 #5
0
ファイル: AttributesTable.py プロジェクト: jeremyk6/qgeric
 def exportLayer(self):
     if self.tabWidget.count() != 0:
         index = self.tabWidget.currentIndex()
         table = self.tabWidget.widget(index).findChildren(QTableWidget)[0]
         items = table.selectedItems()
         if len(items) > 0:
             type = ''
             if items[0].feature.geometry().type() == QgsWkbTypes.PointGeometry:
                 type = 'Point'
             elif items[0].feature.geometry().type() == QgsWkbTypes.LineGeometry:
                 type = 'LineString'
             else:
                 type = 'Polygon'
             features = []
             for item in items:
                 if item.feature not in features:
                     features.append(item.feature)
             name = ''
             ok = True
             while not name.strip() and ok == True:
                 name, ok = QInputDialog.getText(self, self.tr('Layer name'), self.tr('Give a name to the layer:'))
             if ok:
                 layer = QgsVectorLayer(type+"?crs="+table.crs.authid(),name,"memory")
                 layer.startEditing()
                 layer.dataProvider().addAttributes(features[0].fields().toList())
                 layer.dataProvider().addFeatures(features)
                 layer.commitChanges()
                 QgsProject.instance().addMapLayer(layer)
         else:
             self.mb.pushWarning(self.tr('Warning'), self.tr('There is no selected feature !'))
コード例 #6
0
ファイル: selector.py プロジェクト: cratcliff/themeselector
    def rename_maptheme(self):
        theme = self.dockwidget.PresetComboBox.currentText()
        quest = QInputDialog.getText(None,
                                     self.tr(u'Rename Theme'),
                                     self.tr(u'New Name:'),
                                     0,
                                     theme
                                     )
        root = QgsProject.instance().layerTreeRoot()
        model = iface.layerTreeView().layerTreeModel()
        name, ok = quest
        if ok and name != "":
            rec = QgsProject.instance().mapThemeCollection().createThemeFromCurrentState(root, model)
            QgsProject.instance().mapThemeCollection().insert(name, rec)
            self.populate()
            QgsProject.instance().mapThemeCollection().applyTheme(
                name, root, model
            )

            QgsProject.instance().mapThemeCollection().removeMapTheme(theme)

            self.populate()
            self.theme_changed()
            self.set_combo_text(name)
            return
        else:
            return
コード例 #7
0
ファイル: postgis.py プロジェクト: pgRouting/pgRoutingLayer
    def connect(self, selected, parent=None):
        settings = QSettings()
        settings.beginGroup(u"/%s/connections/%s" % (self.getSettingsKey(), selected))

        if not settings.contains("database"):  # non-existent entry?
            raise DbError('there is no defined database connection "%s".' % selected)

        get_value_str = lambda x: str(settings.value(x) if Utils.isSIPv2() else settings.value(x).toString())
        service, host, port, database, username, password = list(map(get_value_str, ["service", "host", "port", "database", "username", "password"]))

        # qgis1.5 use 'savePassword' instead of 'save' setting
        isSave = settings.value("save") if Utils.isSIPv2() else settings.value("save").toBool()
        isSavePassword = settings.value("savePassword") if Utils.isSIPv2() else settings.value("savePassword").toBool()
        if not (isSave or isSavePassword):
            (password, ok) = QInputDialog.getText(parent, "Enter password", 'Enter password for connection "%s":' % selected, QLineEdit.Password)
            if not ok: return

        settings.endGroup()

        uri = QgsDataSourceUri()
        if service:
            uri.setConnection(service, database, username, password)
        else:
            uri.setConnection(host, port, database, username, password)

        return Connection(uri)
コード例 #8
0
    def saveToGeopackage(self):
        file_filter = self.tr('GeoPackage files (*.gpkg);;All files (*.*)', 'OutputFile')

        settings = QgsSettings()
        if settings.contains('/Processing/LastOutputPath'):
            path = settings.value('/Processing/LastOutputPath')
        else:
            path = ProcessingConfig.getSetting(ProcessingConfig.OUTPUT_FOLDER)

        filename, filter = QFileDialog.getSaveFileName(self, self.tr("Save to GeoPackage"), path,
                                                       file_filter, options=QFileDialog.DontConfirmOverwrite)

        if not filename:
            return

        layer_name, ok = QInputDialog.getText(self, self.tr('Save to GeoPackage'), self.tr('Layer name'), text=self.parameter.name().lower())
        if ok:
            self.use_temporary = False
            if not filename.lower().endswith('.gpkg'):
                filename += '.gpkg'
            settings.setValue('/Processing/LastOutputPath',
                              os.path.dirname(filename))

            uri = QgsDataSourceUri()
            uri.setDatabase(filename)
            uri.setDataSource('', layer_name,
                              'geom' if isinstance(self.parameter, QgsProcessingParameterFeatureSink) and self.parameter.hasGeometry() else None)
            self.leText.setText("ogr:" + uri.uri())

            self.skipOutputChanged.emit(False)
コード例 #9
0
 def dbCreateSchema(self):
     schemaName, ok = QInputDialog.getText(self, 'New schema', 'New schema name:')
     if ok:
         self.rdb.create_schema(schemaName)
         self.connChanged(self.curConnName, schema_name=schemaName)
     else:
         self.addInfo('Creating new schema cancelled.')
コード例 #10
0
def authenticate():
    # PKCE.  Generates a challenge that the server will use to ensure that the
    # auth_code only works with our verifier.  https://tools.ietf.org/html/rfc7636
    code_verifier = ee.oauth._base64param(os.urandom(32))
    code_challenge = ee.oauth._base64param(hashlib.sha256(code_verifier).digest())
    auth_url = ee.oauth.get_authorization_url(code_challenge)
    tiny_url_ok, auth_url = tiny_url(auth_url)

    webbrowser.open_new(auth_url)

    print('\nGoogle Earth Engine Authorization:\n'
          'If the web browser does not start automatically, '
          'start it manually and open the following URL:\n"{}"'.format(auth_url))

    token, ok = QInputDialog.getText(None, 'Authorization',
                                     'Google Earth Engine Python is not detected on this machine.\n'
                                     'This plugin uses Google Earth Engine Python API and requires\n'
                                     'users to be authorized, please follow the instructions in the\n'
                                     'opened web page and paste the resulting auth token here.\n\n'
                                     'If the web page does not open automatically,\n'
                                     + ('visit the following link manually:\nURL: {}'.format(auth_url)
                                     if tiny_url_ok else 'visit the link that appears in the python console'))

    if ok and token:
        ee.oauth._obtain_and_write_token(token.strip(), code_verifier)
        return True
    else:
        return False
コード例 #11
0
ファイル: dlg_sql_window.py プロジェクト: vignesh882/QGIS
 def createView(self):
     name, ok = QInputDialog.getText(None, "View name", "View name")
     if ok:
         try:
             self.db.connector.createSpatialView(name, self._getSqlQuery())
         except BaseError as e:
             DlgDbError.showError(e, self)
コード例 #12
0
ファイル: dlg_sql_window.py プロジェクト: spono/QGIS
 def createView(self):
     name, ok = QInputDialog.getText(None, "View name", "View name")
     if ok:
         try:
             self.db.connector.createSpatialView(name, self._getSqlQuery())
         except BaseError as e:
             DlgDbError.showError(e, self)
コード例 #13
0
    def _addReverse(self, adres):
        formattedAddress, locationType = adres["FormattedAddress"], adres[
            "LocationType"]
        xlam72, ylam72 = adres["Location"]["X_Lambert72"], adres["Location"][
            "Y_Lambert72"]

        if not hasattr(self, 'layerName_reverse'):
            layerName, accept = QInputDialog.getText(
                None,
                QCoreApplication.translate("geopunt4Qgis", 'Laag toevoegen'),
                QCoreApplication.translate("geopunt4Qgis",
                                           'Geef een naam voor de laag op:'))
            if accept == False: return
            else: self.layerName_reverse = layerName

        xy = self.gh.prjPtToMapCrs([xlam72, ylam72], 31370)
        self.gh.save_adres_point(xy,
                                 formattedAddress,
                                 locationType,
                                 layername=self.layerName_reverse,
                                 startFolder=os.path.join(
                                     self.startDir, self.layerName_reverse),
                                 saveToFile=self.saveToFile_reverse,
                                 sender=self.iface.mainWindow())
        self.iface.messageBar().popWidget()
        self._clearGraphicLayer()
コード例 #14
0
ファイル: ExtentSelectionPanel.py プロジェクト: njam/QGIS
 def useLayerExtent(self):
     CANVAS_KEY = 'Use canvas extent'
     extentsDict = {}
     extentsDict[CANVAS_KEY] = {
         "extent": iface.mapCanvas().extent(),
         "authid":
         iface.mapCanvas().mapSettings().destinationCrs().authid()
     }
     extents = [CANVAS_KEY]
     layers = QgsProcessingUtils.compatibleLayers(QgsProject.instance())
     for layer in layers:
         authid = layer.crs().authid()
         if ProcessingConfig.getSetting(ProcessingConfig.SHOW_CRS_DEF) \
                 and authid is not None:
             layerName = u'{} [{}]'.format(layer.name(), authid)
         else:
             layerName = layer.name()
         extents.append(layerName)
         extentsDict[layerName] = {
             "extent": layer.extent(),
             "authid": authid
         }
     (item, ok) = QInputDialog.getItem(self, self.tr('Select extent'),
                                       self.tr('Use extent from'), extents,
                                       False)
     if ok:
         self.setValueFromRect(
             QgsReferencedRectangle(
                 extentsDict[item]["extent"],
                 QgsCoordinateReferenceSystem(extentsDict[item]["authid"])))
コード例 #15
0
 def useLayerExtent(self):
     CANVAS_KEY = 'Use canvas extent'
     extentsDict = {}
     extentsDict[CANVAS_KEY] = {
         "extent": iface.mapCanvas().extent(),
         "authid":
         iface.mapCanvas().mapSettings().destinationCrs().authid()
     }
     extents = [CANVAS_KEY]
     layers = QgsProcessingUtils.compatibleLayers(QgsProject.instance())
     for layer in layers:
         authid = layer.crs().authid()
         if ProcessingConfig.getSetting(ProcessingConfig.SHOW_CRS_DEF) \
                 and authid is not None:
             layerName = u'{} [{}]'.format(layer.name(), authid)
         else:
             layerName = layer.name()
         extents.append(layerName)
         extentsDict[layerName] = {
             "extent": layer.extent(),
             "authid": authid
         }
     (item, ok) = QInputDialog.getItem(self, self.tr('Select extent'),
                                       self.tr('Use extent from'), extents,
                                       False)
     if ok:
         self.setValueFromRect(extentsDict[item]["extent"])
         if extentsDict[item]["authid"] != iface.mapCanvas().mapSettings(
         ).destinationCrs().authid():
             iface.messageBar().pushMessage(
                 self.tr("Warning"),
                 self.
                 tr("The projection of the chosen layer is not the same as canvas projection! The selected extent might not be what was intended."
                    ), QgsMessageBar.WARNING, 8)
コード例 #16
0
    def linkFeatureManyToManyPolymorphic(self):

        nmRelations = dict()
        for relation in self._polymorphicRelation.generateRelations():
            nmRelations[relation.referencedLayer().name()] = relation

        layerName, ok = QInputDialog.getItem(self,
                                             self.tr("Please selct a layer"),
                                             self.tr("Layer:"),
                                             nmRelations.keys())

        if not ok:
            return

        nmRelation = nmRelations[layerName]
        selectionDlg = QgsFeatureSelectionDlg(nmRelation.referencedLayer(),
                                              self.editorContext(), self)
        selectionDlg.setWindowTitle(
            self.tr("Please select the features to link. Layer: {0}").format(
                layerName))
        if not selectionDlg.exec():
            return

        # Fields of the linking table
        fields = self.relation().referencingLayer().fields()

        linkAttributes = dict()
        linkAttributes[fields.indexFromName(
            self._polymorphicRelation.referencedLayerField(
            ))] = self._polymorphicRelation.layerRepresentation(
                nmRelation.referencedLayer())
        for key in self.relation().fieldPairs():
            linkAttributes[fields.indexOf(key)] = self.feature().attribute(
                self.relation().fieldPairs()[key])

        # Expression context for the linking table
        context = self.relation().referencingLayer().createExpressionContext()

        featureIterator = nmRelation.referencedLayer().getFeatures(
            QgsFeatureRequest().setFilterFids(
                selectionDlg.selectedFeatures()).setSubsetOfAttributes(
                    nmRelation.referencedFields()))
        relatedFeature = QgsFeature()
        newFeatures = []
        while featureIterator.nextFeature(relatedFeature):
            for key in nmRelation.fieldPairs():
                linkAttributes[fields.indexOf(key)] = relatedFeature.attribute(
                    nmRelation.fieldPairs()[key])

            linkFeature = QgsVectorLayerUtils.createFeature(
                self.relation().referencingLayer(), QgsGeometry(),
                linkAttributes, context)
            newFeatures.append(linkFeature)

        self.relation().referencingLayer().addFeatures(newFeatures)
        ids = []
        for feature in newFeatures:
            ids.append(feature.id())
        self.relation().referencingLayer().selectByIds(ids)
コード例 #17
0
 def showGoogleMapsApiKeyDialog(self):
     apiKey = QSettings().value("Plugin-OpenLayers/googleMapsApiKey")
     newApiKey, ok = QInputDialog.getText(
         self.iface.mainWindow(), "API key",
         "Enter your Google Maps API key", QLineEdit.Normal, apiKey)
     if ok:
         QSettings().setValue("Plugin-OpenLayers/googleMapsApiKey",
                              newApiKey)
コード例 #18
0
 def forkRepo(self):
     name = self.repo if not self.belongsToLoggedUser else self.repo + "_2"
     repoName, okPressed = QInputDialog.getText(navigatorInstance,
                                                "Fork repo",
                                                "Name for forked repo:",
                                                text=name)
     if okPressed:
         self.server.forkRepo(self.user, self.repo, repoName)
コード例 #19
0
 def ask_url(self, default_text=None):
     text, ok = QInputDialog.getText(
         self,
         tr("Add new model repository"),
         tr("Repository URL:"),
         QLineEdit.Normal,
         default_text)
     return text, ok
コード例 #20
0
 def createTag(self, item):
     tagname, ok = QInputDialog.getText(self, 'Tag name',
                                        'Enter the tag name:')
     if ok:
         self.repo.createtag(item.commit.commitid, tagname)
         w = self.itemWidget(item, 0)
         w.tags.append(tagname)
         w.updateText()
コード例 #21
0
 def showThunderforestApiKeyDialog(self):
     apiKey = QSettings().value("Plugin-OpenLayers/thunderforestApiKey")
     newApiKey, ok = QInputDialog.getText(
         self.iface.mainWindow(), "API key",
         "Enter your API key (<a href=\"https://thunderforest.com/pricing/\">https://thunderforest.com</a>)", QLineEdit.Normal, apiKey)
     if ok:
         QSettings().setValue("Plugin-OpenLayers/thunderforestApiKey",
                              newApiKey)
コード例 #22
0
 def ask_for_CRS(self, set_locale):
     # USER MUST SELECT CRS FIRST!!
     if set_locale == 'sv_SE':
         default_crs = 3006
     else:
         default_crs = 4326
     EPSGID = QInputDialog.getInt(None, "Select CRS", "Give EPSG-ID (integer) corresponding to\nthe CRS you want to use in the database:",default_crs)
     return EPSGID
コード例 #23
0
 def update_space_info_json(self):
     # dialog = PlainTextDialog("")
     space_info = self.get_space_info()
     txt = json.dumps(space_info,indent=4)
     txt, ok = QInputDialog.getMultiLineText(None, "Edit Space JSON", "Only change this if you know what you're doing", txt)
     if ok:
         space_info = json.loads(txt)
         self.set_space_info(space_info)
コード例 #24
0
 def set_personal_api_key(self):
     """Setting active Personal API Key."""
     pak, accept = QInputDialog.getText(self, "Personal API Key",
                                        "Paste your Personal API Key:")
     if accept is False:
         return
     self.set_3di_auth(pak)
     self.set_personal_api_key_label(True)
コード例 #25
0
 def get_eid(self, events_npz):
     self.events_npz = events_npz
     events = events_npz['array']
     self.eid = -1  # assuming events start from 0
     if 'GEM_QGIS_TEST' in os.environ:
         self.eid = self.get_closest_element(self.eid, events['id'])
         ok = True
     elif 'scenario' in self.calculation_mode:
         range_width = self.oqparam['number_of_ground_motion_fields']
         ranges = {}
         for gsim_idx, gsim in enumerate(self.gsims):
             ranges[gsim] = (gsim_idx * range_width,
                             gsim_idx * range_width + range_width - 1)
         ranges_str = ''
         for gsim in ranges:
             ranges_str += '\n%s: %s' % (gsim, ranges[gsim])
         input_msg = "Ranges:%s" % ranges_str
     else:
         input_msg = "Range (%s - %s)" % (events[0]['id'], events[-1]['id'])
     if 'GEM_QGIS_TEST' not in os.environ:
         while self.eid not in events['id']:
             if self.eid == -1:
                 is_first_iteration = True
             self.eid = self.get_closest_element(self.eid, events['id'])
             if is_first_iteration:
                 msg = 'The first relevant event id is %s' % self.eid
                 level = 'I'
             else:
                 msg = 'The closest relevant event id is %s' % self.eid
                 level = 'W'
             log_msg(msg, level=level, message_bar=self.iface.messageBar())
             self.eid, ok = QInputDialog.getInt(self.drive_engine_dlg,
                                                'Select an event ID',
                                                input_msg, self.eid,
                                                events[0]['id'],
                                                events[-1]['id'])
             if not ok:
                 self.reject()
                 return
     if not ok:
         self.reject()
         return
     log_msg(
         'Extracting ground motion fields.'
         ' Watch progress in QGIS task bar',
         level='I',
         message_bar=self.iface.messageBar())
     self.extract_npz_task = ExtractNpzTask('Extract ground motion fields',
                                            QgsTask.CanCancel,
                                            self.session,
                                            self.hostname,
                                            self.calc_id,
                                            self.output_type,
                                            self.finalize_init,
                                            self.on_extract_error,
                                            params={'event_id': self.eid})
     QgsApplication.taskManager().addTask(self.extract_npz_task)
コード例 #26
0
def get_password():
    """Return Linux user Password."""
    password, ok = QInputDialog.getText(
        None,
        "Enter Linux user password for install missing dependencies",
        "Password:"******""
コード例 #27
0
 def on_clone_btn_clicked(self):
     title = (self.selected_proj_def['title'] +
              ' (copy)' if 'title' in self.selected_proj_def else '(copy)')
     title, ok = QInputDialog().getText(self,
                                        tr('Assign a title'),
                                        tr('Project definition title'),
                                        text=title)
     if ok:
         self.add_proj_def(title, self.selected_proj_def)
コード例 #28
0
 def dbDeleteSchema(self):
     schemaName, ok = QInputDialog.getText(self, 'Delete schema', 'Schema name:')
     if ok:
         self.rdb.drop_schema(schemaName, cascade=True)
         if self.rdb.SCHEMA == schemaName:
             self.connChanged()
         else:
             self.ui.schemasCbo.removeItem(self.ui.schemasCbo.findText(schemaName))
     else:
         self.addInfo('Droping schema cancelled.')
コード例 #29
0
    def _save_configuration(self):
        service_type = self.get_current_service_type()
        name, ok = QInputDialog.getText(self, self.tr('Save Service Configuration'),
                                        self.tr('Save the current service configuration as'))
        if not name or not ok:
            return

        filter_widget = self.get_service_filter_widget(service_type)
        SERVICE_MANAGER.save_service(service_type, name, filter_widget.to_service_definition())
        self.set_current_service(service_type, name)
コード例 #30
0
 def layernameValid(self):   
     if not hasattr(self, 'layerName'):
       layerName, accept = QInputDialog.getText(None,
           QCoreApplication.translate("geopunt4Qgis", 'Laag toevoegen'),
           QCoreApplication.translate("geopunt4Qgis", 'Geef een naam voor de laag op:') )
       if accept == False: 
          return False
       else: 
          self.layerName = layerName
     return True
コード例 #31
0
ファイル: inventoryTools.py プロジェクト: sgtrafael/DsgTools
 def insertExtension(self):
     '''
     Inserts a new extension to be analyzed
     '''
     text = QInputDialog.getText(self,
                                 self.tr('Type the extension'),
                                 self.tr('File extension'),
                                 mode=QLineEdit.Normal)
     item = QTreeWidgetItem(self.treeWidget.invisibleRootItem())
     item.setText(0, text[0])
コード例 #32
0
 def configurar(self):
     contras = QInputDialog.getText(None, 'CONTRASEÑA',
                                    'Introduce la contraseña')
     print(contras)
     if contras[0] == 'SIGMENITA':
         self.dlg2.show()
     else:
         iface.messageBar().pushMessage(
             "PARA CONFIGURAR INRODUCIR CONTRASEÑA", qgisCore.Qgis.Warning,
             5)
コード例 #33
0
ファイル: utils.py プロジェクト: Oostjoost/OIV_project-1
def user_input_label(label_req, question):
    label = ''
    qid = QInputDialog()
    #communiceer met de gebruiker voor input, waarbij question de vraag is die wordt gesteld
    if label_req < '2':
        while True:
            label, ok = QInputDialog.getText(
                qid,
                "Label:",
                question,
                QLineEdit.Normal,
            )
            if ok:
                if label != '' or label_req == '0':
                    return label
                    break
            else:
                label = 'Cancel'
                return label
                break
コード例 #34
0
 def pick_item(self, title, message, parent=None, *items):
     """Getting item from list of items."""
     parent = parent if parent is not None else self.iface.mainWindow()
     item, accept = QInputDialog.getItem(parent,
                                         title,
                                         message,
                                         items,
                                         editable=False)
     if accept is False:
         return None
     return item
コード例 #35
0
 def ask_for_CRS(self, set_locale):
     # USER MUST SELECT CRS FIRST!!
     if set_locale == 'sv_SE':
         default_crs = 3006
     else:
         default_crs = 4326
     EPSGID = QInputDialog.getInt(
         None, "Select CRS",
         "Give EPSG-ID (integer) corresponding to\nthe CRS you want to use in the database:",
         default_crs)
     return EPSGID
コード例 #36
0
    def set_display_name_button_clicked(self):
        """
        Method to change display name
        """
        layer_names_ids = pg_layerNamesIDMapping().reverse
        layer = self.iface.activeLayer()

        if layer is not None:
            table_name = layer_names_ids.get(layer.id(), '')

            if table_name:
                # Check if the table name is in the current profile
                if table_name in self._profile_spatial_layers:
                    prompt = \
                        "Set the display name for '{0}' layer".format(
                            layer.name()
                        )
                    display_name, ok = QInputDialog.getText(
                        self, 'Spatial Unit '
                        'Manager', prompt)

                    if ok and display_name:
                        # Get layer table and columns names
                        table, column = self._layer_table_column(layer)
                        if table and column:
                            idx, layer_info = \
                                self._layer_info_from_table_column(
                                    table,
                                    column
                                )
                            # Get item in the combo corresponding to the layer
                            if idx != -1:
                                self.stdm_layers_combo.setItemText(
                                    idx, display_name)
                                layer.setName(display_name)

                                # Update configuration item
                                config_item = layer_info.get('item', None)
                                if config_item is not None:
                                    config_item.layer_display_name = \
                                        display_name

                                    # Update configuration
                                    save_configuration()

                else:
                    msg = QApplication.translate(
                        "Spatial Unit Manager", "The layer does not "
                        "belong in the '{0}' "
                        "profile.\nThe display name "
                        "will not be set."
                        "".format(self._curr_profile.name))
                    QMessageBox.critical(self.iface.mainWindow(),
                                         'Spatial Unit Manager', msg)
コード例 #37
0
 def layernameValid(self):
     if not hasattr(self, 'layerName'):
         layerName, accept = QInputDialog.getText(
             None,
             QCoreApplication.translate("geopunt4Qgis", 'Laag toevoegen'),
             QCoreApplication.translate("geopunt4Qgis",
                                        'Geef een naam voor de laag op:'))
         if accept == False:
             return False
         else:
             self.layerName = layerName
     return True
コード例 #38
0
 def savePntClicked(self):
     if not hasattr(self, 'sampleLayerTxt'):
        layerName, accept = QInputDialog.getText(None,
           QCoreApplication.translate("geopunt4Qgis", 'Laag toevoegen'),
           QCoreApplication.translate("geopunt4Qgis", 'Geef een naam voor de laag op:') )
        if accept == False: 
           return
        else:  
           self.sampleLayerTxt = layerName
   
     if self.profile != None:
        title = self.ax.get_title()
        self.eh.save_sample_points( self.profile, title, 
                                self.sampleLayerTxt, self.samplesSavetoFile, sender=self )
コード例 #39
0
 def saveLineClicked(self):
     if not hasattr(self, 'profileLineLayerTxt'):
        layerName, accept = QInputDialog.getText(None,
           QCoreApplication.translate("geopunt4Qgis", 'Laag toevoegen'),
           QCoreApplication.translate("geopunt4Qgis", 'Geef een naam voor de laag op:') )
        if accept == False: 
           return
        else:  
           self.profileLineLayerTxt = layerName
        
     if self.profile != None and self.Rubberline != None:
        title = self.ax.get_title()
        self.eh.save_profile( self.Rubberline.asGeometry(), self.profile, title,
                           self.profileLineLayerTxt, self.profileLineSavetoFile, sender=self )
コード例 #40
0
 def useLayerExtent(self):
     CANVAS_KEY = 'Use canvas extent'
     extentsDict = {}
     extentsDict[CANVAS_KEY] = {"extent": iface.mapCanvas().extent(),
                                "authid": iface.mapCanvas().mapSettings().destinationCrs().authid()}
     extents = [CANVAS_KEY]
     for layer in QgsProject.instance().mapLayers().values():
         authid = layer.crs().authid()
         layerName = layer.name()
         extents.append(layerName)
         extentsDict[layerName] = {"extent": layer.extent(), "authid": authid}
     (item, ok) = QInputDialog.getItem(self, self.tr('Select extent'),
                                       self.tr('Use extent from'), extents, False)
     if ok:
         self.setValue(extentsDict[item]["extent"], extentsDict[item]['authid'])
コード例 #41
0
ファイル: plugin.py プロジェクト: wongjimsan/QGIS
    def createSchemaActionSlot(self, item, action, parent):
        QApplication.restoreOverrideCursor()
        try:
            if not isinstance(item, (DBPlugin, Schema, Table)) or item.database() is None:
                parent.infoBar.pushMessage(
                    QApplication.translate("DBManagerPlugin", "No database selected or you are not connected to it."),
                    QgsMessageBar.INFO, parent.iface.messageTimeout())
                return
            (schema, ok) = QInputDialog.getText(parent, QApplication.translate("DBManagerPlugin", "New schema"),
                                                QApplication.translate("DBManagerPlugin", "Enter new schema name"))
            if not ok:
                return
        finally:
            QApplication.setOverrideCursor(Qt.WaitCursor)

        self.createSchema(schema)
コード例 #42
0
ファイル: ExtentSelectionPanel.py プロジェクト: aaime/QGIS
 def useLayerExtent(self):
     extentsDict = {}
     extents = []
     layers = QgsProcessingUtils.compatibleLayers(QgsProject.instance())
     for layer in layers:
         authid = layer.crs().authid()
         if ProcessingConfig.getSetting(ProcessingConfig.SHOW_CRS_DEF) \
                 and authid is not None:
             layerName = u'{} [{}]'.format(layer.name(), authid)
         else:
             layerName = layer.name()
         extents.append(layerName)
         extentsDict[layerName] = {"extent": layer.extent(), "authid": authid}
     (item, ok) = QInputDialog.getItem(self, self.tr('Select Extent'),
                                       self.tr('Use extent from'), extents, 0, False)
     if ok:
         self.setValueFromRect(QgsReferencedRectangle(extentsDict[item]["extent"], QgsCoordinateReferenceSystem(extentsDict[item]["authid"])))
コード例 #43
0
ファイル: geopunt4qgis.py プロジェクト: warrieka/geopunt4Qgis
 def _addReverse(self, adres):
     formattedAddress, locationType = adres["FormattedAddress"] , adres["LocationType"]
     xlam72, ylam72 = adres["Location"]["X_Lambert72"] , adres["Location"]["Y_Lambert72"]
 
     if not hasattr(self, 'layerName_reverse'):
        layerName, accept = QInputDialog.getText(None,
          QCoreApplication.translate("geopunt4Qgis", 'Laag toevoegen'),
          QCoreApplication.translate("geopunt4Qgis", 'Geef een naam voor de laag op:'))
        if accept == False: return
        else:  self.layerName_reverse = layerName
        
     xy = self.gh.prjPtToMapCrs([xlam72, ylam72], 31370)
     self.gh.save_adres_point(xy, formattedAddress, locationType, layername=self.layerName_reverse, 
       startFolder=os.path.join( self.startDir, self.layerName_reverse), saveToFile=self.saveToFile_reverse ,
       sender=self.iface.mainWindow())
     self.iface.messageBar().popWidget()	
     self._clearGraphicLayer()
コード例 #44
0
	def _askTStablename(self, ps_layer, default_tblname=None):
		# utility function used to ask to the user the name of the table
		# containing time series data
		if default_tblname is None:
			default_tblname = ""

		# ask a tablename to the user
		if ps_layer.id() != self.last_ps_layerid or not self.ts_tablename:
			tblname, ok = QInputDialog.getText( self.iface.mainWindow(),
					"PS Time Series Viewer",
					"Insert the name of the table containing time-series",
					text=default_tblname )
			if not ok:
				return False

			self.ts_tablename = tblname
			self.last_ps_layerid = ps_layer.id()

		return True
コード例 #45
0
 def createRepo(self):
     name, ok = QInputDialog.getText(self, 'Create repository',
                                           'Enter the repository name:')
     if ok:
         group = self.comboEndpoint.currentText()
         url = repository.repoEndpoints[group]
         try:
             repo = execute(lambda: createRepoAtUrl(url, group, name))
         except GeoGigException as e:
             config.iface.messageBar().pushMessage("Error", str(e),
                            level=QgsMessageBar.CRITICAL,
                            duration=5)
             return
         item = RepoItem(self, self.repoTree, repo)
         addRepo(repo)
         self.repoTree.addTopLevelItem(item)
         config.iface.messageBar().pushMessage("Create repository", "Repository correctly created",
                                        level=QgsMessageBar.INFO,
                                        duration=5)
コード例 #46
0
ファイル: drawtools.py プロジェクト: jeremyk6/qdraw
 def canvasReleaseEvent(self, e):
     '''La sélection est faîte'''
     if not e.button() == Qt.LeftButton:
         return None
     self.status = 0
     if self.rb.numberOfVertices() > 3:
         self.selectionDone.emit()
     else:
         radius, ok = QInputDialog.getDouble(
             self.iface.mainWindow(), tr('Radius'),
             tr('Give a radius in m:'), min=0)
         if radius > 0 and ok:
             cp = self.toMapCoordinates(e.pos())
             cp.setX(cp.x() + radius)
             rbcircle(self.rb, self.toMapCoordinates(
                 e.pos()), cp, self.segments)
             self.rb.show()
             self.selectionDone.emit()
     return None
コード例 #47
0
 def setDelim(self, idx):
     txt = self.ui.delimSelect.itemText(idx)
     accept = True
     if txt == 'Puntcomma':
         self.delimiter = ';'
         self.loadTable()
     elif txt == 'Comma':
         self.delimiter = ','
         self.loadTable()
     elif txt ==  'Tab':
         self.delimiter = '\t'
         self.loadTable()
     else:
         delimiter, accept = QInputDialog.getText(self, 
             QCoreApplication.translate("batcGeoCodedialog","Andere separator") , 
             QCoreApplication.translate("batcGeoCodedialog","Stel zelf een separator in: (Maximaal 1 karakter)"))
         if accept:
             self.delimiter = str( delimiter.strip()[0])
             self.ui.delimEdit.setText(self.delimiter)
             self.loadTable()
コード例 #48
0
 def editLayerName(self, index):
     item = index.data(role=Qt.UserRole)
     name, status = QInputDialog.getText(self, self.tr('Change name'),
         self.tr('Enter new layer name for %s') % item.name,
         text = item.name)
     if status and name != item.name:
         result = self.editLayerMetadata(item, {'name':name})
         if result['layer']['name'] == name:
             self.iface.messageBar().pushMessage('DIVI',
                 self.tr('Name of layer %s was changed to %s.') % (item.name, name),
                 duration = 3
             )
             item.name = name
             index.model().dataChanged.emit(index, index)
         else:
             self.iface.messageBar().pushMessage('DIVI',
                 self.tr('Error occured while changing name.'),
                 Qgis.Critical,
                 duration = 3
             )
コード例 #49
0
 def __init__(self, question="YesNo", msg = '', dialogtitle='User input needed', parent=None):
     self.result = ''
     if question == 'YesNo':         #  Yes/No dialog
         reply = QMessageBox.information(parent, dialogtitle, msg, QMessageBox.Yes | QMessageBox.No, QMessageBox.Yes)
         if reply==QMessageBox.Yes:
             self.result = 1 #1 = "yes"
         else:
             self.result = 0  #0="no"
     elif question == 'AllSelected': # All or Selected Dialog
         btnAll = QPushButton("All")   # = "0"
         btnSelected = QPushButton("Selected")     # = "1"
         #btnAll.clicked.connect(lambda x: self.DoForAll())
         #btnSelected.clicked.connect(lambda x: self.DoForSelected())
         msgBox = QMessageBox(parent)
         msgBox.setText(msg)
         msgBox.setWindowTitle(dialogtitle)
         #msgBox.setWindowModality(Qt.ApplicationModal)
         msgBox.addButton(btnAll, QMessageBox.ActionRole)
         msgBox.addButton(btnSelected, QMessageBox.ActionRole)
         msgBox.addButton(QMessageBox.Cancel)
         reply = msgBox.exec_()
         self.result = reply  # ALL=0, SELECTED=1
     elif question == 'DateShift':
         supported_units = ['microseconds', 'milliseconds', 'seconds', 'minutes', 'hours', 'days', 'weeks']
         while True:
             answer = str(QInputDialog.getText(None, "User input needed", "Give needed adjustment of date/time for the data.\nSupported format: +- X <resolution>\nEx: 1 hours, -1 hours, -1 days\nSupported units:\n%s"%', '.join(supported_units), QLineEdit.Normal, '0 hours')[0])
             if not answer:
                 self.result = 'cancel'
                 break
             else:
                 adjustment_unit = answer.split()
                 if len(adjustment_unit) == 2:
                     if adjustment_unit[1] in supported_units:
                         self.result = adjustment_unit
                         break
                     else:
                         pop_up_info("Failure:\nOnly support resolutions\n%s"%', '.join(supported_units))
                 else:
                     pop_up_info("Failure:\nMust write time resolution also.\n")
コード例 #50
0
 def createTag(self, item):
     tagname, ok = QInputDialog.getText(self, 'Tag name',
                                           'Enter the tag name:')
     if ok:
         self.repo.createtag(item.commit.commitid, tagname)
         self.updateTags(item.commit.commitid, tagname)
コード例 #51
0
 def createBranch(self):
     text, ok = QInputDialog.getText(self.tree, 'Create New Branch',
                                           'Enter the name for the new branch:')
     if ok:
         self.repo.createbranch(self.branch, text.replace(" ", "_"))
         repoWatcher.repoChanged.emit(self.repo)
コード例 #52
0
 def changeHeader(self, index):
     txt, ok = QInputDialog.getText(self, self.tr("Enter column name"), self.tr("Column name"))
     if ok:
         self.tblView.model().setHeaderData(index, Qt.Horizontal, txt)
コード例 #53
0
ファイル: qdraw.py プロジェクト: jeremyk6/qdraw
    def draw(self):
        rb = self.tool.rb
        g = rb.asGeometry()

        ok = True
        warning = False
        errBuffer_noAtt = False
        errBuffer_Vertices = False

        layer = self.iface.layerTreeView().currentLayer()
        if self.toolname == 'drawBuffer':
            if self.bGeom is None:
                warning = True
                errBuffer_noAtt = True
            else:
                perim, ok = QInputDialog.getDouble(
                    self.iface.mainWindow(), self.tr('Perimeter'),
                    self.tr('Give a perimeter in m:')
                    + '\n'+self.tr('(works only with metric crs)'),
                    min=0)
                g = self.bGeom.buffer(perim, 40)
                rb.setToGeometry(g, QgsVectorLayer(
                    "Polygon?crs="+layer.crs().authid(), "", "memory"))
                if g.length() == 0 and ok:
                    warning = True
                    errBuffer_Vertices = True

        if self.toolname == 'drawCopies':
            if g.length() < 0:
                warning = True
                errBuffer_noAtt = True

        if ok and not warning:
            name = ''
            ok = True
            add = False
            index = 0
            layers = []
            while not name.strip() and not add and ok:
                dlg = QDrawLayerDialog(self.iface, self.drawShape)
                name, add, index, layers, ok = dlg.getName(
                    self.iface, self.drawShape)
        if ok and not warning:
            layer = None
            if add:
                layer = layers[index]
                if self.drawShape in ['point', 'XYpoint']:
                    g = g.centroid()
            else:
                if self.drawShape == 'point':
                    layer = QgsVectorLayer("Point?crs="+self.iface.mapCanvas().mapSettings().destinationCrs().authid()+"&field="+self.tr('Drawings')+":string(255)", name, "memory")
                    g = g.centroid()  # force geometry as point
                elif self.drawShape == 'XYpoint':
                    layer = QgsVectorLayer("Point?crs="+self.XYcrs.authid()+"&field="+self.tr('Drawings')+":string(255)", name, "memory")
                    g = g.centroid()
                elif self.drawShape == 'line':
                    layer = QgsVectorLayer("LineString?crs="+self.iface.mapCanvas().mapSettings().destinationCrs().authid()+"&field="+self.tr('Drawings')+":string(255)", name, "memory")
                    # fix_print_with_import
                    print("LineString?crs="+self.iface.mapCanvas().mapSettings().destinationCrs().authid()+"&field="+self.tr('Drawings')+":string(255)")
                else:
                    layer = QgsVectorLayer("Polygon?crs="+self.iface.mapCanvas().mapSettings().destinationCrs().authid()+"&field="+self.tr('Drawings')+":string(255)", name, "memory")
            layer.startEditing()
            symbols = layer.renderer().symbols(QgsRenderContext())  # todo which context ?
            symbols[0].setColor(self.settings.getColor())
            feature = QgsFeature()
            feature.setGeometry(g)
            feature.setAttributes([name])
            layer.dataProvider().addFeatures([feature])
            layer.commitChanges()
            if not add:
                pjt = QgsProject.instance()
                pjt.addMapLayer(layer, False)
                if pjt.layerTreeRoot().findGroup(self.tr('Drawings')) is None:
                    pjt.layerTreeRoot().insertChildNode(
                        0, QgsLayerTreeGroup(self.tr('Drawings')))
                group = pjt.layerTreeRoot().findGroup(
                    self.tr('Drawings'))
                group.insertLayer(0, layer)
            self.iface.layerTreeView().refreshLayerSymbology(layer.id())
            self.iface.mapCanvas().refresh()
        else:
            if warning:
                if errBuffer_noAtt:
                    self.iface.messageBar().pushWarning(
                        self.tr('Warning'),
                        self.tr('You didn\'t click on a layer\'s attribute !'))
                elif errBuffer_Vertices:
                    self.iface.messageBar().pushWarning(
                        self.tr('Warning'),
                        self.tr('You must give a non-null value for a \
point\'s or line\'s perimeter !'))
                else:
                    self.iface.messageBar().pushWarning(
                        self.tr('Warning'),
                        self.tr('There is no selected layer, or it is not \
vector nor visible !'))
        self.tool.reset()
        self.resetSB()
        self.bGeom = None
コード例 #54
0
    def accept(self):
        try:
            nodata = self.ui.IDC_tbNoDataExport.text()
            self.settings.nodata_value = int(nodata) if nodata != "" else None
            QgsMessageLog.logMessage("Maindlg: nodata: {0}".format(self.settings.nodata_value), "VoGis", Qgis.Info)

            if self.settings.onlyHektoMode is True and self.settings.mapData.rasters.count() > 0:
                self.settings.onlyHektoMode = False

            if self.settings.onlyHektoMode is False:
                if self.settings.mapData.rasters.count() < 1:
                   retVal = QMessageBox.warning(self.iface.mainWindow(),
                                                "VoGIS-Profiltool",
                                                QApplication.translate("code", "Keine Rasterebene vorhanden oder sichtbar! Nur hektometrieren?"),
                                                QMessageBox.Yes | QMessageBox.No,
                                                QMessageBox.Yes)
                   if retVal == QMessageBox.No:
                       return
                   else:
                       self.settings.onlyHektoMode = True
                       self.settings.createHekto = True

            if self.__getSettingsFromGui() is False:
                return

            if self.settings.onlyHektoMode is False:
                if len(self.settings.mapData.rasters.selectedRasters()) < 1:
                    QMessageBox.warning(self.iface.mainWindow(),
                                        "VoGIS-Profiltool",
                                        QApplication.translate("code", "Kein Raster selektiert!"))
                    return

            QgsMessageLog.logMessage("modeLine!=line: {0}".format(self.settings.modeLine != enumModeLine.line), "VoGis", Qgis.Info)
            QgsMessageLog.logMessage("customLine is None: {0}".format(self.settings.mapData.customLine is None), "VoGis", Qgis.Info)

            if self.settings.modeLine != enumModeLine.line and self.settings.mapData.customLine is None:
                QMessageBox.warning(self.iface.mainWindow(),
                                    "VoGIS-Profiltool",
                                    QApplication.translate("code", "Keine Profillinie vorhanden!"))
                return

            if len(self.settings.mapData.polygons.selected_polygons()) > 0 and len(self.settings.mapData.rasters.selectedRasters()) > 1:
                raster_names = list(raster.name for raster in self.settings.mapData.rasters.selectedRasters())
                sel_raster, ok_clicked = QInputDialog.getItem(
                                                self.iface.mainWindow(),
                                                "DHM?",
                                                "Welches DHM soll zur Flächenverschneidung verwendet werden?",
                                                raster_names,
                                                0,
                                                False
                                                )
                if ok_clicked is False:
                    return

                self.settings.intersection_dhm_idx = raster_names.index(sel_raster)

            QApplication.setOverrideCursor(Qt.WaitCursor)

            create_profile = CreateProfile(self.iface, self.settings)
            thread = QThread(self)
            create_profile.moveToThread(thread)
            create_profile.finished.connect(self.profiles_finished)
            create_profile.error.connect(self.profiles_error)
            create_profile.progress.connect(self.profiles_progress)
            thread.started.connect(create_profile.create)
            thread.start(QThread.LowestPriority)
            self.thread = thread
            self.create_profile = create_profile
            self.ui.buttonBox.button(QDialogButtonBox.Ok).setEnabled(False)
        except:
            QApplication.restoreOverrideCursor()
            ex = "{0}".format(traceback.format_exc())
            msg = "Unexpected ERROR:\n\n{0}".format(ex[:2000])
            QMessageBox.critical(self.iface.mainWindow(), "VoGIS-Profiltool", msg)