2. Components
● Shell
● Three containment types
● SAL
● Newspaper
● Simple panel
● One applet: current application control
● Not used in default setup: applet and
dataengine to remote control SAL
3. Shell
● Simpler than desktop
● Exactly one main view and one panel
● Future: multiscreen support?
● UnDesktop: normal window -> handy for
Plasma mobile too
● Panel: single, configurable location and being
autohide
● More flexibility not needed here
4. Search and Launch
● Menus, more or less
traditional are
crowded and complex
● Trees aren't human
friendly
● SAL is completely
based on search or a
completely flat menu
5. Search and Launch
● The two “Item views” aren't real item views
● Similar to KDE3 itmviews, each item is exactly
represented by an icon
● Slow with big datasets
● Luckily runner result sets must be small to be useful
● Qt views aren't really up to the job
● We need real itemviews with QgraphicsView
awesomeness, but until then, this does the job in the best
way possible
● Optional “Horizontal” mode, intended for a small
touchscreen shell, not to be user configurable
6. Search and launch
● Search is done by runners [Desktop Entry]
Name=Education
● Favourites are saved Comment=Educational applications
results of queries – restore Icon=applications-education
is done by krunner too
● Problem: sync queries Type=Service
● The “menu” is done with X-KDE-ServiceTypes=Plasma/Sal/Menu
krunner quries too X-KDE-PluginInfo-Name=plasma-sal-
education
● They are desktop files
describing the query X-Plasma-Sal-Query=education
X-Plasma-Sal-Runner=services
X-Plasma-Sal-Relevance=1
7. Search and launch
● Very flexible for distributors
● Not so much for users
● “aplications categories” don't follow what is
decided on Kmenuedit, only freedesktop's
categories
● Kcm are probably unwanted there
● Solution: tweak services runner, a
KserviceGroup runner or using it directly
8. Search and launch: post 4.4
● Drag and drop favourites reordering
● Drag and drop from results to favourites
● They are necessary for touchscreens
● Not done with “real” drag and drop, just moves
items.
● For reordering it's better
● For drag between results and favourites real
drag and drop could be necessary
9. Newspaper
● What content we would like to see on a computer?
Basically 3 categories:
● Ephemeral attention: information that is useful but is
enough to quickly look at it. Eg. Time, weather,
microblogs.
● Maybe important: information that i need to halways
have handy to quickly look at it usually enough but there
could be an important item that will require attention:
news feeds, email, appointments.
● Always important: content that always need my full
atetion to be useful: watching videos, performing a
search on the internet, writing a document
10. Newspaper
● The newspaper activity type is designed
to accomodate the first two types of
content: it will be enough to have a
weather or a microblog widget there
without ever needing a web browser or a
specialized app.
● I can have the last news headers or last
unread emails there. If it seems there is
something important, i will ask for Kmail,
Akregator, a web browser or whatever
11. Newspaper
● Small screen ->no room for “free” layout desktop
widgets
● No free positioning: items in ordered columns
● No space -> scrolling view -> “infinite” vertical
space
● Scrolling is done with Plasma::Scrollview: big
widget inside a smaller one with
ItemClipsChildrenToShape flag set
● Helped fixing several Qt bugs and a QtWebkit one ;)
● Can be either really fast or very slow
12. Newspaper
● The layout is an horizontal
QgraphicsLinearLayout of an arbitrary number
of vertical layouts
● It is NOT a grid because each widget has its
own optiomal size, while is reasonable to give
the same width to each one just compare the
optimal height for Microblog and weather
13. Newspaper
● How we represent the concept of “maybe
important” information?
● In 4.4, Plasma widgets gained a little
“maximize” button
● Private class AssociatedApplicationManager
● Applet::setAssociatedApplication(QString)
● Applet::setAssociatedApplicationUrls(KUrl::List)
● Applet::runAssociatedApplication()
14. Newspaper: future
● Useful for application dashboards: Skrooge and
Kontact
● Make application access row/column info: scripting or
API?
● Free resizing of widgets in it?
● Advantages?
● Disadvantages?
● Offline behaviour
● caching in all dataengines
● better look for widgets without data
15. Developing a newspaper widget
● If standard API will be used, like Popupapplet
and ScrollWidget sizing will be handled
autmagically
● Scrollwidgets will try to enlarge as much as
possible to avoid ugly “scrollbar in scrollbar”
look
16. Future
● For KDE SC 4.5:
● Bugfixing
● Bugfixing
● Offline behaviour
● Different form factors: touchscreen
friendlyness, on screen kryboard
really working
● Beyond
● Plasma mobile: not reinventing the
wheel, as much contact points as
possible