You have heard many times that Lancelot was a superkaramba applet in
the beginning, and that later I screwed it up by turning it into a menu.
:)
In this video, which is demonstrating the developments of the /Plasma
Applet Browser/ in the era of pre KDE 4.0, sometime in the middle of it,
you can see the first version of Lancelot for Plasma which was generally
the crude port of the SK one.
Keep open option - Lancelot doesn’t automatically
close when you click something in it, but closes only when it
loses the focus. You can set this option in the configuration dialogue,
or you can hold Ctrl pressed while activating items in L.
The second thing is that the GMail plasma-lancelot
DataEngine is working well and I’ve placed it in playground/plasma.
As you can see in the screenshot, it behaves differently than the
Kontact engine in L - it shows a list of unread mails instead of the
list of directories that have unread mails in them. The reason behind
that is that I use GMail’s Atom feed to get the unread messages.
GMail
I have placed it in playground not because it is unfinished/unstable
or anything, but rather because it is not intended for general use, and
because there is no GUI for choosing the contact engines.
Well, not GMail per-se, at least not yet, but there is now a
mechanism in Lancelot that allows you to make plug-ins for the Messages
and Contacts lists.
It is based on Plasma’s data engines, so you’ll not need to learn
anything new in order to extend Lancelot.
Obviously, not all data engines can be used from L since not all data
engines provide the list data structure. At the moment, in order to use
a data engine in Lancelot, it needs to have the following structure:
.metadata -> lancelot
version = 1.0
modelTitle = Title (optional)
modelIcon = someIcon (optional)
data -> title
data -> description
data -> icon
As you can see above, the main data source is named
“data” and it contains three string lists (QStringList)
named “title”, “description” and
“icon” which contain, respectively, titles,
descriptions and icons of the items that should be shown in
Lancelot.
The Plasma::DataEngine - Lancelot::ActionListModel bridge is not
finished yet, it’ll need to use Plasma::Service in order to notify the
DataEngine that the user has clicked the item. When I finish the
infrastructure, I’ll make an example GMail data engine and upload it to
SVN. I don’t think I’ll bother making anything else, that is your job
;)
So, since Air is coming along nicely (thanks Nuno), it was the time
to make the files Lancelot needs for it. Although there are a few things
yet to do, I’m quite satisfied with it. I’m even using Air as my Plasma
theme now.
Scroll-bars
The second thing that all theme makers that support Lancelot should
know, is that Lancelot now uses Plasma’s scroll-bars. So, you don’t need
to make files for scroll-bars anymore.
Lancelot Air
Keyboard support
Lancelot in KDE 4.2 introduced keyboard support. Now it is taken even
further - now you can do /anything/ in L by using only the keyboard. The
section and system buttons now can be accessed through standard
accelerators (Alt + the underlined letter). For opening the context menu
for an item in the menu, select it and press Alt+Enter.
KRunner actions
As you should already know, runners can now support various actions
for results. You can access them in Lancelot via a context menu. Well,
that was the good news, the bad is that I know not of any runner that
provides any special actions. :(
Other things
There is now a logging system that remembers applications you launch,
what you search for etc. Some new configuration options are also
present, and the parts applet works better. There are probably other
changes, but I can not remember them at the moment. :)