diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index de9a104b..c97414fc 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -595,7 +595,7 @@ void MainWindow::deleteRecord() break; } } - populateTable(ui->comboBrowseTable->currentText()); + if(old_row > m_browseTableModel->totalRowCount()) old_row = m_browseTableModel->totalRowCount(); selectTableLine(old_row); diff --git a/src/sqlitetablemodel.cpp b/src/sqlitetablemodel.cpp index 012f936a..80b2993d 100644 --- a/src/sqlitetablemodel.cpp +++ b/src/sqlitetablemodel.cpp @@ -394,16 +394,21 @@ bool SqliteTableModel::removeRows(int row, int count, const QModelIndex& parent) { beginRemoveRows(parent, row, row + count - 1); + bool ok = true; + for(int i=count-1;i>=0;i--) { - m_db->deleteRecord(m_sTable, m_data.at(row + i).at(0)); - m_data.removeAt(row + i); + if(m_db->deleteRecord(m_sTable, m_data.at(row + i).at(0))) + { + m_data.removeAt(row + i); + --m_rowCount; + } else { + ok = false; + } } - m_rowCount -= count; - endRemoveRows(); - return true; + return ok; } QModelIndex SqliteTableModel::dittoRecord(int old_row)