When library is reloaded, reload the playlist's tags too

Bug #402810 reported by Steve Dodier-Lazaro
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Exaile
Fix Released
Medium
Unassigned

Bug Description

Exaile 0.3.0a3, rev2152

When the library panel is refreshed, tag changes are reflected only inside the panel, and not in the current playlists. Exaile should tell the playlists to update their tracks' tags (without breaking the sorting, of course :p).

Changed in exaile:
status: New → Confirmed
Revision history for this message
reacocard (reacocard) wrote :

proper way to do this is probably to have tracks send an event when they change their tags, and then just have the gui playlist listen to that and update as needed.

Changed in exaile:
importance: Undecided → Medium
milestone: none → 0.3.1
Revision history for this message
Steve Dodier-Lazaro (sidi) wrote :

Such an event has likely been implemented with the track properties. Also, editing a track properties should immediately reflect changes to the collection.

Changed in exaile:
assignee: nobody → Exaile Bug Day Events (exaile-bugday)
Revision history for this message
Steve Dodier-Lazaro (sidi) wrote :

This is actually too hard for me to implement the whole thing in 0.3.0. I just don't know the inotify and library scanning code good enough. I'm attaching a patch that allows the library panel and library tabs to watch for tag changes in tracks. Ideally the scanning function should log an event named 'track_tags_changed' and attach a list of tracks for which the tags changed.

Another way around would be to give an empty list of tracks and rewrite the handlers to force them to fully refresh in such cases. Note that it's what the collection panel's handler does anyway. The load_tree function could be improved to actually refresh tree entries instead of wiping the tree, in future releases.

Changed in exaile:
status: Confirmed → In Progress
Revision history for this message
reacocard (reacocard) wrote :

> Ideally the scanning function should log an event named 'track_tags_changed' and attach a list of tracks for which the tags changed.

I fail to see how this is much better than just letting the signals from the individual tracks handle everything. It might be slightly more efficient that way, but I doubt its enough so to justify the increased code complexity that would require.

> load_tree function could be improved to actually refresh tree entries instead of wiping the tree, in future releases.

We already load the tree incrementally anyway, so that shouldn't be too difficult to do. Just have to determine what the lowest subtree that needs refreshing is, empty it and load it again. If we can get that working properly we could even drop the refresh button from the collection panel, perhaps.

Changed in exaile:
status: In Progress → Confirmed
Revision history for this message
reacocard (reacocard) wrote :

this is fully implemented in trunk now, correct?

Changed in exaile:
status: Confirmed → Incomplete
Revision history for this message
reacocard (reacocard) wrote :

seems to work in trunk for me.

Changed in exaile:
assignee: Exaile Bug Day Events (exaile-bugday) → nobody
status: Incomplete → Fix Committed
reacocard (reacocard)
Changed in exaile:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.