0.1.6-5
fixed testing for non-top-level objects git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35442 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
14653d3b83
commit
34b29ae796
@ -1,8 +1,7 @@
|
|||||||
0.1.6-5
|
0.1.6-5
|
||||||
-------
|
-------
|
||||||
|
|
||||||
Testing limited to top-level objects because of references
|
Fixed testing for any element inside object tree.
|
||||||
problem until a nice solution is found.
|
|
||||||
|
|
||||||
0.1.6-4
|
0.1.6-4
|
||||||
-------
|
-------
|
||||||
|
@ -489,6 +489,8 @@ class XML_Tree(wxTreeCtrl):
|
|||||||
self.root = self.AddRoot('XML tree', self.rootImage,
|
self.root = self.AddRoot('XML tree', self.rootImage,
|
||||||
data=wxTreeItemData(self.rootObj))
|
data=wxTreeItemData(self.rootObj))
|
||||||
self.SetItemHasChildren(self.root)
|
self.SetItemHasChildren(self.root)
|
||||||
|
self.testElem = self.dom.createElement('dummy')
|
||||||
|
self.mainNode.appendChild(self.testElem)
|
||||||
self.Expand(self.root)
|
self.Expand(self.root)
|
||||||
|
|
||||||
# Clear old data and set new
|
# Clear old data and set new
|
||||||
@ -513,6 +515,12 @@ class XML_Tree(wxTreeCtrl):
|
|||||||
else:
|
else:
|
||||||
self.mainNode.removeChild(node)
|
self.mainNode.removeChild(node)
|
||||||
node.unlink()
|
node.unlink()
|
||||||
|
if self.mainNode.firstChild:
|
||||||
|
self.testElem = self.dom.createElement('dummy')
|
||||||
|
self.mainNode.insertBefore(self.testElem, self.mainNode.firstChild)
|
||||||
|
else:
|
||||||
|
self.testElem = self.dom.createElement('dummy')
|
||||||
|
self.mainNode.appendChild(self.testElem)
|
||||||
self.Expand(self.root)
|
self.Expand(self.root)
|
||||||
|
|
||||||
# Add tree item for given parent item if node is DOM element node with
|
# Add tree item for given parent item if node is DOM element node with
|
||||||
@ -719,9 +727,6 @@ class XML_Tree(wxTreeCtrl):
|
|||||||
if g.panel.IsModified():
|
if g.panel.IsModified():
|
||||||
self.Apply(xxx, item) # apply changes
|
self.Apply(xxx, item) # apply changes
|
||||||
treeObj = xxx.treeObject()
|
treeObj = xxx.treeObject()
|
||||||
if self.GetItemParent(item) != self.root:
|
|
||||||
wxLogMessage('Only top-level objects can be tested')
|
|
||||||
return
|
|
||||||
if treeObj.className not in ['wxFrame', 'wxPanel', 'wxDialog',
|
if treeObj.className not in ['wxFrame', 'wxPanel', 'wxDialog',
|
||||||
'wxMenuBar', 'wxToolBar', 'wxWizard',
|
'wxMenuBar', 'wxToolBar', 'wxWizard',
|
||||||
'wxWizardPageSimple']:
|
'wxWizardPageSimple']:
|
||||||
@ -796,32 +801,30 @@ class XML_Tree(wxTreeCtrl):
|
|||||||
# Save in memory FS
|
# Save in memory FS
|
||||||
memFile = MemoryFile('xxx.xrc')
|
memFile = MemoryFile('xxx.xrc')
|
||||||
# Create memory XML file
|
# Create memory XML file
|
||||||
elem = xxx.element
|
elem = xxx.element.cloneNode(True)
|
||||||
# Change window id to _XRCED_T_W. This gives some name for
|
|
||||||
# unnamed windows, and for named gives the possibility to
|
|
||||||
# write sawfish scripts.
|
|
||||||
if not xxx.name:
|
if not xxx.name:
|
||||||
name = 'noname'
|
name = 'noname'
|
||||||
else:
|
else:
|
||||||
name = xxx.name
|
name = xxx.name
|
||||||
elem.setAttribute('name', STD_NAME)
|
elem.setAttribute('name', STD_NAME)
|
||||||
|
oldTestNode = self.testElem
|
||||||
|
self.testElem = elem
|
||||||
|
self.mainNode.replaceChild(elem, oldTestNode)
|
||||||
|
oldTestNode.unlink()
|
||||||
# Replace wizard page class temporarily
|
# Replace wizard page class temporarily
|
||||||
if xxx.__class__ in [xxxWizardPage, xxxWizardPageSimple]:
|
if xxx.__class__ in [xxxWizardPage, xxxWizardPageSimple]:
|
||||||
oldCl = elem.getAttribute('class')
|
oldCl = elem.getAttribute('class')
|
||||||
elem.setAttribute('class', 'wxPanel')
|
elem.setAttribute('class', 'wxPanel')
|
||||||
parent = elem.parentNode
|
parent = elem.parentNode
|
||||||
next = elem.nextSibling
|
|
||||||
encd = self.rootObj.params['encoding'].value()
|
encd = self.rootObj.params['encoding'].value()
|
||||||
if not encd: encd = None
|
if not encd: encd = None
|
||||||
self.dom.writexml(memFile, encoding=encd)
|
try:
|
||||||
# Put back in place
|
self.dom.writexml(memFile, encoding=encd)
|
||||||
# Remove temporary name or restore changed
|
except:
|
||||||
if not xxx.name:
|
inf = sys.exc_info()
|
||||||
elem.removeAttribute('name')
|
wxLogError(traceback.format_exception(inf[0], inf[1], None)[-1])
|
||||||
else:
|
wxLogError('Error writing temporary file')
|
||||||
elem.setAttribute('name', xxx.name)
|
if debug: raise
|
||||||
if xxx.__class__ in [xxxWizardPage, xxxWizardPageSimple]:
|
|
||||||
elem.setAttribute('class', oldCl)
|
|
||||||
memFile.close() # write to wxMemoryFS
|
memFile.close() # write to wxMemoryFS
|
||||||
xmlFlags = wxXRC_NO_SUBCLASSING
|
xmlFlags = wxXRC_NO_SUBCLASSING
|
||||||
# Use translations if encoding is not specified
|
# Use translations if encoding is not specified
|
||||||
|
@ -1071,6 +1071,10 @@ Homepage: http://xrced.sourceforge.net\
|
|||||||
#self.domCopy = tree.dom.cloneNode(True)
|
#self.domCopy = tree.dom.cloneNode(True)
|
||||||
self.domCopy = MyDocument()
|
self.domCopy = MyDocument()
|
||||||
mainNode = self.domCopy.appendChild(tree.mainNode.cloneNode(True))
|
mainNode = self.domCopy.appendChild(tree.mainNode.cloneNode(True))
|
||||||
|
# Remove first child (test element)
|
||||||
|
testElem = mainNode.firstChild
|
||||||
|
mainNode.removeChild(testElem)
|
||||||
|
testElem.unlink()
|
||||||
self.Indent(mainNode)
|
self.Indent(mainNode)
|
||||||
self.domCopy.writexml(f, encoding = g.currentEncoding)
|
self.domCopy.writexml(f, encoding = g.currentEncoding)
|
||||||
f.close()
|
f.close()
|
||||||
|
Loading…
Reference in New Issue
Block a user