소스 검색

wms: add default servers button added

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@59325 15284696-431f-4ddb-bdfa-cd5b030d7da7
Štěpán Turek 11 년 전
부모
커밋
a43dafb58e
3개의 변경된 파일53개의 추가작업 그리고 19개의 파일을 삭제
  1. 20 8
      gui/wxpython/gui_core/widgets.py
  2. 4 11
      gui/wxpython/web_services/dialogs.py
  3. 29 0
      gui/wxpython/web_services/widgets.py

+ 20 - 8
gui/wxpython/gui_core/widgets.py

@@ -1005,27 +1005,27 @@ class ManageSettingsWidget(wx.Panel):
 
         self._layout()
 
+        self.SetSizer(self.settingsSizer)
+        self.settingsSizer.Fit(self)
+
     def _layout(self):
 
-        settingsSizer = wx.StaticBoxSizer(self.settingsBox, wx.HORIZONTAL)
-        settingsSizer.Add(item = wx.StaticText(parent = self,
+        self.settingsSizer = wx.StaticBoxSizer(self.settingsBox, wx.HORIZONTAL)
+        self.settingsSizer.Add(item = wx.StaticText(parent = self,
                                                id = wx.ID_ANY,
                                                label = _("Load settings:")),
                           flag = wx.ALIGN_CENTER_VERTICAL | wx.RIGHT,
                           border  = 5)
-        settingsSizer.Add(item = self.settingsChoice,
+        self.settingsSizer.Add(item = self.settingsChoice,
                           proportion = 1,
                           flag = wx.EXPAND)
-        settingsSizer.Add(item = self.btnSettingsSave,
+        self.settingsSizer.Add(item = self.btnSettingsSave,
                           flag = wx.LEFT | wx.RIGHT,
                           border = 5)
-        settingsSizer.Add(item = self.btnSettingsDel,
+        self.settingsSizer.Add(item = self.btnSettingsDel,
                           flag = wx.RIGHT,
                           border = 5)
 
-        self.SetSizer(settingsSizer)
-        settingsSizer.Fit(self)
-
     def OnSettingsChanged(self, event):
         """!Load named settings"""
         name = event.GetString()
@@ -1037,6 +1037,10 @@ class ManageSettingsWidget(wx.Panel):
         data = self._settings[name]
         self.settingsChanged.emit(data=data)
 
+    def GetSettings(self):
+        """!Load named settings"""
+        return self._settings.copy()
+       
     def OnSettingsSave(self, event):
         """!Save settings"""
         dlg = wx.TextEntryDialog(parent = self,
@@ -1090,6 +1094,14 @@ class ManageSettingsWidget(wx.Panel):
         self._settings = settings
         self._saveSettings()
 
+    def AddSettings(self, settings):
+        """!Add settings
+
+        @param settings - dict with all settigs {nameofsetting : settingdata, ....}
+        """
+        self._settings = dict(self._settings.items() + settings.items())
+        self._saveSettings()
+
     def OnSettingsDelete(self, event):
         """!Save settings
         """

+ 4 - 11
gui/wxpython/web_services/dialogs.py

@@ -35,9 +35,8 @@ from core.utils       import GetSettingsPath, CmdToTuple, CmdTupleToList, _
 from core.gconsole    import CmdThread, GStderr, EVT_CMD_DONE, EVT_CMD_OUTPUT
 
 from gui_core.gselect import Select
-from gui_core.widgets import ManageSettingsWidget
 
-from web_services.widgets import WSPanel
+from web_services.widgets import WSPanel, WSManageSettingsWidget
 
 class WSDialogBase(wx.Dialog):
     """!Base class for web service dialogs. 
@@ -82,8 +81,9 @@ class WSDialogBase(wx.Dialog):
 
         settingsFile = os.path.join(GetSettingsPath(), 'wxWS')
 
-        self.settsManager = ManageSettingsWidget(parent=self,
-                                                 settingsFile=settingsFile)
+        self.settsManager = WSManageSettingsWidget(parent=self,
+                                                 settingsFile=settingsFile,
+                                                 default_servers=self.default_servers)
 
         self.settingsBox = wx.StaticBox(parent = self, 
                                         id = wx.ID_ANY,
@@ -143,7 +143,6 @@ class WSDialogBase(wx.Dialog):
         self.layerName.Bind(wx.EVT_TEXT, self.OnOutputLayerName)
 
         self.settsManager.settingsChanged.connect(self.OnSettingsChanged)
-        self.settsManager.settingsLoaded.connect(self.OnSettingsLoaded)
         self.settsManager.settingsSaving.connect(self.OnSettingsSaving)
 
     def OnLayerSelected(self, title):
@@ -303,12 +302,6 @@ class WSDialogBase(wx.Dialog):
         else:
             self.adv_conn.Collapse(True)
 
-    def OnSettingsLoaded(self, settings):
-        """!If settings are empty set default servers
-        """
-        if not settings:
-            self.settsManager.SetSettings(self.default_servers)
-
     def OnClose(self, event):
         """!Close the dialog
         """

+ 29 - 0
gui/wxpython/web_services/widgets.py

@@ -42,6 +42,7 @@ from core.utils import _
 from web_services.cap_interface import WMSCapabilities, WMTSCapabilities, OnEarthCapabilities
 
 from gui_core.widgets  import GNotebook
+from gui_core.widgets import ManageSettingsWidget
 
 import grass.script as grass
 
@@ -1066,3 +1067,31 @@ class LayersList(TreeListCtrl, listmix.ListCtrlAutoWidthMixin):
             l_st_list.remove(l_st)
 
         return l_st_list
+
+class WSManageSettingsWidget(ManageSettingsWidget):
+    def __init__(self, parent, settingsFile, default_servers):
+
+        ManageSettingsWidget.__init__(self, parent, settingsFile)
+        self.default_servers = default_servers
+
+    def _layout(self):
+
+        self.btnAddDefaultServers = wx.Button(parent=self, id=wx.ID_ANY,
+                                             label=_("Add default servers"))
+        self.btnAddDefaultServers.Bind(wx.EVT_BUTTON, self.OnAddDefaultServers)
+        
+        ManageSettingsWidget._layout(self)
+        self.settingsSizer.Add(item=self.btnAddDefaultServers,
+                               flag=wx.RIGHT,
+                               border=5)
+
+    def OnAddDefaultServers(self, event):
+
+        setts = self.GetSettings()
+        self.servers_to_add = {}
+        for k, v in self.default_servers.iteritems():
+            if k not in setts.iterkeys():
+                self.servers_to_add[k] = v
+
+        if self.servers_to_add:
+            self.AddSettings(self.servers_to_add)