Skip to content
This repository has been archived by the owner on Sep 15, 2022. It is now read-only.

Commit

Permalink
Fix the ever-displayed message when modifying multiple times the same…
Browse files Browse the repository at this point in the history
… object (occurs with exttable, function, package, trigger, per a report from Peter Geoghegan.

Fixes #198.


git-svn-id: svn://svn.pgadmin.org/branches/REL-1_10_0_PATCHES@8402 a7884b65-44f6-0310-8a51-81a127f17b15
  • Loading branch information
gleu committed Jun 2, 2010
1 parent c687c5c commit c23387b
Show file tree
Hide file tree
Showing 12 changed files with 75 additions and 2 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG
Expand Up @@ -36,6 +36,9 @@ Changes

Date Dev Ver Change details
---------- --- ------ --------------
2010-06-02 AV 1.10.4 Fix the ever-displayed message when modifying multiple
times the same object (occurs with exttable, function,
package, trigger, per a report from Peter Geoghegan.
2010-05-27 AV 1.10.4 Use CALL to execute callable statements, not PERFORM.
2010-05-21 AV 1.10.4 Drop package bodies correctly if they only contain
whitespace.
Expand Down
9 changes: 9 additions & 0 deletions pgadmin/dlg/dlgExtTable.cpp
Expand Up @@ -32,6 +32,7 @@

BEGIN_EVENT_TABLE(dlgExtTable, dlgSecurityProperty)
EVT_STC_MODIFIED(XRCID("txtSqlBox"), dlgProperty::OnChangeStc)
EVT_BUTTON(wxID_APPLY, dlgExtTable::OnApply)
END_EVENT_TABLE();


Expand Down Expand Up @@ -166,4 +167,12 @@ bool dlgExtTable::IsUpToDate()
else
return true;
}

void dlgExtTable::OnApply(wxCommandEvent &ev)
{
dlgProperty::OnApply(ev);

wxString sql = wxT("SELECT xmin FROM pg_class WHERE oid = ") + extTable->GetOidStr();
extTable->iSetXid(StrToOid(connection->ExecuteScalar(sql)));
}

9 changes: 9 additions & 0 deletions pgadmin/dlg/dlgFunction.cpp
Expand Up @@ -103,6 +103,7 @@ BEGIN_EVENT_TABLE(dlgFunction, dlgSecurityProperty)
#ifdef __WXMAC__
EVT_SIZE( dlgFunction::OnChangeSize)
#endif
EVT_BUTTON(wxID_APPLY, dlgFunction::OnApply)
END_EVENT_TABLE();


Expand Down Expand Up @@ -577,6 +578,14 @@ bool dlgFunction::IsUpToDate()
return true;
}

void dlgFunction::OnApply(wxCommandEvent &ev)
{
dlgProperty::OnApply(ev);

wxString sql = wxT("SELECT xmin FROM pg_proc WHERE oid = ") + function->GetOidStr();
function->iSetXid(StrToOid(connection->ExecuteScalar(sql)));
}

void dlgFunction::OnSelChangeLanguage(wxCommandEvent &ev)
{
bool isC=(cbLanguage->GetValue().IsSameAs(wxT("C"), false));
Expand Down
13 changes: 13 additions & 0 deletions pgadmin/dlg/dlgPackage.cpp
Expand Up @@ -34,6 +34,7 @@ dlgProperty *edbPackageFactory::CreateDialog(frmMain *frame, pgObject *node, pgO
BEGIN_EVENT_TABLE(dlgPackage, dlgSecurityProperty)
EVT_STC_MODIFIED(XRCID("txtHeader"), dlgProperty::OnChangeStc)
EVT_STC_MODIFIED(XRCID("txtBody"), dlgProperty::OnChangeStc)
EVT_BUTTON(wxID_APPLY, dlgPackage::OnApply)
END_EVENT_TABLE();


Expand Down Expand Up @@ -140,6 +141,18 @@ bool dlgPackage::IsUpToDate()
else
return true;
}

void dlgPackage::OnApply(wxCommandEvent &ev)
{
dlgProperty::OnApply(ev);

wxString sql;
if(connection->EdbMinimumVersion(8, 2))
sql = wxT("SELECT xmin FROM pg_namespace WHERE oid = ") + package->GetOidStr();
else
sql = wxT("SELECT xmin FROM edb_package WHERE oid = ") + package->GetOidStr();
package->iSetXid(StrToOid(connection->ExecuteScalar(sql)));
}


wxString dlgPackage::GetSql()
Expand Down
10 changes: 8 additions & 2 deletions pgadmin/dlg/dlgTrigger.cpp
Expand Up @@ -46,6 +46,7 @@ BEGIN_EVENT_TABLE(dlgTrigger, dlgProperty)
EVT_COMBOBOX(XRCID("cbFunction"), dlgProperty::OnChange)
EVT_TEXT(XRCID("txtArguments"), dlgProperty::OnChange)
EVT_STC_MODIFIED(XRCID("txtBody"), dlgProperty::OnChangeStc)
EVT_BUTTON(wxID_APPLY, dlgTrigger::OnApply)
END_EVENT_TABLE();


Expand Down Expand Up @@ -324,6 +325,11 @@ bool dlgTrigger::IsUpToDate()
else
return true;
}

void dlgTrigger::OnApply(wxCommandEvent &ev)
{
dlgProperty::OnApply(ev);



wxString sql = wxT("SELECT xmin FROM pg_trigger WHERE oid = ") + trigger->GetOidStr();
trigger->iSetXid(StrToOid(connection->ExecuteScalar(sql)));
}
9 changes: 9 additions & 0 deletions pgadmin/dlg/dlgView.cpp
Expand Up @@ -32,6 +32,7 @@

BEGIN_EVENT_TABLE(dlgView, dlgSecurityProperty)
EVT_STC_MODIFIED(XRCID("txtSqlBox"), dlgProperty::OnChangeStc)
EVT_BUTTON(wxID_APPLY, dlgView::OnApply)
END_EVENT_TABLE();


Expand Down Expand Up @@ -159,4 +160,12 @@ bool dlgView::IsUpToDate()
else
return true;
}

void dlgView::OnApply(wxCommandEvent &ev)
{
dlgProperty::OnApply(ev);

wxString sql = wxT("SELECT xmin FROM pg_class WHERE oid = ") + view->GetOidStr();
view->iSetXid(StrToOid(connection->ExecuteScalar(sql)));
}

19 changes: 19 additions & 0 deletions pgadmin/frm/frmEditGrid.cpp
Expand Up @@ -771,16 +771,20 @@ void frmEditGrid::OnKey(wxKeyEvent &event)
int curcol=sqlGrid->GetGridCursorCol();
int currow=sqlGrid->GetGridCursorRow();

wxLogError(wxT("here"));

if (curcol == -1 || currow == -1)
return;

wxLogError(wxT("still here"));
int keycode=event.GetKeyCode();
wxCommandEvent ev;

switch (keycode)
{
case WXK_DELETE:
{
wxLogError(wxT("delete"));
if (editorCell->IsSet() || !toolBar->GetToolEnabled(MNU_DELETE))
{
if (!sqlGrid->IsCurrentCellReadOnly())
Expand All @@ -797,13 +801,22 @@ void frmEditGrid::OnKey(wxKeyEvent &event)
wxTextCtrl *txt=wxDynamicCast(ctl, wxTextCtrl);
if (txt)
txt->SetValue(wxEmptyString);
else
wxLogError(wxT("no txt"));
}
else
wxLogError(wxT("no ctl"));
edit->DecRef();
}
else
wxLogError(wxT("not edit"));
}
else
wxLogError(wxT("readonly"));
}
else
{
wxLogError(wxT("ondelete"));
OnDelete(ev);
}
return;
Expand Down Expand Up @@ -874,6 +887,7 @@ void frmEditGrid::OnKey(wxKeyEvent &event)
break;

default:
wxLogError(wxT("WTF!"));
if (sqlGrid->IsEditable() && keycode >= WXK_SPACE && keycode < WXK_START)
{
if (sqlGrid->IsCurrentCellReadOnly())
Expand Down Expand Up @@ -1045,18 +1059,22 @@ int ArrayCmp(T *a, T *b)

void frmEditGrid::OnDelete(wxCommandEvent& event)
{
wxLogError(wxT("1"));
// Don't bugger about with keypresses to the scratch pad.
if (FindFocus() == scratchPad)
{
wxLogError(wxT("2"));
event.Skip();
return;
}

if (editorCell->IsSet())
{
wxLogError(wxT("3"));
if (sqlGrid->GetTable()->IsColBoolean(sqlGrid->GetGridCursorCol()))
return;

wxLogError(wxT("4"));
wxTextCtrl *text = (wxTextCtrl *)sqlGrid->GetCellEditor(sqlGrid->GetGridCursorRow(), sqlGrid->GetGridCursorCol())->GetControl();
if (text && text->GetInsertionPoint() <= text->GetLastPosition())
{
Expand All @@ -1066,6 +1084,7 @@ void frmEditGrid::OnDelete(wxCommandEvent& event)
else
text->Remove(text->GetInsertionPoint(), text->GetInsertionPoint() + 1);
}
wxLogError(wxT("5"));
return;
}

Expand Down
1 change: 1 addition & 0 deletions pgadmin/include/dlg/dlgExtTable.h
Expand Up @@ -35,6 +35,7 @@ class dlgExtTable : public dlgSecurityProperty
private:

virtual bool IsUpToDate();
void OnApply(wxCommandEvent &ev);

pgSchema *schema;
gpExtTable *extTable;
Expand Down
1 change: 1 addition & 0 deletions pgadmin/include/dlg/dlgFunction.h
Expand Up @@ -64,6 +64,7 @@ class dlgFunction : public dlgSecurityProperty
void ReplaceSizer(wxWindow *w, bool isC, int border);

virtual bool IsUpToDate();
void OnApply(wxCommandEvent &ev);

wxArrayString typOids;
wxArrayString types;
Expand Down
1 change: 1 addition & 0 deletions pgadmin/include/dlg/dlgPackage.h
Expand Up @@ -36,6 +36,7 @@ class dlgPackage : public dlgSecurityProperty
pgSchema *schema;

virtual bool IsUpToDate();
void OnApply(wxCommandEvent &ev);
#ifdef __WXMAC__
void OnChangeSize(wxSizeEvent &ev);
#endif
Expand Down
1 change: 1 addition & 0 deletions pgadmin/include/dlg/dlgTrigger.h
Expand Up @@ -37,6 +37,7 @@ class dlgTrigger : public dlgProperty
void OnChangeFunc(wxCommandEvent &ev);

virtual bool IsUpToDate();
void OnApply(wxCommandEvent &ev);

DECLARE_EVENT_TABLE()
};
Expand Down
1 change: 1 addition & 0 deletions pgadmin/include/dlg/dlgView.h
Expand Up @@ -35,6 +35,7 @@ class dlgView : public dlgSecurityProperty
private:

virtual bool IsUpToDate();
void OnApply(wxCommandEvent &ev);

pgSchema *schema;
pgView *view;
Expand Down

0 comments on commit c23387b

Please sign in to comment.