Skip to content
  • Jonathan Matthew's avatar
    Reimplement the source list, introduce display pages · 6a781bc3
    Jonathan Matthew authored
    The main impact of this change is to introduce a new abstraction
    above RBSource that allows the inclusion of things that don't
    contain music and cannot be played from.  For want of a meaningful
    name, the new class is called RBDisplayPage.  A few of the basic
    methods from RBSource are now on the RBDisplayPage class, but
    otherwise this doesn't change any existing sources.  The DACP
    pairing source and the last.fm profile source are now direct
    subclasses of RBDisplayPage.
    
    RBDisplayPageModel and RBDisplayPageTree are reimplementations of
    RBSourcelistModel and RBSourceList respectively, with a few minor
    bugs fixed and with the addition that the page group expansion state
    is now stored in gconf.
    
    RBDisplayPageGroup replaces RBSourceGroup, and becomes an actual
    object that exists in the page tree.  It's also a subclass of
    RBDisplayPage, but page groups cannot be selected in the page tree
    and don't have any visible content.  The same predefined groups
    exist.  Rather than being specified as a property on an RBSource
    instance, the group for a page is determined by where it is inserted
    into the page tree.
    6a781bc3