pgadmin/ctl/ctlSQLBox.cpp | 5 ++++- pgadmin/dlg/dlgFindReplace.cpp | 5 ++++- pgadmin/include/dlg/dlgFindReplace.h | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/pgadmin/ctl/ctlSQLBox.cpp b/pgadmin/ctl/ctlSQLBox.cpp index cf33207..492aff7 100644 --- a/pgadmin/ctl/ctlSQLBox.cpp +++ b/pgadmin/ctl/ctlSQLBox.cpp @@ -442,7 +442,10 @@ void ctlSQLBox::OnKeyDown(wxKeyEvent &event) } else if (m_dlgFindReplace && event.GetKeyCode() == WXK_F3) { - m_dlgFindReplace->FindNext(); + if (event.GetModifiers() == wxMOD_SHIFT) + m_dlgFindReplace->FindNext(false); + else + m_dlgFindReplace->FindNext(true); } else event.Skip(); diff --git a/pgadmin/dlg/dlgFindReplace.cpp b/pgadmin/dlg/dlgFindReplace.cpp index d8aa3fd..bbeb533 100644 --- a/pgadmin/dlg/dlgFindReplace.cpp +++ b/pgadmin/dlg/dlgFindReplace.cpp @@ -279,10 +279,13 @@ void dlgFindReplace::OnReplaceAll(wxCommandEvent &ev) sqlbox->ReplaceAll(txtFind->GetValue(), txtReplace->GetValue(), wholeWord, matchCase, useRegexps); } -void dlgFindReplace::FindNext() +void dlgFindReplace::FindNext(bool directionForward) { if (btnFind->IsEnabled() && !txtFind->IsEmpty()) { + rdDirectionForward->SetValue(directionForward); + rdDirectionBackward->SetValue(!directionForward); + wxCommandEvent ev; OnFind(ev); } diff --git a/pgadmin/include/dlg/dlgFindReplace.h b/pgadmin/include/dlg/dlgFindReplace.h index 9595f05..6d1b7a0 100644 --- a/pgadmin/include/dlg/dlgFindReplace.h +++ b/pgadmin/include/dlg/dlgFindReplace.h @@ -23,7 +23,7 @@ public: dlgFindReplace(ctlSQLBox *parent); ~dlgFindReplace(); void FocusSearch(); - void FindNext(); + void FindNext(bool directionForward = true); void SetFindString(const wxString &val); private: