Log Message:
-----------
Allow cancel/terminate of multiple processes at once.

Modified Files:
--------------
    pgadmin3/src/ui:
        frmStatus.cpp (r1.24 -> r1.25)

Index: frmStatus.cpp
===================================================================
RCS file: /projects/pgadmin3/src/ui/frmStatus.cpp,v
retrieving revision 1.24
retrieving revision 1.25
diff -Lsrc/ui/frmStatus.cpp -Lsrc/ui/frmStatus.cpp -u -w -r1.24 -r1.25
--- src/ui/frmStatus.cpp
+++ src/ui/frmStatus.cpp
@@ -457,49 +457,49 @@
 
 void frmStatus::OnCancelBtn(wxCommandEvent &event)
 {
-       wxString spid = statusList->GetItemText(statusList->GetNextItem(-1, 
wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED));
-       long lpid = StrToLong(spid);
-
-       if(backend_pid == lpid)
-       {
-               wxMessageBox(_("You cannot cancel a query running on your own server 
process."), _("Cancel query"), wxOK | wxICON_EXCLAMATION);
+       if (wxMessageBox(_("Are you sure you wish to cancel the selected query(s)?"), 
_("Cancel query?"), wxYES_NO | wxICON_QUESTION) == wxNO)
                return;
-       }
 
-       if (wxMessageBox(_("Are you sure you wish to cancel the selected query?"), 
-                                        _("Cancel query?"), 
-                                        wxYES_NO | wxICON_QUESTION) == wxNO)
-               return;
+       long item = -1;
+       wxString pid;
 
-       wxString sql = wxT("SELECT pg_cancel_backend(") + spid + wxT(");");
+    for ( ;; )
+    {
+        item = statusList->GetNextItem(item, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
+        if ( item == -1 )
+            break;
 
+               pid = statusList->GetItemText(item);
+               wxString sql = wxT("SELECT pg_cancel_backend(") + pid + wxT(");");
        connection->ExecuteScalar(sql);
+       }
 
        OnRefresh(*(wxCommandEvent*)&event);
-       wxMessageBox(_("A cancel signal was sent to the selected server process."), 
_("Cancel query"), wxOK | wxICON_INFORMATION);
+       wxMessageBox(_("A cancel signal was sent to the selected server 
process(es)."), _("Cancel query"), wxOK | wxICON_INFORMATION);
 }
 
 void frmStatus::OnTerminateBtn(wxCommandEvent &event)
 {
-       wxString spid = statusList->GetItemText(statusList->GetNextItem(-1, 
wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED));
-       long lpid = StrToLong(spid);
-
-       if(backend_pid == lpid)
-       {
-               wxMessageBox(_("You cannot terminate your own server process."), 
_("Terminate query"), wxOK | wxICON_EXCLAMATION);
+       if (wxMessageBox(_("Are you sure you wish to terminate the selected server 
process(es)?"), _("Terminate process?"), wxYES_NO | wxICON_QUESTION) == wxNO)
                return;
-       }
 
-       if (wxMessageBox(_("Are you sure you wish to terminate the selected server 
process?"), 
-                                        _("Terminate query?"), wxYES_NO | 
wxICON_QUESTION) == wxNO)
-               return;
+       long item = -1;
+       wxString pid;
 
-       wxString sql = wxT("SELECT pg_terminate_backend(") + spid +     wxT(");");
+    for ( ;; )
+    {
+        item = statusList->GetNextItem(item, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
+        if ( item == -1 )
+            break;
 
+               pid = statusList->GetItemText(item);
+               wxString sql = wxT("SELECT pg_terminate_backend(") + pid + wxT(");");
        connection->ExecuteScalar(sql);
 
+       }
+
        OnRefresh(*(wxCommandEvent*)&event);
-       wxMessageBox(_("A terminate signal was sent to the selected server process."), 
_("Terminate query"), wxOK | wxICON_INFORMATION);
+       wxMessageBox(_("A terminate signal was sent to the selected server 
process(es)."), _("Terminate process"), wxOK | wxICON_INFORMATION);
 }
 
 void frmStatus::OnSelStatusItem(wxCommandEvent &event)
---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
      subscribe-nomail command to [EMAIL PROTECTED] so that your
      message can get through to the mailing list cleanly

Reply via email to