Fixed GetSaveData and SetSaveData in wx.lib.multisash to not depend on
the default way that class objectss are converted to strings. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30416 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -24,7 +24,8 @@ OGL patch from Shane Holloway:
|
|||||||
that the child is in both self._children and self._divisions.
|
that the child is in both self._children and self._divisions.
|
||||||
Causes many problems when it's not. ;)
|
Causes many problems when it's not. ;)
|
||||||
|
|
||||||
|
Fixed GetSaveData and SetSaveData in wx.lib.multisash to not depend on
|
||||||
|
the default way that class objectss are converted to strings.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@@ -55,17 +55,18 @@ class MultiSash(wx.Window):
|
|||||||
|
|
||||||
def GetSaveData(self):
|
def GetSaveData(self):
|
||||||
saveData = {}
|
saveData = {}
|
||||||
saveData['_defChild'] = str(self._defChild)
|
saveData['_defChild_class'] = self._defChild.__name__
|
||||||
|
saveData['_defChild_mod'] = self._defChild.__module__
|
||||||
saveData['child'] = self.child.GetSaveData()
|
saveData['child'] = self.child.GetSaveData()
|
||||||
return saveData
|
return saveData
|
||||||
|
|
||||||
def SetSaveData(self,data):
|
def SetSaveData(self,data):
|
||||||
dChild = data['_defChild']
|
mod = data['_defChild_mod']
|
||||||
mod = dChild.split('.')[0]
|
dChild = mod + '.' + data['_defChild_class']
|
||||||
exec 'import %s' % mod
|
exec 'import %s' % mod
|
||||||
self._defChild = eval(dChild)
|
self._defChild = eval(dChild)
|
||||||
old = self.child
|
old = self.child
|
||||||
self.child = MultiSplit(self,self,wxPoint(0,0),self.GetSize())
|
self.child = MultiSplit(self,self,wx.Point(0,0),self.GetSize())
|
||||||
self.child.SetSaveData(data['child'])
|
self.child.SetSaveData(data['child'])
|
||||||
old.Destroy()
|
old.Destroy()
|
||||||
self.OnMultiSize(None)
|
self.OnMultiSize(None)
|
||||||
@@ -307,7 +308,8 @@ class MultiViewLeaf(wx.Window):
|
|||||||
|
|
||||||
def GetSaveData(self):
|
def GetSaveData(self):
|
||||||
saveData = {}
|
saveData = {}
|
||||||
saveData['detailClass'] = str(self.detail.child.__class__)
|
saveData['detailClass_class'] = self.detail.child.__class__.__name__
|
||||||
|
saveData['detailClass_mod'] = self.detail.child.__module__
|
||||||
if hasattr(self.detail.child,'GetSaveData'):
|
if hasattr(self.detail.child,'GetSaveData'):
|
||||||
attr = getattr(self.detail.child,'GetSaveData')
|
attr = getattr(self.detail.child,'GetSaveData')
|
||||||
if callable(attr):
|
if callable(attr):
|
||||||
@@ -323,8 +325,8 @@ class MultiViewLeaf(wx.Window):
|
|||||||
return saveData
|
return saveData
|
||||||
|
|
||||||
def SetSaveData(self,data):
|
def SetSaveData(self,data):
|
||||||
dChild = data['detailClass']
|
mod = data['detailClass_mod']
|
||||||
mod = dChild.split('.')[0]
|
dChild = mod + '.' + data['detailClass_class']
|
||||||
exec 'import %s' % mod
|
exec 'import %s' % mod
|
||||||
detClass = eval(dChild)
|
detClass = eval(dChild)
|
||||||
self.SetDimensions(data['x'],data['y'],data['w'],data['h'])
|
self.SetDimensions(data['x'],data['y'],data['w'],data['h'])
|
||||||
|
Reference in New Issue
Block a user