Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion datadriveninputmask.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ def __init__(self, iface):
self.app.ddManager = ddManager
# initialize locale
localePath = ""
locale = QtCore.QSettings().value("locale/userLocale")[0:2]
locale = QgsSettings().value("locale/userLocale")[0:2]

libPath = os.path.dirname(__file__)
libPathFound = False
Expand Down
51 changes: 33 additions & 18 deletions ddmanager.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ class DdManager(object):
def __init__(self, iface):
self.iface = iface
self.ddLayers = dict()
settings = QtCore.QSettings()
settings = QgsSettings()
settings.beginGroup("Qgis/digitizing")
a = settings.value("line_color_alpha",200,type=int)
b = settings.value("line_color_blue",0,type=int)
Expand All @@ -77,13 +77,13 @@ def __str__(self):
return "<ddmanager.DdManager>"

def saveSearchPath(self, path = ""):
settings = QtCore.QSettings()
settings = QgsSettings()
settings.beginGroup("DataDrivenInputMask")
settings.setValue(u"lastSearchPath", path)
settings.endGroup()

def getSearchPath(self):
settings = QtCore.QSettings()
settings = QgsSettings()
settings.beginGroup("DataDrivenInputMask")
path = settings.value("lastSearchPath", "", type=str)
settings.endGroup()
Expand Down Expand Up @@ -845,22 +845,36 @@ def loadPostGISLayer(self, db, ddTable, displayName = None,
if thisPort == -1:
thisPort = 5432

# set host name, port, database name, username and password
# set service name or host name, port as well as database name, username and password
authcfg = None #ini'

if hasattr(db, "authcfg"):
authcfg = db.authcfg
serviceName = db.connectOptions().split("service=")[1]

if authcfg != None:
uri.setConnection(db.hostName(), str(thisPort), db.databaseName(),
None, None, sslmode = sslMode, authConfigId = authcfg)
if serviceName != None:
if hasattr(db, "authcfg"):
authcfg = db.authcfg

if authcfg == None:
uri.setConnection(db.hostName(), str(thisPort), db.databaseName(),
db.userName(), db.password(), sslmode = sslMode)
if authcfg != None:
uri.setConnection(serviceName, db.databaseName(), None, None, sslmode = sslMode, authConfigId = authcfg)

if authcfg == None:
uri.setConnection(serviceName, db.databaseName(), db.userName(), db.password(), sslmode = sslMode, authConfigId = '')

# set database schema, table name, geometry column and optionaly subset (WHERE clause)
if serviceName == None:
if hasattr(db, "authcfg"):
authcfg = db.authcfg

if authcfg != None:
uri.setConnection(db.hostName(), str(thisPort), db.databaseName(),
None, None, sslmode = sslMode, authConfigId = authcfg)

if authcfg == None:
uri.setConnection(db.hostName(), str(thisPort), db.databaseName(),
db.userName(), db.password(), sslmode = sslMode)

# set database schema, table name, geometry column and optionaly subset (WHERE clause) and key column
uri.setDataSource(ddTable.schemaName, ddTable.tableName, geomColumn)

if whereClause:
uri.setSql(whereClause)

Expand Down Expand Up @@ -1062,17 +1076,18 @@ def __connectDb(self, qSqlDatabaseName, host,
else:
return db

def __connectServiceDb(self, qSqlDatabaseName, service, username, passwd):
def __connectServiceDb(self, qSqlDatabaseName, service, username, passwd, authcfg = None):
'''connect to the PostgreSQL DB via pg_service'''
db = QtSql.QSqlDatabase.addDatabase ("QPSQL", qSqlDatabaseName)
db.setConnectOptions("service=" + service)
db.setConnectOptions(f"service={service}")
db.setUserName(username)
db.setPassword(passwd)
db.authcfg = authcfg
ok = db.open()

if not ok:
DdError(QtWidgets.QApplication.translate("DdError", "Could not connect to PostgreSQL database: ") +
database, iface = self.iface)
DdError(QtWidgets.QApplication.translate("DdError", "Could not connect to PostgreSQL service: ") +
service, iface = self.iface)
return None
else:
return db
Expand Down Expand Up @@ -1133,7 +1148,7 @@ def __createDb(self, layer):
sslmode = None

if host == None:
db = self.__connectServiceDb(layer.id(), service, user, password)
db = self.__connectServiceDb(layer.id(), service, user, password, authcfg)
else:
db = self.__connectDb(layer.id(), host, dbname,
int(layerSrc["port"]), user,
Expand Down
2 changes: 1 addition & 1 deletion ddui.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ def ddFormInit(dialog, layerId, featureId):
result = dlg.exec_()

if result == 1:
layer.setModified()
aLayer.setModified()

class DdEventFilter(QtCore.QObject):
'''Event filter class to be applied to DdLineEdit's input widgets
Expand Down