Author: dpage
Date: 2005-11-16 21:57:28 +0000 (Wed, 16 Nov 2005)
New Revision: 4744
Modified:
trunk/pgadmin3/src/ctl/ctlSQLBox.cpp
trunk/pgadmin3/src/include/ctl/ctlSQLBox.h
Log:
Swap between Find/Replace dialogues correctly on non-windows platforms properly. Looks like we might have to live with
slightlyodd behaviour on Windows due to the design of wx :-(
Modified: trunk/pgadmin3/src/ctl/ctlSQLBox.cpp
===================================================================
--- trunk/pgadmin3/src/ctl/ctlSQLBox.cpp 2005-11-12 19:28:35 UTC (rev 4743)
+++ trunk/pgadmin3/src/ctl/ctlSQLBox.cpp 2005-11-16 21:57:28 UTC (rev 4744)
@@ -295,13 +295,18 @@
ctlSQLBox::ctlSQLBox()
{
m_dlgFind=0;
+#ifndef __WXMSW__
+ findDlgLast = false;
+#endif
}
ctlSQLBox::ctlSQLBox(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style)
{
m_dlgFind=0;
-
+#ifndef __WXMSW__
+ findDlgLast = false;
+#endif
Create(parent, id, pos, size, style);
}
@@ -369,11 +374,21 @@
void ctlSQLBox::OnFind(wxCommandEvent& ev)
{
+#ifndef __WXMSW__
+ if (m_dlgFind && !findDlgLast)
+ {
+ m_dlgFind->Destroy();
+ m_dlgFind = NULL;
+ }
+#endif
+
if (!m_dlgFind)
{
m_dlgFind = new wxFindReplaceDialog(this, &m_findData, _("Find text"), 0);
-
m_dlgFind->Show(true);
+#ifndef __WXMSW__
+ findDlgLast = true;
+#endif
}
else
m_dlgFind->SetFocus();
@@ -382,11 +397,21 @@
void ctlSQLBox::OnReplace(wxCommandEvent& ev)
{
+#ifndef __WXMSW__
+ if (m_dlgFind && findDlgLast)
+ {
+ m_dlgFind->Destroy();
+ m_dlgFind = NULL;
+ }
+#endif
+
if (!m_dlgFind)
{
m_dlgFind = new wxFindReplaceDialog(this, &m_findData, _("Find text"), wxFR_REPLACEDIALOG);
-
m_dlgFind->Show(true);
+#ifndef __WXMSW__
+ findDlgLast = false;
+#endif
}
else
m_dlgFind->SetFocus();
Modified: trunk/pgadmin3/src/include/ctl/ctlSQLBox.h
===================================================================
--- trunk/pgadmin3/src/include/ctl/ctlSQLBox.h 2005-11-12 19:28:35 UTC (rev 4743)
+++ trunk/pgadmin3/src/include/ctl/ctlSQLBox.h 2005-11-16 21:57:28 UTC (rev 4744)
@@ -29,8 +29,6 @@
~ctlSQLBox();
void Create(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, const wxSize& size =
wxDefaultSize,long style = 0);
- wxFindReplaceData m_findData;
- wxFindReplaceDialog* m_dlgFind;
void OnKeyDown(wxKeyEvent& event);
void OnFind(wxCommandEvent& event);
@@ -39,6 +37,14 @@
DECLARE_DYNAMIC_CLASS(ctlSQLBox)
DECLARE_EVENT_TABLE()
+
+private:
+ wxFindReplaceData m_findData;
+ wxFindReplaceDialog* m_dlgFind;
+#ifndef __WXMSW__
+ bool findDlgLast;
+#endif
+
};