[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-panel-devel
Subject:    Re: Review Request: Return 80% functionality to PMC,
From:       "Christophe Olinger" <olingerc () binarylooks ! com>
Date:       2010-04-20 8:04:24
Message-ID: 20100420080424.18509.80419 () localhost
[Download RAW message or body]


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


I included some comments of the code so that we better see which parts need \
discussion and to explain a bit my approach of things.


trunk/playground/base/plasma/MediaCenterComponents/applets/mediacontroller/controller.cpp
 <http://reviewboard.kde.org/r/3552/#comment4593>

    I probably do not need to remove the layouts, since I have deleted them before \
and created new ones.  I needed to use the delete approach because the layouts kept \
on getting big white spaces when I switched layouts. As soon as all states had been \
activated at least once, the widgets stopped jumping. The above approach fixed that \
but it feels slower I think.



trunk/playground/base/plasma/MediaCenterComponents/applets/mediacontroller/controller.cpp
 <http://reviewboard.kde.org/r/3552/#comment4594>

    I forgot to iterate over the other layouts. With the new delete layouts approach \
in the above function, I might not need this function anymore.



trunk/playground/base/plasma/MediaCenterComponents/applets/mediaplayer/mediaplayer.h
<http://reviewboard.kde.org/r/3552/#comment4595>

    I think I do not need this anymore



trunk/playground/base/plasma/MediaCenterComponents/applets/mediaplayer/mediaplayer.h
<http://reviewboard.kde.org/r/3552/#comment4596>

    The player needs to send both the current MediaCenter::Media and the media object \
to the states. The first is needed so the states can tell the player which media file \
the user is currently looking at. The second is needed so that the states can attach \
the seek and volume slider of the current state to the player.



trunk/playground/base/plasma/MediaCenterComponents/applets/mediaplayer/mediaplayer.h
<http://reviewboard.kde.org/r/3552/#comment4597>

    Not needed? Recheck this.



trunk/playground/base/plasma/MediaCenterComponents/applets/mediaplayer/mediaplayer.cpp
 <http://reviewboard.kde.org/r/3552/#comment4598>

    Check if I really need this together with a signal.



trunk/playground/base/plasma/MediaCenterComponents/applets/mediaplayer/mediaplayer.cpp
 <http://reviewboard.kde.org/r/3552/#comment4599>

    To be sure that these kind of checks work, we need to limit the states to a \
certain media type. This needs to be done on the browser level but also the playlist \
level.



trunk/playground/base/plasma/MediaCenterComponents/applets/mediaplayer/mediaplayer.cpp
 <http://reviewboard.kde.org/r/3552/#comment4600>

    On every state change I clear the m_medias list and repopulate it with the \
current state's playlist items. Since I do not have a playlist in the picture mode I \
populate the list with the activated item.  Later I will fill the list with all \
pictures in the current directory to be able to press next, previous and have a \
slideshow.



trunk/playground/base/plasma/MediaCenterComponents/applets/mediaplayer/mediaplayer.cpp
 <http://reviewboard.kde.org/r/3552/#comment4601>

    Slideshow not implemented yet. I first need to find a way to populate the \
m_medias list with the content of the current directory (see signal in browser \
applet)



trunk/playground/base/plasma/MediaCenterComponents/applets/mediaplayer/mediaplayer.cpp
 <http://reviewboard.kde.org/r/3552/#comment4602>

    Check if this is needed at all.



trunk/playground/base/plasma/MediaCenterComponents/containments/mediacontainment/mediacontainment.cpp
 <http://reviewboard.kde.org/r/3552/#comment4603>

    As soon as we have a home state I can put this there.



trunk/playground/base/plasma/MediaCenterComponents/containments/mediacontainment/mediacontainment.cpp
 <http://reviewboard.kde.org/r/3552/#comment4605>

    Since I now delete the layouts on each state change, I also need to readd the \
Main Subcomponents.



trunk/playground/base/plasma/MediaCenterComponents/containments/mediacontainment/mediacontainment.cpp
 <http://reviewboard.kde.org/r/3552/#comment4604>

    Remove this



trunk/playground/base/plasma/MediaCenterComponents/containments/mediacontainment/mediacontainment.cpp
 <http://reviewboard.kde.org/r/3552/#comment4606>

    Do I still need this with the delete layouts approach?



trunk/playground/base/plasma/MediaCenterComponents/containments/mediacontainment/mediacontainment.cpp
 <http://reviewboard.kde.org/r/3552/#comment4607>

    No need to clear probably.



trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/mediacenterstate.h
 <http://reviewboard.kde.org/r/3552/#comment4608>

    I could also send the widget type instead of the zone. The control applet would \
then have an if/then for each widget type and thus would have more control of the \
actual layout. However, this would mean a lot of if/thens.



trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/mediacenterstate.h
 <http://reviewboard.kde.org/r/3552/#comment4609>

    This is part of the background states UI



trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/mediacenterstate.cpp
 <http://reviewboard.kde.org/r/3552/#comment4610>

    Is this correct? I have never used static variables before.



trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/mediacenterstate.cpp
 <http://reviewboard.kde.org/r/3552/#comment4611>

    Currently I do this on every state change. Maybe I can create a list as a member \
variable and fill it once at initialization of the state object and only hand out \
this list at state changes. This could speed up things a bit.



trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/mediacenterstate.cpp
 <http://reviewboard.kde.org/r/3552/#comment4612>

    I will have to send the jumpToState buttons (except home) to the browser in the \
home state mode, or will we have the control applet visible in the home state. \
Depends on what we actually want to show in the home state.



trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/mediacenterstate.cpp
 <http://reviewboard.kde.org/r/3552/#comment4613>

    Currently, the background state buttons take up space in the controller even when \
hidden. Where do we want to have these? Maybe in a layout with a fixed size to \
prevent jumping around of the other widgets when the background state widgets are \
removed or added?



trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/medialayout.cpp
<http://reviewboard.kde.org/r/3552/#comment4614>

    How do I tell the controller to adapt to its content? Or do we want to keep this \
size fixed?



trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/musicstate.cpp
<http://reviewboard.kde.org/r/3552/#comment4615>

    Okay, I still need the PlaybackState function in the mediaplayer.
    We only consider a state as background when it is actually playing something.



trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/musicstate.cpp
<http://reviewboard.kde.org/r/3552/#comment4616>

    This is executed when clicking on "stop"



trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/picturestate.cpp
<http://reviewboard.kde.org/r/3552/#comment4617>

    As soon as we have slideshow possibility, should we always pause that when \
switching away from this mode? This would mean that we can never have the picture \
state as background state. Do we need it?



trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/playbackcontrol.h
<http://reviewboard.kde.org/r/3552/#comment4618>

    The way I did it nowm the control applet is reduced to only handle its own \
appearance, nothing else. All the logic is handled by the state objects. I though \
this would make it easier to use QML with PMC?



trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/playbackcontrol.h
<http://reviewboard.kde.org/r/3552/#comment4619>

    This will go into the picture state later.



trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/playbackcontrol.h
<http://reviewboard.kde.org/r/3552/#comment4620>

    Do I still need these?



trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/playbackcontrol.h
<http://reviewboard.kde.org/r/3552/#comment4621>

    Still needed?



trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/playbackcontrol.h
<http://reviewboard.kde.org/r/3552/#comment4622>

    Still needed now that the sliders are in the state objects?



trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/videostate.h
<http://reviewboard.kde.org/r/3552/#comment4623>

    All states that actually handle the VideoWidget need MediaObject information. \
This will only ever be the video state and the music state so I did not add these \
functions to the MediaCenterState API.



trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/videostate.cpp
<http://reviewboard.kde.org/r/3552/#comment4624>

    When we click the background state button to return to the video state, I want to \
show the videoplayer if it is actually playing something.


- Christophe


On 2010-04-19 19:43:39, Christophe Olinger wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://reviewboard.kde.org/r/3552/
> -----------------------------------------------------------
> 
> (Updated 2010-04-19 19:43:39)
> 
> 
> 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/config.ui \
> 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/player.cpp \
> 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
> 
> 

_______________________________________________
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic