controls/LibraryPanel.py
branchpython3
changeset 3789 8def429216ca
parent 3765 88fe6fc9fd38
equal deleted inserted replaced
3788:d5014da90054 3789:8def429216ca
   164             # will be refreshed
   164             # will be refreshed
   165             items_to_delete = []
   165             items_to_delete = []
   166 
   166 
   167             # Get current selected item for selected it when values refreshed
   167             # Get current selected item for selected it when values refreshed
   168             selected_item = self.Tree.GetSelection()
   168             selected_item = self.Tree.GetSelection()
   169             selected_pydata = (self.Tree.GetPyData(selected_item)
   169             selected_pydata = (self.Tree.GetItemData(selected_item)
   170                                if (selected_item.IsOk() and
   170                                if (selected_item.IsOk() and
   171                                    selected_item != self.Tree.GetRootItem())
   171                                    selected_item != self.Tree.GetRootItem())
   172                                else None)
   172                                else None)
   173             # Don't save selected item if it is a category
   173             # Don't save selected item if it is a category
   174             selected_infos = ((self.Tree.GetItemText(selected_item),
   174             selected_infos = ((self.Tree.GetItemText(selected_item),
   289         @return: {"type": block_type_name, "inputs": [input_type,...]} or None
   289         @return: {"type": block_type_name, "inputs": [input_type,...]} or None
   290         if no block selected
   290         if no block selected
   291         """
   291         """
   292         # Get selected item associated data in tree
   292         # Get selected item associated data in tree
   293         selected_item = self.Tree.GetSelection()
   293         selected_item = self.Tree.GetSelection()
   294         selected_pydata = (self.Tree.GetPyData(selected_item)
   294         selected_pydata = (self.Tree.GetItemData(selected_item)
   295                            if (selected_item.IsOk() and
   295                            if (selected_item.IsOk() and
   296                                selected_item != self.Tree.GetRootItem())
   296                                selected_item != self.Tree.GetRootItem())
   297                            else None)
   297                            else None)
   298 
   298 
   299         # Return value is None if selected tree item is root or a category
   299         # Return value is None if selected tree item is root or a category
   327         # Return immediately if item isn't valid
   327         # Return immediately if item isn't valid
   328         if not item.IsOk():
   328         if not item.IsOk():
   329             return None
   329             return None
   330 
   330 
   331         # Get data associated to item to test
   331         # Get data associated to item to test
   332         item_pydata = self.Tree.GetPyData(item)
   332         item_pydata = self.Tree.GetItemData(item)
   333         if item_pydata is not None and item_pydata["type"] == BLOCK:
   333         if item_pydata is not None and item_pydata["type"] == BLOCK:
   334             # Only test item corresponding to block
   334             # Only test item corresponding to block
   335 
   335 
   336             # Test if block inputs type are the same than those given
   336             # Test if block inputs type are the same than those given
   337             type_inputs = item_pydata.get("inputs", None)
   337             type_inputs = item_pydata.get("inputs", None)
   391         # Navigate through tree items until one matching found or reach tree
   391         # Navigate through tree items until one matching found or reach tree
   392         # starting or ending
   392         # starting or ending
   393         while item.IsOk():
   393         while item.IsOk():
   394 
   394 
   395             # Get item data to get item type
   395             # Get item data to get item type
   396             item_pydata = self.Tree.GetPyData(item)
   396             item_pydata = self.Tree.GetItemData(item)
   397 
   397 
   398             # Item is a block category
   398             # Item is a block category
   399             if (item == root) or item_pydata["type"] == CATEGORY:
   399             if (item == root) or item_pydata["type"] == CATEGORY:
   400 
   400 
   401                 # Get category first or last child according to search mode
   401                 # Get category first or last child according to search mode
   456         """
   456         """
   457         Called when tree item is selected
   457         Called when tree item is selected
   458         @param event: wx.TreeEvent
   458         @param event: wx.TreeEvent
   459         """
   459         """
   460         # Update TextCtrl value with block selected usage
   460         # Update TextCtrl value with block selected usage
   461         item_pydata = self.Tree.GetPyData(event.GetItem())
   461         item_pydata = self.Tree.GetItemData(event.GetItem())
   462         self.Comment.SetValue(
   462         self.Comment.SetValue(
   463             item_pydata["comment"]
   463             item_pydata["comment"]
   464             if item_pydata is not None and item_pydata["type"] == BLOCK
   464             if item_pydata is not None and item_pydata["type"] == BLOCK
   465             else "")
   465             else "")
   466 
   466 
   474         """
   474         """
   475         Called when a drag is started in tree
   475         Called when a drag is started in tree
   476         @param event: wx.TreeEvent
   476         @param event: wx.TreeEvent
   477         """
   477         """
   478         selected_item = event.GetItem()
   478         selected_item = event.GetItem()
   479         item_pydata = self.Tree.GetPyData(selected_item)
   479         item_pydata = self.Tree.GetItemData(selected_item)
   480 
   480 
   481         # Item dragged is a block
   481         # Item dragged is a block
   482         if item_pydata is not None and item_pydata["type"] == BLOCK:
   482         if item_pydata is not None and item_pydata["type"] == BLOCK:
   483             # Start a drag'n drop
   483             # Start a drag'n drop
   484             data = wx.TextDataObject(str(
   484             data = wx.TextDataObject(str(