def on_mEndMarkerLineEdit_textChanged(self, text): if (self.mArrow): self.mArrow.beginCommand(QString("Arrow end marker")) fi = QFileInfo(text) if (fi.exists() and fi.isFile()): self.mArrow.setEndMarker(text) else: self.mArrow.setEndMarker("") self.mArrow.update() self.mArrow.endCommand()
def _get_data_from_interface(self): """ This function extracts the data from the interface and checks that all is well and present. """ data = {} svgPathName = self.svgPathEdit.text() svgFileInfo = QFileInfo(svgPathName) if not svgFileInfo.isFile(): logger.error(msg.noSvgFileErrorText) QMessageBox.critical(None, msg.noSvgFileErrorTitle, msg.noSvgFileErrorText, QMessageBox.Close) return None else: data["svgPath"] = svgPathName name = self.symbolNameEntry.text() if not name: logger.error(msg.noNameErrorText) QMessageBox.critical(None, msg.noNameErrorTitle, msg.noNameErrorText, QMessageBox.Close) return None else: data["name"] = name # since we use this as a file path get rid of whitespace data["svgName"] = sanitize_name(name) category = self.categoryChooser.currentText() if not category: logger.error(msg.noCategoryErrorText) QMessageBox.critical(None, msg.noCategoryErrorTitle, msg.noCategoryErrorText, QMessageBox.Close) return None else: data["category"] = category data["description"] = self.symbolDescriptionEntry.toPlainText() data["width"] = self.symbolWidthSpinner.value() data["category_pos"] = "100000" return data
def vfkFileLineEdit_textChanged(self, arg1): """ :type arg1: str :return: """ info = QFileInfo(arg1) if info.isFile(): self.loadVfkButton.setEnabled(True) self.vfkFileLineEdit.setPalette(self.__mDefaultPalette) else: self.loadVfkButton.setEnabled(False) pal = QPalette(self.vfkFileLineEdit.palette()) pal.setColor(QPalette.text(), Qt.red) self.vfkFileLineEdit.setPalette(pal)
def _check_vfk_file_path(self): """Checks if the text in the browseVfkLineEdit is a path to a VFK file. If so, the loadVfkPushButton is enabled, otherwise the loadVfkPushButton is disabled. """ tempText = self.browseVfkLineEdit.text() tempFileInfo = QFileInfo(tempText) if tempFileInfo.isFile() and tempFileInfo.suffix() in (u'vfk', u'VFK'): self.loadVfkPushButton.setEnabled(True) else: self.loadVfkPushButton.setEnabled(False)
def _create_spatialite_db_file(self, dbPath): """Creates a SpatiaLite database file. Args: dbPath (str): A full path to the database. Returns: dbPath (str): A full path to the SpatiaLite database. """ dbInfo = QFileInfo(dbPath) sdbPath = QDir(dbInfo.absolutePath())\ .filePath(dbInfo.completeBaseName() + '.sdb') sdbInfo = QFileInfo(sdbPath) if not sdbInfo.isFile(): self.set_text_statusbar.emit( u'Importuji data do SpatiaLite databáze...', 0, False) QgsApplication.processEvents() sqliteDriver = ogr.GetDriverByName('SQLite') spatialiteDataSource = sqliteDriver.CreateDataSource( sdbPath, ['SPATIALITE=YES']) sqliteDataSource = ogr.Open(dbPath) for layerCode in ( self.dW.parLayerCode, ) + self.dW.vertexLayerCodes: originalLayer = sqliteDataSource.GetLayerByName(layerCode) copiedLayer = spatialiteDataSource.CopyLayer( originalLayer, layerCode, ['LAUNDER=NO']) sqliteDataSource.Destroy() spatialiteDataSource.Destroy() QgsApplication.processEvents() return sdbPath
def btnAdd_clicked(self): filePath = QFileDialog.getOpenFileName( self, "Open xml file", QCoreApplication.applicationDirPath(), "xml files(*.xml )") if filePath == "": return fileInfo = QFileInfo(filePath) if not fileInfo.isFile(): return str0 = "" drawingSpace = DrawingSpace.PaperSpace result, str0, drawingSpace = DlgChartingTemplate.smethod_0( self, str0, drawingSpace, filePath) if result: numArray = fileInfo.size() rowCount = self.parametersPanel.gridModel.rowCount() self.parametersPanel.gridModel.setItem(rowCount, 0, QStandardItem(str0)) self.parametersPanel.gridModel.setItem(rowCount, 1, QStandardItem(drawingSpace)) self.parametersPanel.gridModel.setItem( rowCount, 2, QStandardItem(str(numArray))) self.method_30()
def addStyleLayerQuery(): def getStyleDB(): drv_conn = f_connections[ name ]( uri ) cur = drv_conn['conn'].cursor() # result = runSQL( drv_conn[ 'sqlStyleTable' ], cur, drv_conn ) if not result[ 'isOk']: return result # hasTable = False if cur.fetchone() is None else True if hasTable is None: data = ( self.nameLayerSQL, drv_conn[ 'tableStyle' ] ) msg = "Error in query '%s' (for verify style). Not exist table '%s'!" % data return { 'isOk': True, 'exits': False, 'msg': msg } # data = ( drv_conn[ 'tableStyle' ], self.styleLayerSQL ) sql = "SELECT styleQML FROM %s WHERE styleName = '%s'" % data result = runSQL( sql, cur, drv_conn ) if not result[ 'isOk']: return result # value = cur.fetchone() if value is None: data = ( self.nameLayerSQL, self.styleLayerSQL, rv_conn[ 'tableStyle' ] ) msg = "Error in query '%s' (for verify style). Not exist style '%s' in table '%s'!" % data return { 'isOk': True, 'exits': False, 'msg': msg } # cur.close() drv_conn['conn'].close() # return { 'isOk': True, 'exits': True, 'qml': value[0] } # def setStyleLayer(qml): qmlFile = "%saddlayersql_action_temp.qml" % ( QgsApplication.qgisSettingsDirPath() ) if os.path.exists(qmlFile): os.remove( qmlFile ) f = codecs.open( qmlFile, 'w', encoding='utf8') f.write( qml ) f.close() # layerQuery.loadNamedStyle( qmlFile ) # os.remove( qmlFile ) if self.styleLayerSQL is None: return # File fileStyle = QFileInfo( self.styleLayerSQL ) if fileStyle.exists() and fileStyle.isFile(): layerQuery.loadNamedStyle( self.styleLayerSQL ) return # DB *** Had self.styleLayerSQL and not is file -> Need be a DB result = getStyleDB() if not result['isOk'] or not result['exits']: rb = self._addHighlightGeom() self.msgBar.pushMessage( self.nameModulus, result['msg'], QgsMessageBar.WARNING, 5 ) self._removeHighlightGeom( rb, 5 ) return # setStyleLayer( result['qml'] )
def _create_db_file(self, filePath, dbPath, layerCode, vfkDriverName): """Creates a database file. It checks if a database of the same name as the file exists. If not it creates the database with a VFK driver. Args: filePath (str): A full path to the file. dbPath (str): A full path to the database. layerCode (str): A code of the layer. vfkDriverName (str): A name of the VFK driver. Raises: dw.puError: When the VFK driver failed to open VFK file or when the SQlite driver failed to open the database. """ QgsApplication.processEvents() dbInfo = QFileInfo(dbPath) if not dbInfo.isFile(): self.set_text_statusbar.emit( u'Importuji data do SQLite databáze...', 0, False) QgsApplication.processEvents() QgsApplication.registerOgrDrivers() vfkDriver = ogr.GetDriverByName(vfkDriverName) vfkDataSource = vfkDriver.Open(filePath) QgsApplication.processEvents() if not vfkDataSource: raise self.dW.puError( self.dW, self, u'Failed to load data, "{}" is not a valid VFK datasource.' .format(dbPath), u'Data nelze načíst.', u'Data nelze načíst, "{}" není platný datový zdroj VFK.'. format(dbPath)) layerCount, layerNames = self._check_layer_code( vfkDataSource, layerCode) self.loadVfkProgressBar.setMaximum(layerCount) for i in xrange(layerCount): self.set_value_loadVfkProgressBar.emit(i + 1) self.set_text_statusbar.emit( u'Načítám vrstvu {} ({}/{})...'.format( layerNames[i], i + 1, layerCount), 0, False) QgsApplication.processEvents() self._build_geometry(layerCode, vfkDataSource) QgsApplication.processEvents() for vertexLayerCode in self.dW.vertexLayerCodes: if vertexLayerCode in layerNames: self._build_geometry(vertexLayerCode, vfkDataSource) QgsApplication.processEvents() vfkDataSource.Destroy() sqliteDriver = ogr.GetDriverByName('SQLite') sqliteDataSource = sqliteDriver.Open(dbPath) if not sqliteDataSource: raise self.dW.puError( self.dW, self, u'Failed to load data, "{}" is not a valid SQLite datasource.'. format(dbPath), u'Data nelze načíst.', u'Data nelze načíst, "{}" není platný datový zdroj SQLite.'. format(dbPath)) layerCount, layerNames = self._check_layer_code( sqliteDataSource, layerCode) sqliteDataSource.Destroy()
def open_path(self, path): qfi = QFileInfo(path) if qfi.isDir(): self.open_dir(path) elif qfi.isFile(): self.open_file(path)