X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/03319b655c0a672e255a5b64e5caeed7c3e93fac..46ae103b9f08fc4e447d16a6a92b03cf55ee3189:/wxPython/wx/tools/XRCed/undo.py?ds=sidebyside diff --git a/wxPython/wx/tools/XRCed/undo.py b/wxPython/wx/tools/XRCed/undo.py index 1f01d8d403..ebc0832394 100644 --- a/wxPython/wx/tools/XRCed/undo.py +++ b/wxPython/wx/tools/XRCed/undo.py @@ -5,6 +5,7 @@ # RCS-ID: $Id$ from globals import * +from xxx import MakeXXXFromDOM #from panel import * # Undo/redo classes @@ -74,7 +75,7 @@ class UndoCutDelete: g.testWin.highLight.Remove() g.tree.needUpdate = True self.elem = g.tree.RemoveLeaf(item) - g.tree.Unselect() + g.tree.UnselectAll() g.panel.Clear() class UndoPasteCreate: @@ -119,6 +120,49 @@ class UndoPasteCreate: else: g.tree.pendingHighLight = None +class UndoReplace: + def __init__(self, item): + self.itemIndex = g.tree.ItemFullIndex(item) + self.xxx = g.tree.GetPyData(item) + def destroy(self): + if self.xxx: self.xxx.element.unlink() + def undo(self): + print 'Sorry, UndoReplace is not yet implemented.' + return + item = g.tree.ItemAtFullIndex(self.itemIndex) + xxx = g.tree.GetPyData(item) + # Replace with old element + parent = xxx.parent.element + if xxx is self.xxx: # sizeritem or notebookpage - replace child + parent.replaceChild(self.xxx.child.element, xxx.child.element) + else: + parent.replaceChild(self.xxx.element, xxx.element) + self.xxx.parent = xxx.parent + xxx = self.xxx + g.tree.SetPyData(item, xxx) + g.tree.SetItemText(item, xxx.treeName()) + g.tree.SetItemImage(item, xxx.treeImage()) + + # Update panel + g.panel.SetData(xxx) + # Update tools + g.tools.UpdateUI() + g.tree.EnsureVisible(item) + g.tree.SelectItem(item) + # Delete testWin? + if g.testWin: + # If deleting top-level item, delete testWin + if selected == g.testWin.item: + g.testWin.Destroy() + g.testWin = None + else: + # Remove highlight, update testWin + if g.testWin.highLight: + g.testWin.highLight.Remove() + g.tree.needUpdate = True + def redo(self): + return + class UndoEdit: def __init__(self): self.pages = map(ParamPage.GetState, g.panel.pages)