Merge pull request #31752 from qgis/backport-31746-to-release-3_8

[Backport release-3_8] fix combobox ID not having correct checked state when we update a SQL layer
This commit is contained in:
rldhont 2019-09-13 21:08:10 +02:00 committed by GitHub
commit 0b21735e28
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -176,14 +176,20 @@ class DlgSqlLayerWindow(QWidget, Ui_Dialog):
if uri.keyColumn() != '_uid_':
self.uniqueColumnCheck.setCheckState(Qt.Checked)
if self.allowMultiColumnPk:
itemsData = uri.keyColumn().split(',')
# Unchecked default values
for item in self.uniqueModel.findItems("*", Qt.MatchWildcard):
if item.data() in itemsData:
if item.checkState() == Qt.Checked:
item.setCheckState(Qt.Unchecked)
# Get key columns
itemsData = uri.keyColumn().split(',')
# Checked key columns
for keyColumn in itemsData:
for item in self.uniqueModel.findItems(keyColumn):
item.setCheckState(Qt.Checked)
else:
keyColumn = uri.keyColumn()
if self.uniqueModel.findItems(keyColumn):
self.uniqueCombo.setEditText(keyColumn)
self.uniqueCombo.setCurrentIndex(self.uniqueCombo.findText(keyColumn, Qt.MatchExactly))
# Finally layer name, filter and selectAtId
self.layerNameEdit.setText(layer.name())