Patch from Victor V. Kryukov
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29500 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
5b33ae84fd
commit
d531898b10
@ -33,7 +33,8 @@ else:
|
|||||||
class XMLTree(wx.TreeCtrl):
|
class XMLTree(wx.TreeCtrl):
|
||||||
def __init__(self, parent, ID):
|
def __init__(self, parent, ID):
|
||||||
wx.TreeCtrl.__init__(self, parent, ID)
|
wx.TreeCtrl.__init__(self, parent, ID)
|
||||||
self.nodeStack = [self.AddRoot("Root")]
|
self._root = self.AddRoot("Root")
|
||||||
|
self.nodeStack = [self._root]
|
||||||
|
|
||||||
# Trees need an image list to do DnD...
|
# Trees need an image list to do DnD...
|
||||||
self.il = wx.ImageList(16,16)
|
self.il = wx.ImageList(16,16)
|
||||||
@ -51,6 +52,15 @@ else:
|
|||||||
self.draggingItem = item
|
self.draggingItem = item
|
||||||
event.Allow() # if DnD of this item is okay Allow it.
|
event.Allow() # if DnD of this item is okay Allow it.
|
||||||
|
|
||||||
|
def IsDescendant(self, firstItem, secondItem):
|
||||||
|
"Recursive check if firstItem is a descendant of a secondItem."
|
||||||
|
if firstItem == self._root:
|
||||||
|
return False
|
||||||
|
parentItem = self.GetItemParent(firstItem)
|
||||||
|
if parentItem == secondItem:
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
return self.IsDescendant(parentItem, secondItem)
|
||||||
|
|
||||||
def OnEndDrag(self, evt):
|
def OnEndDrag(self, evt):
|
||||||
itemSrc = self.draggingItem
|
itemSrc = self.draggingItem
|
||||||
@ -61,6 +71,10 @@ else:
|
|||||||
print "Can't drag to here..."
|
print "Can't drag to here..."
|
||||||
return
|
return
|
||||||
|
|
||||||
|
if self.IsDescendant(itemDst, itemSrc):
|
||||||
|
print "Can't move item to its descendant"
|
||||||
|
return
|
||||||
|
|
||||||
# For this simple example just take the text of the source item
|
# For this simple example just take the text of the source item
|
||||||
# and append it to the destination item. In real life you would
|
# and append it to the destination item. In real life you would
|
||||||
# possibly want to copy subtrees...
|
# possibly want to copy subtrees...
|
||||||
|
Loading…
Reference in New Issue
Block a user