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
|
||||
-------
|
||||
|
||||
Testing limited to top-level objects because of references
|
||||
problem until a nice solution is found.
|
||||
Fixed testing for any element inside object tree.
|
||||
|
||||
0.1.6-4
|
||||
-------
|
||||
|
@ -489,6 +489,8 @@ class XML_Tree(wxTreeCtrl):
|
||||
self.root = self.AddRoot('XML tree', self.rootImage,
|
||||
data=wxTreeItemData(self.rootObj))
|
||||
self.SetItemHasChildren(self.root)
|
||||
self.testElem = self.dom.createElement('dummy')
|
||||
self.mainNode.appendChild(self.testElem)
|
||||
self.Expand(self.root)
|
||||
|
||||
# Clear old data and set new
|
||||
@ -513,6 +515,12 @@ class XML_Tree(wxTreeCtrl):
|
||||
else:
|
||||
self.mainNode.removeChild(node)
|
||||
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)
|
||||
|
||||
# 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():
|
||||
self.Apply(xxx, item) # apply changes
|
||||
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',
|
||||
'wxMenuBar', 'wxToolBar', 'wxWizard',
|
||||
'wxWizardPageSimple']:
|
||||
@ -796,32 +801,30 @@ class XML_Tree(wxTreeCtrl):
|
||||
# Save in memory FS
|
||||
memFile = MemoryFile('xxx.xrc')
|
||||
# Create memory XML file
|
||||
elem = xxx.element
|
||||
# Change window id to _XRCED_T_W. This gives some name for
|
||||
# unnamed windows, and for named gives the possibility to
|
||||
# write sawfish scripts.
|
||||
elem = xxx.element.cloneNode(True)
|
||||
if not xxx.name:
|
||||
name = 'noname'
|
||||
else:
|
||||
name = xxx.name
|
||||
elem.setAttribute('name', STD_NAME)
|
||||
oldTestNode = self.testElem
|
||||
self.testElem = elem
|
||||
self.mainNode.replaceChild(elem, oldTestNode)
|
||||
oldTestNode.unlink()
|
||||
# Replace wizard page class temporarily
|
||||
if xxx.__class__ in [xxxWizardPage, xxxWizardPageSimple]:
|
||||
oldCl = elem.getAttribute('class')
|
||||
elem.setAttribute('class', 'wxPanel')
|
||||
parent = elem.parentNode
|
||||
next = elem.nextSibling
|
||||
encd = self.rootObj.params['encoding'].value()
|
||||
if not encd: encd = None
|
||||
self.dom.writexml(memFile, encoding=encd)
|
||||
# Put back in place
|
||||
# Remove temporary name or restore changed
|
||||
if not xxx.name:
|
||||
elem.removeAttribute('name')
|
||||
else:
|
||||
elem.setAttribute('name', xxx.name)
|
||||
if xxx.__class__ in [xxxWizardPage, xxxWizardPageSimple]:
|
||||
elem.setAttribute('class', oldCl)
|
||||
try:
|
||||
self.dom.writexml(memFile, encoding=encd)
|
||||
except:
|
||||
inf = sys.exc_info()
|
||||
wxLogError(traceback.format_exception(inf[0], inf[1], None)[-1])
|
||||
wxLogError('Error writing temporary file')
|
||||
if debug: raise
|
||||
memFile.close() # write to wxMemoryFS
|
||||
xmlFlags = wxXRC_NO_SUBCLASSING
|
||||
# Use translations if encoding is not specified
|
||||
|
@ -1071,6 +1071,10 @@ Homepage: http://xrced.sourceforge.net\
|
||||
#self.domCopy = tree.dom.cloneNode(True)
|
||||
self.domCopy = MyDocument()
|
||||
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.domCopy.writexml(f, encoding = g.currentEncoding)
|
||||
f.close()
|
||||
|
Loading…
Reference in New Issue
Block a user