SVN Commit by dpage: r4709 - in trunk/pgadmin3: . src/ctl src/frm src/include src/include/ctl

From: svn(at)pgadmin(dot)org
To: pgadmin-hackers(at)postgresql(dot)org
Subject: SVN Commit by dpage: r4709 - in trunk/pgadmin3: . src/ctl src/frm src/include src/include/ctl
Date: 2005-11-09 11:15:41
Message-ID: 200511091115.jA9BFf2e024605@developer.pgadmin.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

Author: dpage
Date: 2005-11-09 11:15:41 +0000 (Wed, 09 Nov 2005)
New Revision: 4709

Modified:
trunk/pgadmin3/CHANGELOG.txt
trunk/pgadmin3/src/ctl/ctlSQLBox.cpp
trunk/pgadmin3/src/frm/frmQuery.cpp
trunk/pgadmin3/src/include/ctl/ctlSQLBox.h
trunk/pgadmin3/src/include/frmQuery.h
trunk/pgadmin3/src/include/menu.h
Log:
Add search/replace to the query editor

Modified: trunk/pgadmin3/CHANGELOG.txt
===================================================================
--- trunk/pgadmin3/CHANGELOG.txt 2005-11-09 10:41:31 UTC (rev 4708)
+++ trunk/pgadmin3/CHANGELOG.txt 2005-11-09 11:15:41 UTC (rev 4709)
@@ -17,6 +17,7 @@
</ul>
<br>
<ul>
+ <li>2005-11-09 DP 1.4 Add search/replace to the query editor
<li>2005-11-09 AP 1.4.1 Fix param name quoting for procedures (r: Alex Tyagloff)
<li>2005-11-04 AP 1.4.0 Fix SET role (r:Florian Pflug), fix role help
<li>2005-11-04 DP 1.4.0 Fix role inheritance option when creating roles, per Mike Allen

Modified: trunk/pgadmin3/src/ctl/ctlSQLBox.cpp
===================================================================
--- trunk/pgadmin3/src/ctl/ctlSQLBox.cpp 2005-11-09 10:41:31 UTC (rev 4708)
+++ trunk/pgadmin3/src/ctl/ctlSQLBox.cpp 2005-11-09 11:15:41 UTC (rev 4709)
@@ -380,6 +380,19 @@
}


+void ctlSQLBox::OnReplace(wxCommandEvent& ev)
+{
+ if (!m_dlgFind)
+ {
+ m_dlgFind = new wxFindReplaceDialog(this, &m_findData, _("Find text"), wxFR_REPLACEDIALOG);
+
+ m_dlgFind->Show(true);
+ }
+ else
+ m_dlgFind->SetFocus();
+}
+
+
void ctlSQLBox::OnFindDialog(wxFindDialogEvent& event)
{
wxEventType type = event.GetEventType();
@@ -420,11 +433,58 @@
wxICON_EXCLAMATION | wxOK, this);
}
}
- else if (type == wxEVT_COMMAND_FIND_REPLACE || type == wxEVT_COMMAND_FIND_REPLACE_ALL)
+ else if (type == wxEVT_COMMAND_FIND_REPLACE)
{
- wxMessageBox(_("Not implemented"), _("Find text"),
- wxICON_EXCLAMATION | wxOK, this);
+ int flags = 0;
+ if (event.GetFlags() & wxFR_MATCHCASE)
+ flags |= wxSTC_FIND_MATCHCASE;
+
+ if (event.GetFlags() & wxFR_WHOLEWORD)
+ flags |= wxSTC_FIND_WHOLEWORD;
+
+ int startPos = GetSelectionStart();
+ int endPos = GetTextLength();
+
+ int pos = FindText(startPos, endPos, event.GetFindString().c_str(), flags);
+
+ if (pos >= 0)
+ {
+ SetSelectionStart(pos);
+ SetSelectionEnd(pos + event.GetFindString().Length());
+ ReplaceSelection(event.GetReplaceString().c_str());
+ EnsureCaretVisible();
+ }
+ else
+ {
+ wxMessageBox(_("Reached end of the document"), _("Replace text"),
+ wxICON_EXCLAMATION | wxOK, this);
+ }
}
+ else if (type == wxEVT_COMMAND_FIND_REPLACE_ALL)
+ {
+ int flags = 0;
+ if (event.GetFlags() & wxFR_MATCHCASE)
+ flags |= wxSTC_FIND_MATCHCASE;
+
+ if (event.GetFlags() & wxFR_WHOLEWORD)
+ flags |= wxSTC_FIND_WHOLEWORD;
+
+ int initialPos = GetCurrentPos();
+ int startPos = 0;
+ int endPos = GetTextLength();
+
+ int pos = FindText(startPos, endPos, event.GetFindString().c_str(), flags);
+
+ while (pos >= 0)
+ {
+ SetSelectionStart(pos);
+ SetSelectionEnd(pos + event.GetFindString().Length());
+ ReplaceSelection(event.GetReplaceString().c_str());
+ pos = FindText(pos, endPos, event.GetFindString().c_str(), flags);
+ }
+
+ GotoPos(initialPos);
+ }
else if (type == wxEVT_COMMAND_FIND_CLOSE)
{
wxFindReplaceDialog *dlg = event.GetDialog();

Modified: trunk/pgadmin3/src/frm/frmQuery.cpp
===================================================================
--- trunk/pgadmin3/src/frm/frmQuery.cpp 2005-11-09 10:41:31 UTC (rev 4708)
+++ trunk/pgadmin3/src/frm/frmQuery.cpp 2005-11-09 11:15:41 UTC (rev 4709)
@@ -62,6 +62,7 @@
EVT_MENU(MNU_PASTE, frmQuery::OnPaste)
EVT_MENU(MNU_CLEAR, frmQuery::OnClear)
EVT_MENU(MNU_FIND, frmQuery::OnFind)
+ EVT_MENU(MNU_REPLACE, frmQuery::OnReplace)
EVT_MENU(MNU_UNDO, frmQuery::OnUndo)
EVT_MENU(MNU_REDO, frmQuery::OnRedo)
EVT_MENU(MNU_EXECUTE, frmQuery::OnExecute)
@@ -125,6 +126,7 @@
editMenu->Append(MNU_CLEAR, _("C&lear window"), _("Clear edit window"), wxITEM_NORMAL);
editMenu->AppendSeparator();
editMenu->Append(MNU_FIND, _("&Find\tCtrl-F"), _("Find text"), wxITEM_NORMAL);
+ editMenu->Append(MNU_REPLACE, _("&Replace\tCtrl-R"), _("Find and Replace text"), wxITEM_NORMAL);
menuBar->Append(editMenu, _("&Edit"));

queryMenu = new wxMenu();
@@ -156,16 +158,17 @@

UpdateRecentFiles();

- wxAcceleratorEntry entries[8];
+ wxAcceleratorEntry entries[9];

entries[0].Set(wxACCEL_CTRL, (int)'E', MNU_EXECUTE);
entries[1].Set(wxACCEL_CTRL, (int)'O', MNU_OPEN);
entries[2].Set(wxACCEL_CTRL, (int)'S', MNU_SAVE);
entries[3].Set(wxACCEL_CTRL, (int)'F', MNU_FIND);
- entries[4].Set(wxACCEL_NORMAL, WXK_F5, MNU_EXECUTE);
- entries[5].Set(wxACCEL_NORMAL, WXK_F7, MNU_EXPLAIN);
- entries[6].Set(wxACCEL_ALT, WXK_PAUSE, MNU_CANCEL);
- entries[7].Set(wxACCEL_NORMAL, WXK_F1, MNU_HELP);
+ entries[4].Set(wxACCEL_CTRL, (int)'R', MNU_REPLACE);
+ entries[5].Set(wxACCEL_NORMAL, WXK_F5, MNU_EXECUTE);
+ entries[6].Set(wxACCEL_NORMAL, WXK_F7, MNU_EXPLAIN);
+ entries[7].Set(wxACCEL_ALT, WXK_PAUSE, MNU_CANCEL);
+ entries[8].Set(wxACCEL_NORMAL, WXK_F1, MNU_HELP);

wxAcceleratorTable accel(8, entries);
SetAcceleratorTable(accel);
@@ -632,6 +635,12 @@
sqlQuery->OnFind(ev);
}

+void frmQuery::OnReplace(wxCommandEvent& ev)
+{
+ sqlQuery->OnReplace(ev);
+}
+
+
void frmQuery::OnUndo(wxCommandEvent& ev)
{
sqlQuery->Undo();

Modified: trunk/pgadmin3/src/include/ctl/ctlSQLBox.h
===================================================================
--- trunk/pgadmin3/src/include/ctl/ctlSQLBox.h 2005-11-09 10:41:31 UTC (rev 4708)
+++ trunk/pgadmin3/src/include/ctl/ctlSQLBox.h 2005-11-09 11:15:41 UTC (rev 4709)
@@ -34,6 +34,7 @@

void OnKeyDown(wxKeyEvent& event);
void OnFind(wxCommandEvent& event);
+ void OnReplace(wxCommandEvent& event);
void OnFindDialog(wxFindDialogEvent& event);

DECLARE_DYNAMIC_CLASS(ctlSQLBox)

Modified: trunk/pgadmin3/src/include/frmQuery.h
===================================================================
--- trunk/pgadmin3/src/include/frmQuery.h 2005-11-09 10:41:31 UTC (rev 4708)
+++ trunk/pgadmin3/src/include/frmQuery.h 2005-11-09 11:15:41 UTC (rev 4709)
@@ -57,6 +57,7 @@
void OnPaste(wxCommandEvent& event);
void OnClear(wxCommandEvent& event);
void OnFind(wxCommandEvent& event);
+ void OnReplace(wxCommandEvent& event);
void OnUndo(wxCommandEvent& event);
void OnRedo(wxCommandEvent& event);
void OnSaveHistory(wxCommandEvent& event);

Modified: trunk/pgadmin3/src/include/menu.h
===================================================================
--- trunk/pgadmin3/src/include/menu.h 2005-11-09 10:41:31 UTC (rev 4708)
+++ trunk/pgadmin3/src/include/menu.h 2005-11-09 11:15:41 UTC (rev 4709)
@@ -42,6 +42,7 @@
MNU_PASTE,
MNU_CLEAR,
MNU_FIND,
+ MNU_REPLACE,
MNU_UNDO,
MNU_REDO,
MNU_CANCEL,

Browse pgadmin-hackers by date

  From Date Subject
Next Message svn 2005-11-09 11:34:54 SVN Commit by andreas: r4710 - in trunk/pgadmin3: . src/dlg src/include/base
Previous Message Dave Page 2005-11-09 10:55:35 Re: SVN Commit by andreas: r4705 - branches/REL-1_4_0_PATCHES/pgadmin3