diff --git a/gui/wxpython/dbmgr/base.py b/gui/wxpython/dbmgr/base.py index 12013289b63..70f349afd9b 100644 --- a/gui/wxpython/dbmgr/base.py +++ b/gui/wxpython/dbmgr/base.py @@ -2639,6 +2639,7 @@ def OnTableItemChange(self, event): ) self.FindWindowById(self.layerPage[self.selLayer]["renameCol"]).SetSelection(0) self.FindWindowById(self.layerPage[self.selLayer]["renameColTo"]).SetValue("") + self._updateTableColumnWidgetChoices(table=table) event.Skip() @@ -2726,6 +2727,7 @@ def OnTableItemDelete(self, event): self.dbMgrData["mapDBInfo"].GetColumns(table) ) self.FindWindowById(self.layerPage[self.selLayer]["renameCol"]).SetSelection(0) + self._updateTableColumnWidgetChoices(table=table) event.Skip() @@ -2773,6 +2775,7 @@ def OnTableItemDeleteAll(self, event): self.dbMgrData["mapDBInfo"].GetColumns(table) ) self.FindWindowById(self.layerPage[self.selLayer]["renameCol"]).SetSelection(0) + self._updateTableColumnWidgetChoices(table=table) event.Skip() @@ -2808,7 +2811,7 @@ def OnTableItemAdd(self, event): self.dbMgrData["mapDBInfo"].GetColumns(table) ) self.FindWindowById(self.layerPage[self.selLayer]["renameCol"]).SetSelection(0) - + self._updateTableColumnWidgetChoices(table=table) event.Skip() def UpdatePage(self, layer): @@ -2823,6 +2826,26 @@ def UpdatePage(self, layer): ) self.OnTableReload(None) + def _updateTableColumnWidgetChoices(self, table): + """Update table column widget choices + + :param str table: table name + """ + cols = self.dbMgrData["mapDBInfo"].GetColumns(table) + # Browse data page SQL Query Simple page WHERE Combobox column names widget + self.FindWindowById( + self.pages["browse"].layerPage[self.selLayer]["whereColumn"] + ).SetItems(cols) + # Browse data page SQL Query Builder page SQL builder frame ListBox column names widget + if self.pages["browse"].builder: + self.pages["browse"].builder.list_columns.Set(cols) + # Browse data page column Field calculator frame ListBox column names widget + fieldCalc = self.FindWindowById( + self.pages["browse"].layerPage[self.selLayer]["data"], + ).fieldCalc + if fieldCalc: + fieldCalc.list_columns.Set(cols) + class DbMgrLayersPage(wx.Panel): def __init__(self, parent, parentDbMgrBase):