X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/29a41103aad2860742a6d71942c9b9e14fe4a79d..0d045709bcd64c28a155a2a9fb29d95f56a0ff7b:/wxPython/wx/tools/XRCed/tree.py diff --git a/wxPython/wx/tools/XRCed/tree.py b/wxPython/wx/tools/XRCed/tree.py index 5db6f8c7e9..c08b451fd4 100644 --- a/wxPython/wx/tools/XRCed/tree.py +++ b/wxPython/wx/tools/XRCed/tree.py @@ -563,6 +563,8 @@ class XML_Tree(wx.TreeCtrl): # Different color for references if treeObj.ref: self.SetItemTextColour(item, 'DarkGreen') + elif treeObj.hasStyle and treeObj.params.get('hidden', False): + self.SetItemTextColour(item, 'Grey') # Try to find children objects if treeObj.hasChildren: nodes = treeObj.element.childNodes[:] @@ -692,7 +694,8 @@ class XML_Tree(wx.TreeCtrl): #oldItem = evt.GetOldItem() status = '' oldItem = self.selection - if oldItem: + # use GetItemParent as a way to determine if the itemId is still valid + if oldItem and self.GetItemParent(oldItem): xxx = self.GetPyData(oldItem) # If some data was modified, apply changes if g.panel.IsModified(): @@ -722,7 +725,8 @@ class XML_Tree(wx.TreeCtrl): if item == g.testWin.item: return False while item != self.root: item = self.GetItemParent(item) - if item == g.testWin.item: return True + if item == g.testWin.item: + return True return False # Highlight selected item @@ -738,7 +742,9 @@ class XML_Tree(wx.TreeCtrl): return # Get window/sizer object obj = self.FindNodeObject(item) - if not obj: + xxx = self.GetPyData(item).treeObject() + # Remove existing HL if item not found or is hidden + if not obj or xxx.hasStyle and xxx.params.get('hidden', False): if g.testWin.highLight: g.testWin.highLight.Remove() return pos = self.FindNodePos(item, obj) @@ -768,6 +774,7 @@ class XML_Tree(wx.TreeCtrl): return # Show item in bold if g.testWin: # Reset old + self.Unselect() self.SetItemBold(g.testWin.item, False) try: wx.BeginBusyCursor() @@ -864,7 +871,6 @@ class XML_Tree(wx.TreeCtrl): inf = sys.exc_info() wx.LogError(traceback.format_exception(inf[0], inf[1], None)[-1]) wx.LogError('Error writing temporary file') - if debug: raise memFile.close() # write to wxMemoryFS xmlFlags = xrc.XRC_NO_SUBCLASSING # Use translations if encoding is not specified @@ -1116,7 +1122,7 @@ class XML_Tree(wx.TreeCtrl): (ID_NEW.PANEL, 'Panel', 'Create panel'), (ID_NEW.DIALOG, 'Dialog', 'Create dialog'), (ID_NEW.FRAME, 'Frame', 'Create frame')], shift=True) - elif xxx.isSizer: + elif xxx.isSizer and self.ItemHasChildren(item): SetMenu(m, pullDownMenu.sizers, shift=True) else: SetMenu(m, pullDownMenu.controls, shift=True) @@ -1143,6 +1149,12 @@ class XML_Tree(wx.TreeCtrl): self.PopupMenu(menu, evt.GetPosition()) menu.Destroy() + # Redefine to force the update of font dimentions on wxGTK + if wx.Platform == '__WXGTK__': + def SetItemBold(self, item, state=True): + wx.TreeCtrl.SetItemBold(self, item, state) + self.SetIndent(self.GetIndent()) + # Apply changes def Apply(self, xxx, item): g.panel.Apply()