Ver código fonte

wxGUI/dbmgr: field calculator emits signal to update dbmgr

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@59124 15284696-431f-4ddb-bdfa-cd5b030d7da7
Martin Landa 11 anos atrás
pai
commit
5bd039a5e7
2 arquivos alterados com 16 adições e 4 exclusões
  1. 7 2
      gui/wxpython/dbmgr/manager.py
  2. 9 2
      gui/wxpython/dbmgr/sqlbuilder.py

+ 7 - 2
gui/wxpython/dbmgr/manager.py

@@ -124,7 +124,7 @@ class AttributeManager(wx.Frame, DbMgrBase):
 
         # events
         self.btnClose.Bind(wx.EVT_BUTTON,   self.OnCloseWindow)
-        self.btnReload.Bind(wx.EVT_BUTTON, self.pages['browse'].OnDataReload)
+        self.btnReload.Bind(wx.EVT_BUTTON, self.ReloadData)
         self.notebook.Bind(FN.EVT_FLATNOTEBOOK_PAGE_CHANGED, self.OnPageChanged)
         self.Bind(wx.EVT_CLOSE, self.OnCloseWindow)
 
@@ -165,7 +165,12 @@ class AttributeManager(wx.Frame, DbMgrBase):
             self.Destroy()
         
         event.Skip()
-          
+
+    def ReloadData(self):
+        """Reload data"""
+        if self.pages['browse']:
+            self.pages['browse'].OnDataReload() # TODO replace by signal
+        
     def OnPageChanged(self, event):
         """!On page in ATM is changed"""
         try:

+ 9 - 2
gui/wxpython/dbmgr/sqlbuilder.py

@@ -36,6 +36,8 @@ from core import globalvar
 from core.utils import _
 import wx
 
+from grass.pydispatch.signal import Signal
+
 from core.gcmd   import RunCommand, GError, GMessage
 from dbmgr.vinfo import CreateDbInfoDesc, VectorDBInfo
 
@@ -549,6 +551,11 @@ class SQLBuilderUpdate(SQLBuilder):
         SQLBuilder.__init__(self, parent, title, vectmap, id = wx.ID_ANY,
                             modeChoices = modeChoices, layer = layer)
 
+        # signals
+        self.sqlApplied = Signal("SQLBuilder.sqlApplied")
+        if parent: # TODO: replace by giface
+            self.sqlApplied.connect(parent.Update)
+
     def _doLayout(self, modeChoices):
         """!Do dialog layout"""
 
@@ -628,10 +635,10 @@ class SQLBuilderUpdate(SQLBuilder):
 
         if ret != 0 and msg:
             self.statusbar.SetStatusText(_("SQL statement was not applied"), 0)
-            #GError(parent = self,
-            #       message = _("SQL statement can not be applied.\n\n%s") % msg)
         else:
             self.statusbar.SetStatusText(_("SQL statement applied"), 0)
+        
+        self.sqlApplied.emit()
 
     def OnClear(self, event):
         """!Clear button pressed"""