> 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