Parcourir la source

bugfix https://trac.osgeo.org/grass/ticket/1072

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@42325 15284696-431f-4ddb-bdfa-cd5b030d7da7
Martin Landa il y a 15 ans
Parent
commit
ad43106af1
1 fichiers modifiés avec 31 ajouts et 6 suppressions
  1. 31 6
      gui/wxpython/gui_modules/dbm.py

+ 31 - 6
gui/wxpython/gui_modules/dbm.py

@@ -1658,8 +1658,19 @@ class AttributeManager(wx.Frame):
     def OnTableItemDelete(self, event):
         """!Delete selected item(s) from the list"""
         list = self.FindWindowById(self.layerPage[self.layer]['tableData'])
-
+        
         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:
             self.listOfCommands.append(('v.db.dropcolumn',
                                         { 'map' : self.vectorName,
@@ -1668,21 +1679,35 @@ class AttributeManager(wx.Frame):
                                         ))
             list.DeleteItem(item)
             item = list.GetFirstSelected()
-
+        
         # apply changes
         self.ApplyCommands()
-
+        
         # update widgets
         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']).SetSelection(0)
-
+        
         event.Skip()
 
     def OnTableItemDeleteAll(self, event):
         """!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:
             self.listOfCommands.append(('v.db.dropcolumn',
                                         { 'map' : self.vectorName,