def populate_list_item(self, fav_menu, idx= -1):
     self.blockSignals(True)
     if fav_menu is None:
         item = QListWidgetItem(self.SEP)
         item.setIcon(self.blank_icon)
     else:
         text = fav_menu['display']
         item = QListWidgetItem(text)
         item.setFlags(Qt.ItemIsEditable | item.flags())
         paths = fav_menu['path']
         item.setToolTip(' -> '.join(paths))
         item.setData(Qt.UserRole, (fav_menu,))
         icon = fav_menu.get('icon', None)
         if icon is None:
             # This is a menu item that hasn't been found in this session
             # We will display it with a blank icon and disabled
             icon = self.blank_icon
             item.setForeground(QBrush(Qt.darkGray))
         item.setIcon(icon)
     if idx < 0:
         self.addItem(item)
     else:
         self.insertItem(idx + 1, item)
     self.blockSignals(False)