Review Request: Return 80% functionality to PMC, further evolving of state architecture

Alessandro Diaferia alediaferia at gmail.com
Mon Apr 19 09:59:36 CEST 2010


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviewboard.kde.org/r/3552/#review5105
-----------------------------------------------------------


I just had a quick look at the patch, i'm rather busy atm :/

Anyway, i still have concerns about the subcomponents placement stuff.
Rather than having WidgetAndZone approach imho we should enhance MediaController API in order to have methods like the followings:

    void insertSubComponent(MediaCenter::SubComponentType, QGraphicsWidget *);

    /**
     * This method is used to have access to a MediaController SubComponent.
     * @see MediaCenter::SubComponentType to know which classes are associated
     * with each SubComponentType.
     */
    QGraphicsWidget* subComponent(MediaCenter::SubComponentType) const;

    void setSubComponentLocation(MediaCenter::SubComponentType, Plasma::Location);
    Plasma::Location subComponentLocation() const;

This way we can insert subcomponents into it specifying their preferred position. Then, we might associate a Plasma widget to each SubComponentType in order to allow type casting when returning the component through the subComponent() method.
I don't know if we should somehow force the specific class to the specific SubComponentType.
Anyway i think subcomponents should be all specified inside the mediacenter.h header file or at least mediacenterstate.h but not specifically for each state.

I'll keep reviewing the rest of the patch.

- Alessandro


On 2010-04-15 17:55:32, Christophe Olinger wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://reviewboard.kde.org/r/3552/
> -----------------------------------------------------------
> 
> (Updated 2010-04-15 17:55:32)
> 
> 
> Review request for Plasma and Alessandro Diaferia.
> 
> 
> Summary
> -------
> 
> The state calsses now have less functions. Only one for connections and one for configuration. The first one is only called once at PMC initialization, the second one is called at each state switch. Some connections can conflict between states. Those are connected at entry() and disconnected at exit(). Thanks to Alessandr's work we can now also configure the layout from within the state class (I only had to correct some namespace stuff in the medialayout class, I hope that was correct).
> This patch also gets basic functionality back. The modes are not really useful yet. Video mode is the most complete and can be used to view everything at th moment.
> Next step: Clean this up a bit
> Think about subclassing plasma widgets to get the widget type into the widget. This is necessary to be able to tell the controller to layout into zones.
> Start work on information bar.
> 
> 
> Diffs
> -----
> 
>   trunk/playground/base/plasma/MediaCenterComponents/applets/mediacontroller/controller.h 1113370 
>   trunk/playground/base/plasma/MediaCenterComponents/applets/mediacontroller/controller.cpp 1113370 
>   trunk/playground/base/plasma/MediaCenterComponents/applets/mediaplayer/mediaplayer.h 1113370 
>   trunk/playground/base/plasma/MediaCenterComponents/applets/mediaplayer/mediaplayer.cpp 1113370 
>   trunk/playground/base/plasma/MediaCenterComponents/containments/mediacontainment/mediacontainment.h 1113370 
>   trunk/playground/base/plasma/MediaCenterComponents/containments/mediacontainment/mediacontainment.cpp 1113370 
>   trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/mediacenter.h 1113370 
>   trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/mediacenterstate.h 1113370 
>   trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/mediacenterstate.cpp 1113370 
>   trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/medialayout.h 1113370 
>   trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/medialayout.cpp 1113370 
>   trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/musicstate.h 1113370 
>   trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/musicstate.cpp 1113370 
>   trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/picturestate.h 1113370 
>   trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/picturestate.cpp 1113370 
>   trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/playbackcontrol.h 1113370 
>   trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/playbackcontrol.cpp 1113370 
>   trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/player.h 1113370 
>   trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/videostate.h 1113370 
>   trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/videostate.cpp 1113370 
> 
> Diff: http://reviewboard.kde.org/r/3552/diff
> 
> 
> Testing
> -------
> 
> Lots and lots. Seems to be quite slow, but I think that is a problem in the player. It always iterates over all the queue even if it should only show a picture.
> 
> 
> Thanks,
> 
> Christophe
> 
>



More information about the Plasma-devel mailing list