juk: new playlists show all columns (bug 243449)

Γιώργος Κυλάφας (Giorgos Kylafas) gekylafas at gmail.com
Mon May 23 12:57:11 BST 2011

Hi all,

I noticed the following bug in JuK: whenever a new playlist is created
(e.g. "File->New->Empty Playlist", a DynamicPlaylist is created etc.),
all the available columns as shown instead of only those that the user
has selected. However, if I switch to an old playlist and back to the
new one, then both will show the selected visible columns correctly.

I believe this is what https://bugs.kde.org/show_bug.cgi?id=243449
describes as well.

After examination, I think that the problem is that when a new
Playlist is created, slotInitialize() (which adds all the columns to
the playlist) is called _after_ Playlist::SharedSettings::apply()
(which sets the visible and hidden columns) [1]. If a user switches
playlists, apply() is called again and the correct columns are shown.

I have found two ways to fix this, however I am not sure for either of them:

a. Explicitly call slotInitialize() in Playlist::setup(), instead of
using QTimer::singleShot(...).
This has the disadvantage that is goes against the documentation of
slotInitialize() which says:
"Handle the necessary tasks needed to create and setup the playlist
that don't need to happen in the ctor [...]"
Maybe we do not mind making slotInitialize() part of the ctor
processing, but I am not in a position to judge this.

b. Call Playlist::SharedSettings::apply() at the end of slotInitialize().
This has the disadvantages that apply() is called twice and that for a
brief moment all columns are visible, which looks bad UI-wise.

What do you think?

[1] The order of calls, as I observe it in my case, is:

Γιώργος Κυλάφας (Giorgos Kylafas)
kde-multimedia mailing list
kde-multimedia at kde.org

More information about the kde-multimedia mailing list