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. :)
OK, it is now safe to write this post. The April 1st has passed, and
now all of us (except the Onion news authors, obviously) are returning
to the every-day reality.
Unfortunately, I don’t have enough time lately to do anything
serious, so I’ve tackled the multi-process web browser that I have mentioned last time.
It received some standard web-browsing features such as loading a
page when you type the address in the address bar, and similar :)
But that’s not the reason behind writing this this post. You know how
Firefox and Konqueror ask you whether you want to restore your last
session after a crash? Well, it is a good feature, but I’ve got one even
better.
Webbie Notifications
When a site makes an illegal move, and induces a crash in QtWebKit,
instead of crashing the whole application (like in most other browsers),
it only closes the tab it belongs to. OK, that’s not new. The new thing
is that I’ve ported a notification system that I made some time ago for
another application, so that when a tab is lost, it can be recovered
very easily - just click ‘Reopen’ (see the screenshot).
I haven’t used KDE’s system wide notifications since I wanted to make
them local (there’s no point in bogging the system notifications with
things like these).
The next step will be to implement more advanced, but still standard
browsing features. The smart address bar will be one of the first. It
could probably end up in Konqueror and Rekonq eventually. (Nepomuk tags
for bookmarks…)
Since Raptor is coming slower than we are hoping, I decided to give
you all a preview of what it will behave like.
Starting with the revision r945664, you’ll be able to see all the
glory of the Raptor mode for Lancelot.
This is probably the last feature that will be introduced in Lancelot
for KDE 4.3. I’m not sure about the category buttons on top, because
they don’t really have a purpose now, and the no-click paradigm doesn’t
really work in Raptor mode, but it is still retained as an option.
There are some layout problems, but those will be fixed in time for
4.3.
I hope you’ll like it. If you want to test it before 4.3, just
compile the SVN trunk.
I was wondering how hard would it be to create a web-browser that is,
like Google’s Chrome, separated in different processes for different
tabs. You know, the whole “security problems and crashing are restrained
to single tab” thing.
As it turned out, it is not all that difficult. Create the main
window, start the WebKit (QWebView) in another program, then X-Embed the
later in the former, and communicate via D-Bus. (I got the idea to do
this from Embed Window plasmoid :) )
If the child crashes, only one tab is gone. If the main application
crashes, tabs become independent windows.
I’m not sure whether I’ll continue to work on this, but if I find the
time, you could see a Rekonq-based (http://rekonq.sourceforge.net/)
browser that is similar to Chrome someday.