From 421d566d6dc625f0c80122ec0beae455dedb484d Mon Sep 17 00:00:00 2001 From: Tomas Zigo <50632337+tmszi@users.noreply.github.com> Date: Thu, 28 Sep 2023 20:26:16 +0200 Subject: [PATCH] wxGUI/dbmgr: update Browse data page Simple SQL Query WHERE ComboBox widget column names choices (#2438) * update Browse data page SQL Builder column names ListBox widget column names choices * update Browse data page column field calculator column names ListBox widget choices If new table column was added, renamed, deleted or deleted are all columns. --- gui/wxpython/dbmgr/base.py | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) 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):