> On 2010-04-07 22:25:15, Alessandro Diaferia wrote:
> > Ok, things are getting a little huge. Let's see together how we can come 
> > out of this.
> > 
> > I like the idea of the state machine and how it could help us correctly 
> > managing the workflow of the mediacenter. Unfortunately i feel something in 
> > the current implementation lacks of robustness (does this word exist?).
> > 
> > As Aaron pointed out, we need to understend whether we are aproaching this 
> > the right way.
> > 
> > The mistake with the MediaLayout in this patch well shows that we should 
> > probably re-design something. The need for states is due to the fact that 
> > we want PMC to know the current media in order to differently behave and 
> > interact with the user. This way we could give the best set of actions for 
> > each kind of media chosen by the user.
> > The first clear issue was the lack for a way of changing the UI accordingly 
> > to the chosen media.
> > 
> > I'd go with questions here in order to better summarize what we need in the 
> > PMC:
> > 
> > Q1. When do we need the UI to react to media type changes?
> > R1. The UI should show different possible actions to the user both while 
> > browsing to a personal collection of e.g. videos and when actually 
> > reproducing a video.
> > 
> > Q2. How the PMC knows which kind of media are we browsing 
> > through/reproducing ?
> > R2. The PMC::Browser API should be updated in order to expose this kind of 
> > information. In addition to this the PMC::Player should be used in order to 
> > retrieve this kind of information while reproducing media.
> > 
> > Q3. Are media types mutually exclusive?
> > R3. This (unfortunately?) cannot always be true. The user might want to 
> > start his favourite playlist and then run a slideshow of his summer photos. 
> > Probably the PMC::Player should inform whether music is currently playing 
> > in background. I'd like to know from you whether you think music is the 
> > only media type that can be played  in background while reproducing 
> > something else in foreground. This is an important topic IMHO.
> > 
> > Q4. Which UI controls does the PMC need?
> > R4. The PMC needs of course playback controls for the current media. In 
> > addition to this the browser should allow the user to navigate through his 
> > collection of medias and eventually get back to the welcome page. The 
> > welcome page should IMO be inside the browser.
> > 
> > 
> > Answering the above questions i feel that what we already have is enough in 
> > order to make the UI adapting to what is happening inside PMC. The 
> > MediaController can be updated in order to support background and 
> > foreground media playback control. When MediaBrowser plugins will be ready 
> > the welcome screen will be there for free showing the user the available 
> > kind of medias. The MediaPlayer should be updated in order to both play 
> > music and slideshows that shouldn't be too hard to do. I really like the 
> > MediaToolbox by Cristophe and i think that its browsing part could directly 
> > go inside the MediaBrowser. Of course i might be wrong about all this stuff 
> > and so, please, tell me your opinions.
> > 
> > I hope this is constructive enough to reach a valid design together.
> > 
> > Regards.
> 
> Aaron Seigo wrote:
>     "As Aaron pointed out, we need to understend whether we are aproaching 
> this the right way."
>     
>     actually, what i was trying to point out is that this patch needs to go 
> into svn or you may as well abandon it. this is a patch against something in 
> playground, not in a shipping module, it's getting bigger and simply offering 
> ideas of how to improve it at this point, esp on the details, is far far 
> slower than doing it together directly in svn.
>     
>     connectMediaLayout, for instance, is probably fixable quite quickly by 
> you or someone else familiar with that code if it was in svn. alternately, we 
> can sit here and stare at the code forever.
>     
>     so if you think this is the right direction, the it needs to get triaged 
> into svn and we can fix the rest of the issues there.
>

Ok, i wasn't probably clear enough. This patch should go in. I'd just like to 
see more control given to each PMC::Applet while using the states for UI 
transitions.

So, Christophe, do you have SVN access? If not i'll commit for you this patch.


- Alessandro


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


On 2010-04-07 20:59:11, Christophe Olinger wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://reviewboard.kde.org/r/3396/
> -----------------------------------------------------------
> 
> (Updated 2010-04-07 20:59:11)
> 
> 
> Review request for Plasma.
> 
> 
> Summary
> -------
> 
> This is the first try to get state machines working. I will of course not 
> forget the previous comments. It builds and runs and state switching is 
> possible. No playbackbuttons or other useful stuff yet, but is easy to get 
> back.
> 
> What I did:
> Created a mediacenterstate class which contains info about shared (so called 
> Main) subcomponents. subcomponents are little widgets like buttons and 
> sliders which will appear in the control bar. I sublcassed QState for this.
> Then I created a picturestate and videostate class, subclasses of the 
> follwoing which are loaded on state switch. The containment does the state 
> switch, the state classes do all the rest: connections, conficurations and 
> hading out subcomponents to the controlbar.
> The controlbar now has a class to add widgets to itself.
> 
> 
> Diffs
> -----
> 
>   
> trunk/playground/base/plasma/MediaCenterComponents/applets/mediabrowser/abstractmediaitemview.h
>  1112197 
>   
> trunk/playground/base/plasma/MediaCenterComponents/applets/mediabrowser/abstractmediaitemview.cpp
>  1112197 
>   
> trunk/playground/base/plasma/MediaCenterComponents/applets/mediabrowser/mediabrowser.h
>  1112197 
>   
> trunk/playground/base/plasma/MediaCenterComponents/applets/mediabrowser/mediabrowser.cpp
>  1112197 
>   
> trunk/playground/base/plasma/MediaCenterComponents/applets/mediacontroller/controller.h
>  1112197 
>   
> trunk/playground/base/plasma/MediaCenterComponents/applets/mediacontroller/controller.cpp
>  1112197 
>   
> trunk/playground/base/plasma/MediaCenterComponents/applets/mediaplayer/mediaplayer.h
>  1112197 
>   
> trunk/playground/base/plasma/MediaCenterComponents/applets/mediaplayer/mediaplayer.cpp
>  1112197 
>   
> trunk/playground/base/plasma/MediaCenterComponents/containments/mediacontainment/mediacontainment.h
>  1112197 
>   
> trunk/playground/base/plasma/MediaCenterComponents/containments/mediacontainment/mediacontainment.cpp
>  1112197 
>   
> trunk/playground/base/plasma/MediaCenterComponents/containments/mediacontainment/medialayout.h
>  1112197 
>   
> trunk/playground/base/plasma/MediaCenterComponents/containments/mediacontainment/medialayout.cpp
>  1112197 
>   trunk/playground/base/plasma/MediaCenterComponents/libs/CMakeLists.txt 
> 1112197 
>   
> trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/CMakeLists.txt
>  1112197 
>   
> trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/browser.h 
> 1112197 
>   
> trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/browser.cpp
>  1112197 
>   
> trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/mediacenter.h
>  1112197 
>   
> trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/mediacenterstate.h
>  PRE-CREATION 
>   
> trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/mediacenterstate.cpp
>  PRE-CREATION 
>   
> trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/musicstate.h
>  PRE-CREATION 
>   
> trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/musicstate.cpp
>  PRE-CREATION 
>   
> trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/picturestate.h
>  PRE-CREATION 
>   
> trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/picturestate.cpp
>  PRE-CREATION 
>   
> trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/playbackcontrol.h
>  1112197 
>   
> trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/playbackcontrol.cpp
>  1112197 
>   
> trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/player.h 
> 1112197 
>   
> trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/videostate.h
>  PRE-CREATION 
>   
> trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/videostate.cpp
>  PRE-CREATION 
>   
> trunk/playground/base/plasma/MediaCenterComponents/shells/plasmediacenter/mainwindow.cpp
>  1112197 
> 
> Diff: http://reviewboard.kde.org/r/3396/diff
> 
> 
> Testing
> -------
> 
> State switchting works.
> 
> 
> Thanks,
> 
> Christophe
> 
>

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

Reply via email to