frmGrantWizard::frmGrantWizard(frmMain *form, pgObject *obj) : ExecutionDialog(form, obj) { nbNotebook = 0; SetFont(settings->GetSystemFont()); LoadResource(form, wxT("frmGrantWizard")); RestorePosition(); SetTitle(object->GetTranslatedMessage(GRANTWIZARDTITLE)); // Icon SetIcon(*index_png_ico); nbNotebook = CTRL_NOTEBOOK("nbNotebook"); sqlPane = 0; Restore(); EnableOK(false); }
frmGrantWizard::frmGrantWizard(frmMain *form, pgObject *obj) : ExecutionDialog(form, obj) { nbNotebook = 0; wxWindowBase::SetFont(settings->GetSystemFont()); LoadResource(form, wxT("frmGrantWizard")); RestorePosition(); if (object->IsCollection()) SetTitle(wxString::Format(_("Privileges for %s"), object->GetTranslatedTypeName().c_str(), "")); else SetTitle(wxString::Format(_("Privileges for %s %s"), object->GetTranslatedTypeName().c_str(), object->GetFullIdentifier().c_str())); // Icon SetIcon(wxIcon(index_xpm)); nbNotebook = CTRL_NOTEBOOK("nbNotebook"); sqlPane = 0; Restore(); EnableOK(false); }
void ExecutionDialog::OnOK(wxCommandEvent &ev) { #ifdef __WXGTK__ if (!btnOK->IsEnabled()) return; #endif if (!thread) { wxString sql = GetSql(); if (sql.IsEmpty()) return; btnOK->Disable(); // Reset the variables bIsAborted = false; bIsExecutionStarted = false; bIsExecutionCompleted = false; thread = new pgQueryThread(conn, sql); if (thread->Create() != wxTHREAD_NO_ERROR) { Abort(); return; } wxLongLong startTime = wxGetLocalTimeMillis(); thread->Run(); // When execution is started then set the variable bIsExecutionStarted = true; wxNotebook *nb = CTRL_NOTEBOOK("nbNotebook"); if (nb) nb->SetSelection(nb->GetPageCount() - 1); while (thread && thread->IsRunning()) { wxMilliSleep(10); // here could be the animation if (txtMessages) { wxString msg = thread->GetMessagesAndClear(); if (!msg.IsEmpty()) txtMessages->AppendText(msg + wxT("\n")); } wxTheApp->Yield(true); } if (thread) { bool isOk = (thread->ReturnCode() == PGRES_COMMAND_OK || thread->ReturnCode() == PGRES_TUPLES_OK); if (txtMessages) { txtMessages->AppendText(thread->GetMessagesAndClear()); } if (thread->DataSet() != NULL) { wxLogInfo(wxString::Format(wxT("%d rows."), thread->DataSet()->NumRows())); } if (isOk) { if (txtMessages) txtMessages->AppendText(_("Total query runtime: ") + (wxGetLocalTimeMillis() - startTime).ToString() + wxT(" ms.")); btnOK->SetLabel(_("Done")); btnCancel->Disable(); } else { if (txtMessages) txtMessages->AppendText(conn->GetLastError()); Abort(); } } else if (txtMessages) txtMessages->AppendText(_("\nCancelled.\n")); btnOK->Enable(); bIsExecutionCompleted = true; } else { Abort(); delete conn; Destroy(); } }