Review Request: Initial work on the flexible controller of the Plasma Media Center

Christophe Olinger olingerc at binarylooks.com
Mon Apr 5 18:18:16 CEST 2010


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

(Updated 2010-04-05 16:18:15.741278)


Review request for Plasma.


Changes
-------

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.

P.S. I have not read the recent lists in the ML yet, but will do so now. I thought we might need something to concrete to get started.


Summary
-------

This patch extends the controller applet by having 6 different layout modes which are adapted to what the media center is currently used for, i.e. browsing pictures, playing videos, etc. It sends a signal to the containment with the current mode. The containment then relayouts the other applets and configures them for the current Mode. These modes are defined as enum in the libs.
*The browser no longer has any controls. Those are now in the controller.
*The controller also has a show/hide playlist button and a toggle autohide button for itself.
*The different modes do not have sensible functions yet. I also need to work on configuring the applets for each mode, like telling the browser to hide, or the player to show.
*The controller is not really beautiful. I want animations for show(hide icons. I want the modeswitch button in a "drawer" perhaps. The toggle buttons need effects.


Diffs (updated)
-----

  /trunk/playground/base/plasma/MediaCenterComponents/applets/mediabrowser/abstractmediaitemview.h 1111411 
  /trunk/playground/base/plasma/MediaCenterComponents/applets/mediabrowser/abstractmediaitemview.cpp 1111411 
  /trunk/playground/base/plasma/MediaCenterComponents/applets/mediabrowser/mediabrowser.h 1111411 
  /trunk/playground/base/plasma/MediaCenterComponents/applets/mediabrowser/mediabrowser.cpp 1111411 
  /trunk/playground/base/plasma/MediaCenterComponents/applets/mediacontroller/controller.h 1111411 
  /trunk/playground/base/plasma/MediaCenterComponents/applets/mediacontroller/controller.cpp 1111411 
  /trunk/playground/base/plasma/MediaCenterComponents/applets/mediaplayer/mediaplayer.h 1111411 
  /trunk/playground/base/plasma/MediaCenterComponents/applets/mediaplayer/mediaplayer.cpp 1111411 
  /trunk/playground/base/plasma/MediaCenterComponents/containments/mediacontainment/mediacontainment.h 1111411 
  /trunk/playground/base/plasma/MediaCenterComponents/containments/mediacontainment/mediacontainment.cpp 1111411 
  /trunk/playground/base/plasma/MediaCenterComponents/containments/mediacontainment/medialayout.h 1111411 
  /trunk/playground/base/plasma/MediaCenterComponents/containments/mediacontainment/medialayout.cpp 1111411 
  /trunk/playground/base/plasma/MediaCenterComponents/libs/CMakeLists.txt 1111411 
  /trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/CMakeLists.txt 1111411 
  /trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/browser.h 1111411 
  /trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/browser.cpp 1111411 
  /trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/mediacenter.h 1111411 
  /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/picturestate.h PRE-CREATION 
  /trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/picturestate.cpp PRE-CREATION 
  /trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/playbackcontrol.h 1111411 
  /trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/playbackcontrol.cpp 1111411 
  /trunk/playground/base/plasma/MediaCenterComponents/libs/mediacenter/player.h 1111411 
  /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 1111411 

Diff: http://reviewboard.kde.org/r/3396/diff


Testing
-------

I tested the controller itself. The actual effect on the other applets when changing modes still needs work.


Thanks,

Christophe



More information about the Plasma-devel mailing list