111 """ |
111 """ |
112 Private slot to clear the table. |
112 Private slot to clear the table. |
113 """ |
113 """ |
114 model = QStandardItemModel(self.table) |
114 model = QStandardItemModel(self.table) |
115 self.table.setModel(model) |
115 self.table.setModel(model) |
116 self.table.setEditTriggers(QAbstractItemView.NoEditTriggers) |
116 self.table.setEditTriggers( |
|
117 QAbstractItemView.EditTrigger.NoEditTriggers) |
117 |
118 |
118 self.updateActions() |
119 self.updateActions() |
119 |
120 |
120 def addConnection(self, driver, dbName, user, password, host, port): |
121 def addConnection(self, driver, dbName, user, password, host, port): |
121 """ |
122 """ |
151 """ |
152 """ |
152 Public slot to add a database connection via an input dialog. |
153 Public slot to add a database connection via an input dialog. |
153 """ |
154 """ |
154 from .SqlConnectionDialog import SqlConnectionDialog |
155 from .SqlConnectionDialog import SqlConnectionDialog |
155 dlg = SqlConnectionDialog(self) |
156 dlg = SqlConnectionDialog(self) |
156 if dlg.exec() == QDialog.Accepted: |
157 if dlg.exec() == QDialog.DialogCode.Accepted: |
157 driver, dbName, user, password, host, port = dlg.getData() |
158 driver, dbName, user, password, host, port = dlg.getData() |
158 err = self.addConnection( |
159 err = self.addConnection( |
159 driver, dbName, user, password, host, port) |
160 driver, dbName, user, password, host, port) |
160 |
161 |
161 if err.type() != QSqlError.NoError: |
162 if err.type() != QSqlError.ErrorType.NoError: |
162 E5MessageBox.warning( |
163 E5MessageBox.warning( |
163 self, |
164 self, |
164 self.tr("Unable to open database"), |
165 self.tr("Unable to open database"), |
165 self.tr( |
166 self.tr( |
166 """An error occurred while opening the connection.""")) |
167 """An error occurred while opening the connection.""")) |
170 Public slot to show the contents of a table. |
171 Public slot to show the contents of a table. |
171 |
172 |
172 @param table name of the table to be shown (string) |
173 @param table name of the table to be shown (string) |
173 """ |
174 """ |
174 model = QSqlTableModel(self.table, self.connections.currentDatabase()) |
175 model = QSqlTableModel(self.table, self.connections.currentDatabase()) |
175 model.setEditStrategy(QSqlTableModel.OnRowChange) |
176 model.setEditStrategy(QSqlTableModel.EditStrategy.OnRowChange) |
176 model.setTable(table) |
177 model.setTable(table) |
177 model.select() |
178 model.select() |
178 if model.lastError().type() != QSqlError.NoError: |
179 if model.lastError().type() != QSqlError.ErrorType.NoError: |
179 self.statusMessage.emit(model.lastError().text()) |
180 self.statusMessage.emit(model.lastError().text()) |
180 self.table.setModel(model) |
181 self.table.setModel(model) |
181 self.table.setEditTriggers( |
182 self.table.setEditTriggers( |
182 QAbstractItemView.DoubleClicked | QAbstractItemView.EditKeyPressed) |
183 QAbstractItemView.EditTrigger.DoubleClicked | |
|
184 QAbstractItemView.EditTrigger.EditKeyPressed) |
183 |
185 |
184 self.table.resizeColumnsToContents() |
186 self.table.resizeColumnsToContents() |
185 |
187 |
186 self.table.selectionModel().currentRowChanged.connect( |
188 self.table.selectionModel().currentRowChanged.connect( |
187 self.updateActions) |
189 self.updateActions) |
198 model = QStandardItemModel(self.table) |
200 model = QStandardItemModel(self.table) |
199 |
201 |
200 model.insertRows(0, rec.count()) |
202 model.insertRows(0, rec.count()) |
201 model.insertColumns(0, 7) |
203 model.insertColumns(0, 7) |
202 |
204 |
203 model.setHeaderData(0, Qt.Horizontal, "Fieldname") |
205 model.setHeaderData(0, Qt.Orientation.Horizontal, "Fieldname") |
204 model.setHeaderData(1, Qt.Horizontal, "Type") |
206 model.setHeaderData(1, Qt.Orientation.Horizontal, "Type") |
205 model.setHeaderData(2, Qt.Horizontal, "Length") |
207 model.setHeaderData(2, Qt.Orientation.Horizontal, "Length") |
206 model.setHeaderData(3, Qt.Horizontal, "Precision") |
208 model.setHeaderData(3, Qt.Orientation.Horizontal, "Precision") |
207 model.setHeaderData(4, Qt.Horizontal, "Required") |
209 model.setHeaderData(4, Qt.Orientation.Horizontal, "Required") |
208 model.setHeaderData(5, Qt.Horizontal, "Auto Value") |
210 model.setHeaderData(5, Qt.Orientation.Horizontal, "Auto Value") |
209 model.setHeaderData(6, Qt.Horizontal, "Default Value") |
211 model.setHeaderData(6, Qt.Orientation.Horizontal, "Default Value") |
210 |
212 |
211 for i in range(rec.count()): |
213 for i in range(rec.count()): |
212 fld = rec.field(i) |
214 fld = rec.field(i) |
213 model.setData(model.index(i, 0), fld.name()) |
215 model.setData(model.index(i, 0), fld.name()) |
214 if fld.typeID() == -1: |
216 if fld.typeID() == -1: |
232 model.setData(model.index(i, 4), bool(fld.requiredStatus())) |
234 model.setData(model.index(i, 4), bool(fld.requiredStatus())) |
233 model.setData(model.index(i, 5), fld.isAutoValue()) |
235 model.setData(model.index(i, 5), fld.isAutoValue()) |
234 model.setData(model.index(i, 6), fld.defaultValue()) |
236 model.setData(model.index(i, 6), fld.defaultValue()) |
235 |
237 |
236 self.table.setModel(model) |
238 self.table.setModel(model) |
237 self.table.setEditTriggers(QAbstractItemView.NoEditTriggers) |
239 self.table.setEditTriggers( |
|
240 QAbstractItemView.EditTrigger.NoEditTriggers) |
238 |
241 |
239 self.table.resizeColumnsToContents() |
242 self.table.resizeColumnsToContents() |
240 |
243 |
241 self.updateActions() |
244 self.updateActions() |
242 |
245 |
274 """ |
277 """ |
275 model = self.table.model() |
278 model = self.table.model() |
276 if not isinstance(model, QSqlTableModel): |
279 if not isinstance(model, QSqlTableModel): |
277 return |
280 return |
278 |
281 |
279 model.setEditStrategy(QSqlTableModel.OnManualSubmit) |
282 model.setEditStrategy(QSqlTableModel.EditStrategy.OnManualSubmit) |
280 |
283 |
281 currentSelection = self.table.selectionModel().selectedIndexes() |
284 currentSelection = self.table.selectionModel().selectedIndexes() |
282 for selectedIndex in currentSelection: |
285 for selectedIndex in currentSelection: |
283 if selectedIndex.column() != 0: |
286 if selectedIndex.column() != 0: |
284 continue |
287 continue |
285 model.removeRow(selectedIndex.row()) |
288 model.removeRow(selectedIndex.row()) |
286 |
289 |
287 model.submitAll() |
290 model.submitAll() |
288 model.setEditStrategy(QSqlTableModel.OnRowChange) |
291 model.setEditStrategy(QSqlTableModel.EditStrategy.OnRowChange) |
289 |
292 |
290 self.updateActions() |
293 self.updateActions() |
291 |
294 |
292 def executeQuery(self): |
295 def executeQuery(self): |
293 """ |
296 """ |
296 model = QSqlQueryModel(self.table) |
299 model = QSqlQueryModel(self.table) |
297 model.setQuery(QSqlQuery( |
300 model.setQuery(QSqlQuery( |
298 self.sqlEdit.toPlainText(), self.connections.currentDatabase())) |
301 self.sqlEdit.toPlainText(), self.connections.currentDatabase())) |
299 self.table.setModel(model) |
302 self.table.setModel(model) |
300 |
303 |
301 if model.lastError().type() != QSqlError.NoError: |
304 if model.lastError().type() != QSqlError.ErrorType.NoError: |
302 self.statusMessage.emit(model.lastError().text()) |
305 self.statusMessage.emit(model.lastError().text()) |
303 elif model.query().isSelect(): |
306 elif model.query().isSelect(): |
304 self.statusMessage.emit(self.tr("Query OK.")) |
307 self.statusMessage.emit(self.tr("Query OK.")) |
305 else: |
308 else: |
306 self.statusMessage.emit( |
309 self.statusMessage.emit( |