2 changes: 1 addition & 1 deletion python/plugins/db_manager/db_plugins/html_elems.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ def setAttr(self, name, value):
def getAttrsHtml(self):
html = u''
for k, v in self.attrs.iteritems():
html += u' %s="%s"' % ( k, QStringList(v).join(' ') )
html += u' %s="%s"' % ( k, u' '.join(v) )
return html

def openTagHtml(self):
Expand Down
6 changes: 3 additions & 3 deletions python/plugins/db_manager/db_plugins/plugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,7 @@ def sqlResultModel(self, sql, parent):
def toSqlLayer(self, sql, geomCol, uniqueCol, layerName="QueryLayer", layerType=None, avoidSelectById=False):
from qgis.core import QgsMapLayer, QgsVectorLayer, QgsRasterLayer
uri = self.uri()
uri.setDataSource("", u"(%s\n)" % sql, geomCol, QString(), uniqueCol)
uri.setDataSource("", u"(%s\n)" % sql, geomCol, "", uniqueCol)
if avoidSelectById:
uri.disableSelectAtId( True )
provider = self.dbplugin().providerName()
Expand Down Expand Up @@ -552,9 +552,9 @@ def info(self):
def uri(self):
uri = self.database().uri()
schema = self.schemaName() if self.schemaName() else ''
geomCol = self.geomColumn if self.type in [Table.VectorType, Table.RasterType] else QString()
geomCol = self.geomColumn if self.type in [Table.VectorType, Table.RasterType] else ""
uniqueCol = self.getValidQGisUniqueFields(True) if self.isView else None
uri.setDataSource(schema, self.name, geomCol if geomCol else QString(), QString(), uniqueCol.name if uniqueCol else QString() )
uri.setDataSource(schema, self.name, geomCol if geomCol else "", "", uniqueCol.name if uniqueCol else "" )
return uri

def mimeUri(self):
Expand Down
4 changes: 2 additions & 2 deletions python/plugins/db_manager/db_plugins/postgis/data_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,9 @@ def _createCursor(self):

def _sanitizeTableField(self, field):
# get fields, ignore geometry columns
if QString(field.dataType).toLower() == "geometry":
if field.dataType.lower() == "geometry":
return u"CASE WHEN %(fld)s IS NULL THEN NULL ELSE GeometryType(%(fld)s) END AS %(fld)s" % {'fld': self.db.quoteId(field.name)}
elif QString(field.dataType).toLower() == "raster":
elif field.dataType.lower() == "raster":
return u"CASE WHEN %(fld)s IS NULL THEN NULL ELSE 'RASTER' END AS %(fld)s" % {'fld': self.db.quoteId(field.name)}
return u"%s::text" % self.db.quoteId(field.name)

Expand Down
26 changes: 13 additions & 13 deletions python/plugins/db_manager/db_plugins/postgis/plugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,28 +75,28 @@ def connect(self, parent=None):
uri = QgsDataSourceURI()

settingsList = ["service", "host", "port", "database", "username", "password"]
service, host, port, database, username, password = map(lambda x: settings.value(x).toString(), settingsList)
service, host, port, database, username, password = map(lambda x: settings.value(x), settingsList)

# qgis1.5 use 'savePassword' instead of 'save' setting
savedPassword = settings.value("save", False).toBool() or settings.value("savePassword", False).toBool()
savedPassword = settings.value("save", False, type=bool) or settings.value("savePassword", False, type=bool)

useEstimatedMetadata = settings.value("estimatedMetadata", False).toBool()
sslmode = settings.value("sslmode", QgsDataSourceURI.SSLprefer).toInt()[0]
useEstimatedMetadata = settings.value("estimatedMetadata", False, type=bool)
sslmode = settings.value("sslmode", QgsDataSourceURI.SSLprefer, type=int)

settings.endGroup()

if not service.isEmpty():
if service != "":
uri.setConnection(service, database, username, password, sslmode)
else:
uri.setConnection(host, port, database, username, password, sslmode)

uri.setUseEstimatedMetadata(useEstimatedMetadata)

err = QString()
err = u""
try:
return self.connectToUri(uri)
except ConnectionError, e:
err = QString( str(e) )
err = str(e)

hasCredentialDlg = True
try:
Expand All @@ -115,7 +115,7 @@ def connect(self, parent=None):
if not ok:
return False

if not service.isEmpty():
if service != "":
uri.setConnection(service, database, username, password, sslmode)
else:
uri.setConnection(host, port, database, username, password, sslmode)
Expand All @@ -125,7 +125,7 @@ def connect(self, parent=None):
except ConnectionError, e:
if i == max_attempts-1: # failed the last attempt
raise e
err = QString( str(e) )
err = str(e)
continue

if hasCredentialDlg:
Expand Down Expand Up @@ -283,11 +283,11 @@ def gdalUri(self):
uri = self.database().uri()
schema = ( u'schema=%s' % self.schemaName() ) if self.schemaName() else ''
gdalUri = u'PG: dbname=%s host=%s user=%s password=%s port=%s mode=2 %s table=%s' % (uri.database(), uri.host(), uri.username(), uri.password(), uri.port(), schema, self.name)
return QString( gdalUri )
return gdalUri

def mimeUri(self):
uri = u"raster:gdal:%s:%s" % (self.name, self.gdalUri())
return QString( uri )
return uri

def toMapLayer(self):
from qgis.core import QgsRasterLayer
Expand All @@ -303,11 +303,11 @@ def __init__(self, row, table):
self.primaryKey = False

# get modifier (e.g. "precision,scale") from formatted type string
trimmedTypeStr = QString(typeStr).trimmed()
trimmedTypeStr = typeStr.strip()
regex = QRegExp( "\((.+)\)$" )
startpos = regex.indexIn( trimmedTypeStr )
if startpos >= 0:
self.modifier = regex.cap(1).trimmed()
self.modifier = regex.cap(1).strip()
else:
self.modifier = None

Expand Down
6 changes: 3 additions & 3 deletions python/plugins/db_manager/db_plugins/spatialite/plugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ def connect(self, parent=None):
if not settings.contains( "sqlitepath" ): # non-existent entry?
raise InvalidDataException( u'there is no defined database connection "%s".' % conn_name )

database = unicode(settings.value("sqlitepath").toString())
database = settings.value("sqlitepath")

import qgis.core
uri = qgis.core.QgsDataSourceURI()
Expand Down Expand Up @@ -217,11 +217,11 @@ def __init__(self, row, db, schema=None):
def gdalUri(self):
uri = self.database().uri()
gdalUri = u'RASTERLITE:%s,table=%s' % (uri.database(), self.prefixName)
return QString( gdalUri )
return gdalUri

def mimeUri(self):
uri = u"raster:gdal:%s:%s" % (self.name, self.gdalUri())
return QString( uri )
return uri

def toMapLayer(self):
from qgis.core import QgsRasterLayer
Expand Down
16 changes: 8 additions & 8 deletions python/plugins/db_manager/dlg_create_table.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,10 +57,10 @@ def setEditorData(self, editor, index):
""" load data from model to editor """
m = index.model()
if index.column() == 1:
txt = m.data(index, Qt.DisplayRole).toString()
txt = m.data(index, Qt.DisplayRole)
editor.setEditText(txt)
elif index.column() == 2:
checked = m.data(index, Qt.DisplayRole).toBool()
checked = m.data(index, Qt.DisplayRole) == "true"
editor.setChecked( checked )
else:
# use default
Expand All @@ -69,9 +69,9 @@ def setEditorData(self, editor, index):
def setModelData(self, editor, model, index):
""" save data from editor back to model """
if index.column() == 1:
model.setData(index, QVariant(editor.currentText()))
model.setData(index, editor.currentText())
elif index.column() == 1:
model.setData(index, QVariant(editor.isChecked()))
model.setData(index, editor.isChecked())
else:
# use default
QItemDelegate.setModelData(self, editor, model, index)
Expand Down Expand Up @@ -169,7 +169,7 @@ def updatePkeyCombo(self, selRow=None):

m = self.fields.model()
for row in xrange(m.rowCount()):
name = m.data(m.index(row,0)).toString()
name = m.data(m.index(row,0))
self.cboPrimaryKey.addItem(name)

self.cboPrimaryKey.setCurrentIndex(selRow)
Expand All @@ -184,14 +184,14 @@ def addField(self):
indexType = m.index(newRow,1,QModelIndex())
indexNull = m.index(newRow,2,QModelIndex())

m.setData(indexName, QVariant("new_field"))
m.setData(indexName, "new_field")
colType = self.fieldTypes[0]
if newRow == 0:
# adding the first row, use auto-incrementing column type if any
if "serial" in self.fieldTypes: # PostgreSQL
colType = "serial"
m.setData(indexType, QVariant(colType))
m.setData(indexNull, QVariant(False))
m.setData(indexType, colType)
m.setData(indexNull, False)

# selects the new row
sel = self.fields.selectionModel()
Expand Down
16 changes: 9 additions & 7 deletions python/plugins/db_manager/dlg_export_vector.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ def checkSupports(self):
def chooseOutputFile(self):
# get last used dir and format
settings = QSettings()
lastDir = settings.value("/db_manager/lastUsedDir", "").toString()
lastDir = settings.value("/db_manager/lastUsedDir", "")
# ask for a filename
filename = QFileDialog.getSaveFileName(self, "Choose where to save the file", lastDir, "Shapefiles (*.shp)")
if filename == "":
Expand Down Expand Up @@ -96,14 +96,16 @@ def accept(self):
return

if self.chkSourceSrid.isEnabled() and self.chkSourceSrid.isChecked():
sourceSrid, ok = self.editSourceSrid.text().toInt()
if not ok:
try:
sourceSrid = int(self.editSourceSrid.text())
except ValueError:
QMessageBox.information(self, "Export to file", "Invalid source srid: must be an integer")
return

if self.chkTargetSrid.isEnabled() and self.chkTargetSrid.isChecked():
targetSrid, ok = self.editTargetSrid.text().toInt()
if not ok:
try:
targetSrid = int(self.editTargetSrid.text())
except ValueError:
QMessageBox.information(self, "Export to file", "Invalid target srid: must be an integer")
return

Expand Down Expand Up @@ -132,12 +134,12 @@ def accept(self):

outCrs = None
if self.chkTargetSrid.isEnabled() and self.chkTargetSrid.isChecked():
targetSrid = self.editTargetSrid.text().toInt()[0]
targetSrid = int(self.editTargetSrid.text())
outCrs = qgis.core.QgsCoordinateReferenceSystem(targetSrid)

# update input layer crs
if self.chkSourceSrid.isEnabled() and self.chkSourceSrid.isChecked():
sourceSrid = self.editSourceSrid.text().toInt()[0]
sourceSrid = int(self.editSourceSrid.text())
inCrs = qgis.core.QgsCoordinateReferenceSystem(sourceSrid)
self.inLayer.setCrs( inCrs )

Expand Down
7 changes: 6 additions & 1 deletion python/plugins/db_manager/dlg_field_properties.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,12 @@ def getField(self, newCopy=False):
fld.notNull = not self.chkNull.isChecked()
fld.default = self.editDefault.text()
fld.hasDefault = fld.default != ""
modifier, ok = self.editLength.text().toInt()
try:
modifier = int(self.editLength.text())
except ValueError:
ok = False
else:
ok = True
fld.modifier = modifier if ok else None
return fld

Expand Down
20 changes: 11 additions & 9 deletions python/plugins/db_manager/dlg_import_vector.py
Original file line number Diff line number Diff line change
Expand Up @@ -124,8 +124,8 @@ def chooseInputFile(self):
vectorFormats = qgis.core.QgsProviderRegistry.instance().fileVectorFilters()
# get last used dir and format
settings = QSettings()
lastDir = settings.value("/db_manager/lastUsedDir", "").toString()
lastVectorFormat = settings.value("/UI/lastVectorFileFilter", "").toString()
lastDir = settings.value("/db_manager/lastUsedDir", "")
lastVectorFormat = settings.value("/UI/lastVectorFileFilter", "")
# ask for a filename
filename = QFileDialog.getOpenFileName(self, "Choose the file to import", lastDir, vectorFormats, lastVectorFormat)
if filename == "":
Expand Down Expand Up @@ -167,7 +167,7 @@ def updateInputLayer(self):
self.inLayerMustBeDestroyed = True

else:
legendIndex = self.cboInputLayer.itemData( index ).toInt()[0]
legendIndex = self.cboInputLayer.itemData( index )
self.inLayer = iface.legendInterface().layers()[ legendIndex ]
self.inLayerMustBeDestroyed = False

Expand Down Expand Up @@ -244,14 +244,16 @@ def accept(self):
return

if self.chkSourceSrid.isEnabled() and self.chkSourceSrid.isChecked():
sourceSrid, ok = self.editSourceSrid.text().toInt()
if not ok:
try:
sourceSrid = self.editSourceSrid.text()
except ValueError:
QMessageBox.information(self, "Import to database", "Invalid source srid: must be an integer")
return

if self.chkTargetSrid.isEnabled() and self.chkTargetSrid.isChecked():
targetSrid, ok = self.editTargetSrid.text().toInt()
if not ok:
try:
targetSrid = self.editTargetSrid.text()
except ValueError:
QMessageBox.information(self, "Import to database", "Invalid target srid: must be an integer")
return

Expand Down Expand Up @@ -291,12 +293,12 @@ def accept(self):

outCrs = None
if self.chkTargetSrid.isEnabled() and self.chkTargetSrid.isChecked():
targetSrid = self.editTargetSrid.text().toInt()[0]
targetSrid = int(self.editTargetSrid.text())
outCrs = qgis.core.QgsCoordinateReferenceSystem(targetSrid)

# update input layer crs and encoding
if self.chkSourceSrid.isEnabled() and self.chkSourceSrid.isChecked():
sourceSrid = self.editSourceSrid.text().toInt()[0]
sourceSrid = int(self.editSourceSrid.text())
inCrs = qgis.core.QgsCoordinateReferenceSystem(sourceSrid)
self.inLayer.setCrs( inCrs )

Expand Down
16 changes: 8 additions & 8 deletions python/plugins/db_manager/dlg_sql_window.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ def __init__(self, iface, db, parent=None):
self.defaultLayerName = 'QueryLayer'

settings = QSettings()
self.restoreGeometry(settings.value("/DB_Manager/sqlWindow/geometry").toByteArray())
self.restoreGeometry(settings.value("/DB_Manager/sqlWindow/geometry"))

self.editSql.setAcceptRichText(False)
SqlCompleter(self.editSql, self.db)
Expand Down Expand Up @@ -120,7 +120,7 @@ def loadPreset(self, name):
def closeEvent(self, e):
""" save window state """
settings = QSettings()
settings.setValue("/DB_Manager/sqlWindow/geometry", QVariant(self.saveGeometry()))
settings.setValue("/DB_Manager/sqlWindow/geometry", self.saveGeometry())

QDialog.closeEvent(self, e)

Expand All @@ -134,7 +134,7 @@ def getSql(self):
# character instead of a newline \n character
# (see https://qt-project.org/doc/qt-4.8/qtextcursor.html#selectedText)
sql = self.editSql.textCursor().selectedText().replace(unichr(0x2029), "\n")
if sql.isEmpty():
if sql == "":
sql = self.editSql.toPlainText()
# try to sanitize query
sql = sql.replace( QRegExp( ";\\s*$" ), "" )
Expand All @@ -145,7 +145,7 @@ def clearSql(self):

def executeSql(self):
sql = self.getSql()
if sql.isEmpty(): return
if sql == "": return

QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))

Expand Down Expand Up @@ -180,12 +180,12 @@ def loadSqlLayer(self):
uniqueFieldName = self.uniqueCombo.currentText()
geomFieldName = self.geomCombo.currentText()

if geomFieldName.isEmpty() or uniqueFieldName.isEmpty():
if geomFieldName == "" or uniqueFieldName == "":
QMessageBox.warning(self, self.tr( "Sorry" ), self.tr( "You must fill the required fields: \ngeometry column - column with unique integer values" ) )
return

query = self.getSql()
if query.isEmpty():
if query == "":
return

QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
Expand All @@ -199,7 +199,7 @@ def loadSqlLayer(self):
names.append( layer.name() )

layerName = self.layerNameEdit.text()
if layerName.isEmpty():
if layerName == "":
layerName = self.defaultLayerName
newLayerName = layerName
index = 1
Expand All @@ -216,7 +216,7 @@ def loadSqlLayer(self):

def fillColumnCombos(self):
query = self.getSql()
if query.isEmpty(): return
if query == "": return

QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
self.uniqueCombo.clear()
Expand Down
8 changes: 4 additions & 4 deletions python/plugins/db_manager/highlighter.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ def highlightBlock(self, text):
rule_sel = None
rule_index = -1

while index < text.length():
while index < len(text):
# search for the rule that matches starting from the less index
rule_sel = None
rule_index = -1
Expand All @@ -87,7 +87,7 @@ def highlightBlock(self, text):
if rule_sel == None or rule_index > pos:
rule_sel = rule
rule_index = pos
rule_length = regex.cap(0).length()
rule_length = len(regex.cap(0))

if rule_sel == None: # no rule matches
break
Expand All @@ -112,9 +112,9 @@ def highlightBlock(self, text):
comment_length = 0
if pos < 0:
self.setCurrentBlockState(1)
comment_length = text.length() - index;
comment_length = len(text) - index;
else:
comment_length = pos - index + self.multiLineCommentEnd.cap(0).length()
comment_length = pos - index + len(self.multiLineCommentEnd.cap(0))
self.setFormat(index, comment_length, self.styles['comment'])
index = self.multiLineCommentStart.indexIn(text, index + comment_length)

Expand Down
8 changes: 4 additions & 4 deletions python/plugins/db_manager/layer_preview.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,10 @@ def __init__(self, parent=None):

# reuse settings from QGIS
settings = QSettings()
self.enableAntiAliasing( settings.value( "/qgis/enable_anti_aliasing", QVariant(False) ).toBool() )
self.useImageToRender( settings.value( "/qgis/use_qimage_to_render", QVariant(False) ).toBool() )
action = settings.value( "/qgis/wheel_action", QVariant(0) ).toInt()[0]
zoomFactor = settings.value( "/qgis/zoom_factor", QVariant(2) ).toDouble()[0]
self.enableAntiAliasing( settings.value( "/qgis/enable_anti_aliasing", False, type=bool ) )
self.useImageToRender( settings.value( "/qgis/use_qimage_to_render", False, type=bool ) )
action = settings.value( "/qgis/wheel_action", 0, type=float )
zoomFactor = settings.value( "/qgis/zoom_factor", 2, type=int )
self.setWheelAction( QgsMapCanvas.WheelAction(action), zoomFactor )

self._clear()
Expand Down