Index: CHANGELOG.txt
===================================================================
RCS file: /projects/pgadmin3/CHANGELOG.txt,v
retrieving revision 1.139
retrieving revision 1.140
diff -LCHANGELOG.txt -LCHANGELOG.txt -u -w -r1.139 -r1.140
--- CHANGELOG.txt
+++ CHANGELOG.txt
@@ -17,6 +17,7 @@
+ - 2004-10-05 DP 1.2B3 Drop rows correctly when selected in reverse in the edit grid. Also, confirm drop first.
- 2004-09-27 DP 1.2B3 Dynamically link libpq/OpenSSL for sensible installation with Win32 PostgreSQL
- 2004-09-18 DP 1.2B2 Prevent dropped servers reappearing after View System Objects change.
- 2004-09-17 AP 1.2B2 GRANT for functions in reengineered SQL window
Index: frmEditGrid.cpp
===================================================================
RCS file: /projects/pgadmin3/src/ui/frmEditGrid.cpp,v
retrieving revision 1.55
retrieving revision 1.56
diff -Lsrc/ui/frmEditGrid.cpp -Lsrc/ui/frmEditGrid.cpp -u -w -r1.55 -r1.56
--- src/ui/frmEditGrid.cpp
+++ src/ui/frmEditGrid.cpp
@@ -490,14 +490,31 @@
void frmEditGrid::OnDelete(wxCommandEvent& event)
{
+ wxMessageDialog msg(this, _("Are you sure you wish to delete the selected row(s)?"), _("Delete rows?"), wxYES_NO | wxICON_QUESTION);
+ if (msg.ShowModal() != wxID_YES)
+ return;
+
sqlGrid->BeginBatch();
wxArrayInt delrows=sqlGrid->GetSelectedRows();
int i=delrows.GetCount();
// don't care a lot about optimizing here; doing it line by line
// just as sqlTable::DeleteRows does
+ if (delrows.Item(i-1) > delrows.Item(0))
+ {
while (i--)
sqlGrid->DeleteRows(delrows.Item(i), 1);
+ }
+ else
+ {
+ int j = 0;
+ while (j < i)
+ {
+ sqlGrid->DeleteRows(delrows.Item(j), 1);
+ ++j;
+ }
+ }
+
sqlGrid->EndBatch();
SetStatusText(wxString::Format(_("%d rows."), sqlGrid->GetTable()->GetNumberStoredRows()), 0);