GeezerVison is showing github.com — show real insert data after insert a new row · feng2010java/sqlitebrowser@6705e8c
File tree
Expand file treeCollapse file tree
Open diff view settings
Expand file treeCollapse file tree
Open diff view settings
Collapse file
Copy file name to clipboardExpand all lines: src/sqlitetablemodel.cpp +18-5Lines changed: 18 additions & 5 deletions | Original file line number | Diff line number | Diff line change |
|---|
@@ -302,14 +302,27 @@ bool SqliteTableModel::insertRows(int row, int count, const QModelIndex& parent) |
302 | 302 | for(int i=0; i < m_headers.size(); ++i) |
303 | 303 | blank_data.push_back(""); |
304 | 304 |
|
305 | | - for(int i=0; i < count; ++i) |
| 305 | + for(int i=row; i < row + count; ++i) |
306 | 306 | { |
307 | | - m_data.insert(row, blank_data); |
308 | | - m_data[row].replace(0, QByteArray::number(m_db->addRecord(m_sTable))); |
| 307 | + int rowid = m_db->addRecord(m_sTable); |
| 308 | + if(rowid < 0) |
| 309 | + { |
| 310 | + endInsertRows(); |
| 311 | + return false; |
| 312 | + } |
| 313 | + m_rowCount++; |
| 314 | + m_data.insert(i, blank_data); |
| 315 | + m_data[i].replace(0, QByteArray::number(rowid)); |
| 316 | + |
| 317 | + // update column with default values |
| 318 | + QByteArrayList rowdata; |
| 319 | + m_db->getRow(m_sTable, rowid, rowdata); |
| 320 | + for(int j=1; j < m_headers.size(); ++j) |
| 321 | + { |
| 322 | + m_data[i].replace(j, rowdata[j - 1]); |
| 323 | + } |
309 | 324 | } |
310 | 325 |
|
311 | | - m_rowCount += count; |
312 | | - |
313 | 326 | endInsertRows(); |
314 | 327 | return true; |
315 | 328 | } |
|