|
@@ -1658,8 +1658,19 @@ class AttributeManager(wx.Frame):
|
|
def OnTableItemDelete(self, event):
|
|
def OnTableItemDelete(self, event):
|
|
"""!Delete selected item(s) from the list"""
|
|
"""!Delete selected item(s) from the list"""
|
|
list = self.FindWindowById(self.layerPage[self.layer]['tableData'])
|
|
list = self.FindWindowById(self.layerPage[self.layer]['tableData'])
|
|
-
|
|
|
|
|
|
+
|
|
item = list.GetFirstSelected()
|
|
item = list.GetFirstSelected()
|
|
|
|
+
|
|
|
|
+ if UserSettings.Get(group='atm', key='askOnDeleteRec', subkey='enabled'):
|
|
|
|
+ deleteDialog = wx.MessageBox(parent=self,
|
|
|
|
+ message=_("Selected column '%s' will PERMANENTLY removed "
|
|
|
|
+ "from table. Do you want to drop the column?") % \
|
|
|
|
+ (list.GetItemText(item)),
|
|
|
|
+ caption=_("Drop column(s)"),
|
|
|
|
+ style=wx.YES_NO | wx.CENTRE)
|
|
|
|
+ if deleteDialog != wx.YES:
|
|
|
|
+ return False
|
|
|
|
+
|
|
while item != -1:
|
|
while item != -1:
|
|
self.listOfCommands.append(('v.db.dropcolumn',
|
|
self.listOfCommands.append(('v.db.dropcolumn',
|
|
{ 'map' : self.vectorName,
|
|
{ 'map' : self.vectorName,
|
|
@@ -1668,21 +1679,35 @@ class AttributeManager(wx.Frame):
|
|
))
|
|
))
|
|
list.DeleteItem(item)
|
|
list.DeleteItem(item)
|
|
item = list.GetFirstSelected()
|
|
item = list.GetFirstSelected()
|
|
-
|
|
|
|
|
|
+
|
|
# apply changes
|
|
# apply changes
|
|
self.ApplyCommands()
|
|
self.ApplyCommands()
|
|
-
|
|
|
|
|
|
+
|
|
# update widgets
|
|
# update widgets
|
|
table = self.mapDBInfo.layers[self.layer]['table']
|
|
table = self.mapDBInfo.layers[self.layer]['table']
|
|
self.FindWindowById(self.layerPage[self.layer]['renameCol']).SetItems(self.mapDBInfo.GetColumns(table))
|
|
self.FindWindowById(self.layerPage[self.layer]['renameCol']).SetItems(self.mapDBInfo.GetColumns(table))
|
|
self.FindWindowById(self.layerPage[self.layer]['renameCol']).SetSelection(0)
|
|
self.FindWindowById(self.layerPage[self.layer]['renameCol']).SetSelection(0)
|
|
-
|
|
|
|
|
|
+
|
|
event.Skip()
|
|
event.Skip()
|
|
|
|
|
|
def OnTableItemDeleteAll(self, event):
|
|
def OnTableItemDeleteAll(self, event):
|
|
"""!Delete all items from the list"""
|
|
"""!Delete all items from the list"""
|
|
- table = self.mapDBInfo.layers[self.layer]['table']
|
|
|
|
- cols = self.mapDBInfo.GetColumns(table)
|
|
|
|
|
|
+ table = self.mapDBInfo.layers[self.layer]['table']
|
|
|
|
+ cols = self.mapDBInfo.GetColumns(table)
|
|
|
|
+ keyColumn = self.mapDBInfo.layers[self.layer]['key']
|
|
|
|
+ if keyColumn in cols:
|
|
|
|
+ cols.remove(keyColumn)
|
|
|
|
+
|
|
|
|
+ if UserSettings.Get(group='atm', key='askOnDeleteRec', subkey='enabled'):
|
|
|
|
+ deleteDialog = wx.MessageBox(parent=self,
|
|
|
|
+ message=_("Selected columns\n%s\nwill PERMANENTLY removed "
|
|
|
|
+ "from table. Do you want to drop the columns?") % \
|
|
|
|
+ ('\n'.join(cols)),
|
|
|
|
+ caption=_("Drop column(s)"),
|
|
|
|
+ style=wx.YES_NO | wx.CENTRE)
|
|
|
|
+ if deleteDialog != wx.YES:
|
|
|
|
+ return False
|
|
|
|
+
|
|
for col in cols:
|
|
for col in cols:
|
|
self.listOfCommands.append(('v.db.dropcolumn',
|
|
self.listOfCommands.append(('v.db.dropcolumn',
|
|
{ 'map' : self.vectorName,
|
|
{ 'map' : self.vectorName,
|