Db_Manager keeps the selected columns for primary key and geometry when running the query or rereading the columns if the selected columns still exist.

This commit is contained in:
Sebastian Dietrich 2015-10-17 16:43:54 +02:00
parent 724a5bda9a
commit d8deb8c081

View File

@ -309,29 +309,38 @@ class DlgSqlWindow(QWidget, Ui_Dialog):
colNames = zip(cols, quotedCols) colNames = zip(cols, quotedCols)
colNames.sort() colNames.sort()
newItems = [] newItems = []
uniqueIsFilled = False
for (col, quotedCol) in colNames: for (col, quotedCol) in colNames:
item = QStandardItem(col) item = QStandardItem(col)
item.setData(quotedCol) item.setData(quotedCol)
item.setEnabled(True) item.setEnabled(True)
item.setCheckable(True) item.setCheckable(True)
item.setSelectable(False) item.setSelectable(False)
item.setCheckState(Qt.Unchecked) matchingItems = self.uniqueModel.findItems(col)
if matchingItems:
item.setCheckState(matchingItems[0].checkState())
uniqueIsFilled = uniqueIsFilled or matchingItems[0].checkState() == Qt.Checked
else:
item.setCheckState(Qt.Unchecked)
newItems.append(item) newItems.append(item)
self.uniqueModel.clear() self.uniqueModel.clear()
self.uniqueModel.appendColumn(newItems) self.uniqueModel.appendColumn(newItems)
self.uniqueChanged() self.uniqueChanged()
oldGeometryColumn = self.geomCombo.currentText()
self.geomCombo.clear() self.geomCombo.clear()
self.geomCombo.addItems(cols) self.geomCombo.addItems(cols)
self.geomCombo.setCurrentIndex(self.geomCombo.findText(oldGeometryColumn, Qt.MatchExactly))
# set sensible default columns # set sensible default columns if the columns are not already set
try: try:
self.geomCombo.setCurrentIndex(cols.index(defaultGeomCol)) if self.geomCombo.currentIndex() == -1:
self.geomCombo.setCurrentIndex(cols.index(defaultGeomCol))
except: except:
pass pass
try: try:
items = self.uniqueModel.findItems(defaultUniqueCol) items = self.uniqueModel.findItems(defaultUniqueCol)
if items: if items and not uniqueIsFilled:
items[0].setCheckState(Qt.Checked) items[0].setCheckState(Qt.Checked)
except: except:
pass pass