소스 검색

wxGUI/vdigit: fix settings dialog (use giface)

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@54392 15284696-431f-4ddb-bdfa-cd5b030d7da7
Martin Landa 12 년 전
부모
커밋
05eff12567
4개의 변경된 파일19개의 추가작업 그리고 13개의 파일을 삭제
  1. 1 1
      gui/wxpython/core/settings.py
  2. 2 2
      gui/wxpython/mapdisp/frame.py
  3. 13 7
      gui/wxpython/vdigit/preferences.py
  4. 3 3
      gui/wxpython/vdigit/toolbars.py

+ 1 - 1
gui/wxpython/core/settings.py

@@ -990,8 +990,8 @@ class Settings:
             raise GException(_('Writing settings to file <%(file)s> failed.'
             raise GException(_('Writing settings to file <%(file)s> failed.'
                                '\n\nDetails: %(detail)s') % { 'file' : self.filePath,
                                '\n\nDetails: %(detail)s') % { 'file' : self.filePath,
                                                               'detail' : e })
                                                               'detail' : e })
-        
         file.close()
         file.close()
+        return self.filePath
         
         
     def _parseValue(self, value, read = False):
     def _parseValue(self, value, read = False):
         """!Parse value to be store in settings file"""
         """!Parse value to be store in settings file"""

+ 2 - 2
gui/wxpython/mapdisp/frame.py

@@ -227,8 +227,8 @@ class MapFrame(SingleMapFrame):
             self._mgr.GetPane('3d').Hide()
             self._mgr.GetPane('3d').Hide()
         self._mgr.GetPane('vdigit').Show()
         self._mgr.GetPane('vdigit').Show()
         self.toolbars['vdigit'] = VDigitToolbar(parent = self, MapWindow = self.MapWindow,
         self.toolbars['vdigit'] = VDigitToolbar(parent = self, MapWindow = self.MapWindow,
-                                                digitClass = VDigit, layerTree = self.tree,
-                                                log = log)
+                                                digitClass = VDigit, giface =  self._giface,
+                                                layerTree = self.tree, log = log)
         self.MapWindowVDigit.SetToolbar(self.toolbars['vdigit'])
         self.MapWindowVDigit.SetToolbar(self.toolbars['vdigit'])
         
         
         self._mgr.AddPane(self.toolbars['vdigit'],
         self._mgr.AddPane(self.toolbars['vdigit'],

+ 13 - 7
gui/wxpython/vdigit/preferences.py

@@ -26,12 +26,14 @@ from core.units       import Units
 from core.settings    import UserSettings
 from core.settings    import UserSettings
 
 
 class VDigitSettingsDialog(wx.Dialog):
 class VDigitSettingsDialog(wx.Dialog):
-    def __init__(self, parent, title, style = wx.DEFAULT_DIALOG_STYLE):
+    def __init__(self, parent, giface, title = _("Digitization settings"),
+                 style = wx.DEFAULT_DIALOG_STYLE):
         """!Standard settings dialog for digitization purposes
         """!Standard settings dialog for digitization purposes
         """
         """
         wx.Dialog.__init__(self, parent = parent, id = wx.ID_ANY, title = title, style = style)
         wx.Dialog.__init__(self, parent = parent, id = wx.ID_ANY, title = title, style = style)
 
 
-        self.parent = parent # mapdisplay.MapFrame class instance
+        self._giface = giface
+        self.parent = parent                     # MapFrame
         self.digit = self.parent.MapWindow.digit
         self.digit = self.parent.MapWindow.digit
         
         
         # notebook
         # notebook
@@ -666,8 +668,8 @@ class VDigitSettingsDialog(wx.Dialog):
         UserSettings.ReadSettingsFile(settings = fileSettings)
         UserSettings.ReadSettingsFile(settings = fileSettings)
         fileSettings['vdigit'] = UserSettings.Get(group = 'vdigit')
         fileSettings['vdigit'] = UserSettings.Get(group = 'vdigit')
         
         
-        file = UserSettings.SaveToFile(fileSettings)
-        self.parent.GetLayerManager().GetLogWindow().WriteLog(_('Vector digitizer settings saved to file <%s>.') % file)
+        sfile = UserSettings.SaveToFile(fileSettings)
+        self._giface.WriteLog(_('Vector digitizer settings saved to file <%s>.') % sfile)
         
         
         self.Destroy()
         self.Destroy()
 
 
@@ -690,7 +692,8 @@ class VDigitSettingsDialog(wx.Dialog):
     def UpdateSettings(self):
     def UpdateSettings(self):
         """!Update digitizer settings
         """!Update digitizer settings
         """
         """
-        self.parent.GetLayerManager().WorkspaceChanged() # geometry attributes
+        if self.parent.GetLayerManager():
+            self.parent.GetLayerManager().WorkspaceChanged() # geometry attributes
         # symbology
         # symbology
         for key, (enabled, color) in self.symbology.iteritems():
         for key, (enabled, color) in self.symbology.iteritems():
             if enabled:
             if enabled:
@@ -732,8 +735,11 @@ class VDigitSettingsDialog(wx.Dialog):
 
 
         # geometry attributes (workspace)
         # geometry attributes (workspace)
         mapLayer = self.parent.toolbars['vdigit'].GetLayer()
         mapLayer = self.parent.toolbars['vdigit'].GetLayer()
-        tree = self.parent.tree
-        item = tree.FindItemByData('maplayer', mapLayer)
+        tree = self._giface.GetLayerTree()
+        if tree:
+            item = tree.FindItemByData('maplayer', mapLayer)
+        else:
+            item = None
         for key, val in self.geomAttrb.iteritems():
         for key, val in self.geomAttrb.iteritems():
             checked = self.FindWindowById(val['check']).IsChecked()
             checked = self.FindWindowById(val['check']).IsChecked()
             column  = self.FindWindowById(val['column']).GetValue()
             column  = self.FindWindowById(val['column']).GetValue()

+ 3 - 3
gui/wxpython/vdigit/toolbars.py

@@ -30,7 +30,7 @@ from iclass.digit       import IClassVDigit
 class VDigitToolbar(BaseToolbar):
 class VDigitToolbar(BaseToolbar):
     """!Toolbar for digitization
     """!Toolbar for digitization
     """
     """
-    def __init__(self, parent, MapWindow, digitClass, tools = [], layerTree = None, log = None):
+    def __init__(self, parent, MapWindow, digitClass, giface, tools = [], layerTree = None, log = None):
         self.MapWindow     = MapWindow
         self.MapWindow     = MapWindow
         self.Map           = MapWindow.GetMap() # Map class instance
         self.Map           = MapWindow.GetMap() # Map class instance
         self.layerTree     = layerTree  # reference to layer tree associated to map display
         self.layerTree     = layerTree  # reference to layer tree associated to map display
@@ -39,6 +39,7 @@ class VDigitToolbar(BaseToolbar):
         self.digitClass    = digitClass
         self.digitClass    = digitClass
         BaseToolbar.__init__(self, parent)
         BaseToolbar.__init__(self, parent)
         self.digit         = None
         self.digit         = None
+        self._giface       = giface
         
         
         # currently selected map layer for editing (reference to MapLayer instance)
         # currently selected map layer for editing (reference to MapLayer instance)
         self.mapLayer = None
         self.mapLayer = None
@@ -451,8 +452,7 @@ class VDigitToolbar(BaseToolbar):
                 self.digit = self.MapWindow.digit = None
                 self.digit = self.MapWindow.digit = None
         
         
         if not self.settingsDialog:
         if not self.settingsDialog:
-            self.settingsDialog = VDigitSettingsDialog(parent = self.parent, title = _("Digitization settings"),
-                                                       style = wx.DEFAULT_DIALOG_STYLE)
+            self.settingsDialog = VDigitSettingsDialog(parent = self.parent, giface = self._giface)
             self.settingsDialog.Show()
             self.settingsDialog.Show()
 
 
     def OnHelp(self, event):
     def OnHelp(self, event):