docs: def from_dict(cls, label=None, label2=None, icon=None, thumbnail=None,
                    path=None, selected=None, info=None, properties=None,
                    context_menu=None, replace_context_menu=False,
                    is_playable=None, info_type='video', stream_info=None):
          '''A ListItem constructor for setting a lot of properties not
          available in the regular __init__ method. Useful to collect all
          the properties in a dict and then use the **dct to call this
          method.
          '''
          listitem = cls(label, label2, icon, thumbnail, path)
  
          if selected is not None:
              listitem.select(selected)
  
          if info:
              listitem.set_info(info_type, info)
  
          if is_playable:
              listitem.set_is_playable(True)
  
          if properties:
              # Need to support existing tuples, but prefer to have a dict for
              # properties.
              if hasattr(properties, 'items'):
                  properties = properties.items()
              for key, val in properties:
                  listitem.set_property(key, val)
  
          if stream_info:
              for stream_type, stream_values in stream_info.items():
                  listitem.add_stream_info(stream_type, stream_values)
  
          if context_menu:
              listitem.add_context_menu_items(context_menu, replace_context_menu)
  
          return listitem