SqlBrowser/SqlBrowserWidget.py

changeset 500
c3abc7895a01
parent 428
58405c24aa09
child 501
5c615a85241a
equal deleted inserted replaced
499:622ab17a68d5 500:c3abc7895a01
19 """ 19 """
20 Class implementing the SQL Browser widget. 20 Class implementing the SQL Browser widget.
21 21
22 @signal statusMessage(string) emitted to show a status message 22 @signal statusMessage(string) emitted to show a status message
23 """ 23 """
24 statusMessage = pyqtSignal(str)
25
24 cCount = 0 26 cCount = 0
25 27
26 def __init__(self, parent = None): 28 def __init__(self, parent = None):
27 """ 29 """
28 Constructor 30 Constructor
40 self.trUtf8("No database drivers found"), 42 self.trUtf8("No database drivers found"),
41 self.trUtf8("""This tool requires at least one Qt database driver. """ 43 self.trUtf8("""This tool requires at least one Qt database driver. """
42 """Please check the Qt documentation how to build the """ 44 """Please check the Qt documentation how to build the """
43 """Qt SQL plugins.""")) 45 """Qt SQL plugins."""))
44 46
45 self.connect(self.connections, SIGNAL("tableActivated(QString)"), 47 self.connections.tableActivated.connect(self.on_connections_tableActivated)
46 self.on_connections_tableActivated) 48 self.connections.schemaRequested.connect(self.on_connections_schemaRequested)
47 self.connect(self.connections, SIGNAL("schemaRequested(QString)"), 49 self.connections.cleared.connect(self.on_connections_cleared)
48 self.on_connections_schemaRequested) 50
49 self.connect(self.connections, SIGNAL("cleared()"), 51 self.statusMessage.emit(self.trUtf8("Ready"))
50 self.on_connections_cleared)
51
52 self.emit(SIGNAL("statusMessage(QString)"), self.trUtf8("Ready"))
53 52
54 @pyqtSlot() 53 @pyqtSlot()
55 def on_clearButton_clicked(self): 54 def on_clearButton_clicked(self):
56 """ 55 """
57 Private slot to clear the SQL entry widget. 56 Private slot to clear the SQL entry widget.
161 model = QSqlTableModel(self.table, self.connections.currentDatabase()) 160 model = QSqlTableModel(self.table, self.connections.currentDatabase())
162 model.setEditStrategy(QSqlTableModel.OnRowChange) 161 model.setEditStrategy(QSqlTableModel.OnRowChange)
163 model.setTable(table) 162 model.setTable(table)
164 model.select() 163 model.select()
165 if model.lastError().type() != QSqlError.NoError: 164 if model.lastError().type() != QSqlError.NoError:
166 self.emit(SIGNAL("statusMessage(QString)"), model.lastError().text()) 165 self.statusMessage.emit(model.lastError().text())
167 self.table.setModel(model) 166 self.table.setModel(model)
168 self.table.setEditTriggers( 167 self.table.setEditTriggers(
169 QAbstractItemView.DoubleClicked | QAbstractItemView.EditKeyPressed) 168 QAbstractItemView.DoubleClicked | QAbstractItemView.EditKeyPressed)
170 169
171 self.table.resizeColumnsToContents() 170 self.table.resizeColumnsToContents()
172 171
173 self.connect(self.table.selectionModel(), 172 self.table.selectionModel().currentRowChanged.connect(self.updateActions)
174 SIGNAL("currentRowChanged(QModelIndex, QModelIndex)"),
175 self.updateActions)
176 173
177 self.updateActions() 174 self.updateActions()
178 175
179 def showSchema(self, table): 176 def showSchema(self, table):
180 """ 177 """
285 model.setQuery( 282 model.setQuery(
286 QSqlQuery(self.sqlEdit.toPlainText(), self.connections.currentDatabase())) 283 QSqlQuery(self.sqlEdit.toPlainText(), self.connections.currentDatabase()))
287 self.table.setModel(model) 284 self.table.setModel(model)
288 285
289 if model.lastError().type() != QSqlError.NoError: 286 if model.lastError().type() != QSqlError.NoError:
290 self.emit(SIGNAL("statusMessage(QString)"), model.lastError().text()) 287 self.statusMessage.emit(model.lastError().text())
291 elif model.query().isSelect(): 288 elif model.query().isSelect():
292 self.emit(SIGNAL("statusMessage(QString)"), self.trUtf8("Query OK.")) 289 self.statusMessage.emit(self.trUtf8("Query OK."))
293 else: 290 else:
294 self.emit(SIGNAL("statusMessage(QString)"), 291 self.statusMessage.emit(
295 self.trUtf8("Query OK, number of affected rows: {0}")\ 292 self.trUtf8("Query OK, number of affected rows: {0}")\
296 .format(model.query().numRowsAffected())) 293 .format(model.query().numRowsAffected()))
297 294
298 self.table.resizeColumnsToContents() 295 self.table.resizeColumnsToContents()
299 296

eric ide

mercurial