G'day everyone, I've finally gotten around to porting more of the auto playlist stuff from my arch branch to cvs. I've made patches that a fair few of the rest of the metadata that RB supports to the playlist editor. If you just want to look and play with it, use patch [0] - the others are the same, but broken up into logical parts. This is similar, but to quite the same, to what I had in my arch branch. Patch [1] makes some changes to how the query editor deals with different properties, so that when you add a new supported property you don't have to change five different parts of the file. I've broken the actual property-related bits out into a different file, because rb-query-creator.c was getting very cluttered with the new stuff in there, but it's easy enough to change back if it's a bad idea. Basically what it does is add a new field to the table of properties, which identifies it's "type". Each "type" is defined by it's list of criteria and the entry widget(s) that it uses. If you want to add a new property of an existing type, it's a simple matter of adding it to the property_options array. Adding a new type (say boolean, for "autorate"), all that is needed is to create a new RBQueryCreatorPropertyType filled in correctly, and write the functions to deal with the entry widget(s). I think this adds flexibility, as I've thought of a couple of features that could be implemented more easily with it structured like this: 1) not recreate the entry widget(s) if you change the property to one of the same type (i.e. property_type is the same). This would mean that the entry widget wouldn't get cleared when changing from title to artist. 2) make the entry widgets based on criteria, not properties. This would let us add "between" criteria, which have different widgets to the other criteria for the same property. Patch [1] adds the integer properties (play count, track #, disc # and bitrate); [2] adds duration and [3] and relative time based ones (first added, last played). I didn't think the other properties (replay gain ones, file size, mime-type, mountpoint, last seen and modification) were worth adding, but they would be easy enough to do. [0]http://www.ids.org.au/~jrl/rhythmbox/rb-query-creator-combined.patch [1]http://www.ids.org.au/~jrl/rhythmbox/rb-query-creator-structure.patch [2]http://www.ids.org.au/~jrl/rhythmbox/rb-query-creator-integer.patch [3]http://www.ids.org.au/~jrl/rhythmbox/rb-query-creator-duration.patch [4]http://www.ids.org.au/~jrl/rhythmbox/rb-query-creator-relative-time.patch Cheers, James "Doc" Livingston -- "He's right, guys... Just checked it with MS Word spellchecker, 'virii' gives me a squiggly red underline, but 'viruses' doesn't. And let's face it, if anyone should know..." -- from Slashdot
Attachment:
signature.asc
Description: This is a digitally signed message part