Hi everyone, Just a quick follow up to my previous emails. In case anyone is interested, I've finally finished my RatingFilters plugin. You can download a copy from the Rhythmbox third party plugins page<https://live.gnome.org/RhythmboxPlugins/ThirdParty>. I think it's relatively bug-free, but feel free to drop me an email if you spot any problems.
Happy filtering! All the best, Donagh On Fri, Feb 1, 2013 at 12:02 AM, Donagh Horgan <donagh.hor...@gmail.com>wrote: > Hi Jonathan, > > Thanks for your email, and apologies for my late reply - I've been really > busy with college work lately. I wanted to know how to use the > RB.BrowserSource for an idea I had for a rating filter plugin for Rhythmbox > (I'll get to this in a bit). Long story short, I found some time during the > week to sit down and have a think about it week and realised I'd taken a > rather hamfisted approach to the problem I was trying to tackle. I've since > tried a new approach and everything seems to be working now - no need to > tap into the RB.BrowserSource after all... I'm going to bug test it for a > few more days and, after, I'll post download links on the Rhythmbox third > party plugins page. > > I'll try to give a brief explanation of the whys and hows of a rating > filter: I have lots of automatic playlists (e.g. 1960s Music, Recently > Added, Recently Played), and I often want to listen to either my favourite > tracks or some random unrated tracks from those playlists. This could be, > for instance, all the unrated tracks from my 1990s Music playlist (when I'm > in the mood to listen to something new), or favourites I've recently played > (when I'm not). Sure, I could go create a load of automatic playlists, but > it's laborious, and if I wanted to listen to my favourite Bowie tracks, or > my favourite Bjork tracks, etc, I'd have to create a new playlist for each > artist, and clutter up my playlists tree. To appease my inner pedant, I > decided I'd try to code up a rating filter. Rather than add a new column to > the library browser (not that I have any idea how to do this), I thought it > would be cleaner to add three self-explanatory buttons to the bar above the > browser: Favourites, Unrated and All. I reasoned that this would meet most > people's needs, without cluttering up the display too much: > > [image: Inline image 1] > > Hopefully, my layout and spelling choices won't offend too many people. If > you enable the plugin, the new buttons appear in the main music library and > on manual and automatic playlists. You can also set the threshold for > determining what rating constitutes a favourite using the plugin > preferences manager. I count anything greater than or equal to four stars, > but it's probably a controversial opinion. > > As usual, I'm standing on the shoulders of giants and owe an enormous code > debt to all the other plugin developers and John Jetmore for his Python > bindings > documentation<http://www.jetmore.org/john/misc/rb/rb297-python-bindings/index.html> > . > > All the best, from an overly self-satisfied Python amateur, > Donagh > > > On Sat, Jan 12, 2013 at 8:26 AM, Jonathan Matthew <jonat...@d14n.org>wrote: > >> On Sat, Jan 5, 2013 at 8:47 AM, Donagh Horgan <donagh.hor...@gmail.com>wrote: >> >>> Hi all, >>> >>> I've been reading the unofficial Rhythmbox 2.97 Python documentation >>> here<http://www.jetmore.org/john/misc/rb/rb297-python-bindings/RB.LibraryBrowser.html>, >>> but I'm a bit stumped on how to access the >>> output-model<http://www.jetmore.org/john/misc/rb/rb297-python-bindings/RB.LibraryBrowser-output-model.html>property >>> of the >>> RB.LibraryBrowser<http://www.jetmore.org/john/misc/rb/rb297-python-bindings/RB.LibraryBrowser.html>from >>> the shell (assuming that it's actually possible in the first place)? >>> You might need to do this, for example, if you wanted to manually update an >>> RB.EntryView for a source based on some selections made in the >>> RB.LibraryBrowser of that source. >>> >> >> Sources based on RB.BrowserSource use the output model of the browser as >> the source query model, so you can get at it using >> source.props.query_model. The browser is an implementation detail of the >> source, and you generally shouldn't need to do anything to it, though. >> What do you intend to do to the entry view, and why do you need the model >> to do that? >> >> >>> The documentation mentions a notify signal for the output-model >>> property, but I've no idea how to connect to this either (or whether the >>> callback comes with the query model I'm after). >>> >> >> Whenever a property on a GObject changes, it emits a signal named >> "notify", with the property name as the signal detail. So, for the >> output-model property on a browser object, you'd do >> browser.connect("notify::output-model", callback). >> >> >
<<Screenshot from 2013-01-31 23:24:32.png>>
_______________________________________________ rhythmbox-devel mailing list rhythmbox-devel@gnome.org https://mail.gnome.org/mailman/listinfo/rhythmbox-devel