https://bugs.kde.org/show_bug.cgi?id=371192

Stefano Pettini <stefano.pett...@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |stefano.pett...@gmail.com

--- Comment #4 from Stefano Pettini <stefano.pett...@gmail.com> ---
I've investigated this bug and it's quite strange. I'm not a Qt expert nor I
know how Amarok is architectured, so I have to give up. But before doing it let
me share some points.

What I've found is the following: the model of the podcast collection, the one
that derives from PlaylistBrowserModel, somehow does not expose the list of
providerActions properly. When data() is called for
PrettyTreeRoles::DecoratorRole, it either returns an empty QVariant, or it
returns a QVariantList of multiple QVariant<QList<QAction*>>. This is strange
because in the rest of the code it's always assumed that DecoratorRole is a
QVariant<QList<Action*>>, and not a list of them, so it sounds wrong.

Then I tried to fix it by returning that QVariant when handling the
DecoratorRole. This case was not present. In case of providers.size() == 1, I
returned a QVariant<QList<QAction*>> with providersActions inside. It almost
worked. When I tried to investigate what it didn't work in
PlaylistBrowserView::actionsFor, basically the QVariant received, instead of
the QVariant<Qlist<QAction*>>, contained a QVariantList with two identical
elements: each of them was that expected QVariant<QList<QAction*>>.

I could not find the place where that QVariantList is created.

Because in many places .value<QActionList>() is called on the returned QVariant
and because it appears to be a QVariantList instead of just the expected
element, .value() returns an empty list, so no pop-up menu and no hoover
buttons to export the playlists but also to refresh podcasts and other
features.

The strangest thing is that, before trying to investigate, I tested with
standard 2.8 and everything worked, I saw the icons, I saw the pop-up menu.
Then I switched to the git version, and I could confirm the bug. Running again
the default 2.8 from Kubuntu could not solve it, and now it's broken forever.

This may also mean it depends on some config file, more than a bug in the code.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to