Yes, it’s that time of year again - the time for backporting layouts
from Lancelot to Plasma.
NodeLayout is one of the most powerful layouts in general, in a sense
of that it’s expressiveness for positioning static content is greater
than any current layout in Plasma.
The idea behind it is to help developers avoid creating multiple
different layout objects mixed and nested in each other when creating
complex UIs. It’s a bit trickier to get the hang of it - the nodes
definition, but once you get to know it, it will become your natural way
of thinking. :) (yes, I know I’m sounding like a shampoo commercial)
Every item’s geometry is defined by two nodes - one for the top-left
corner, and the other one for the bottom-right corner.
Each node is defined by a pair of relative (xr, yr) and a pair of
absolute (xa, ya) coordinates. The calculated node coordinates depend on
the size and position of the NodeLayout object in the following manner
(layout is the geometry of the NodeLayout):
x = layout.left() + (xr * layout.width()) + xa
y = layout.top() + (yr * layout.height()) + ya
Alternatively, the item’s position can be defined by using one node
and one pair of relative coordinates (xr, yr). In that case, the item is
sized following the sizeHint(). The relative coordinates (this time they
are relative to the item’s geometry, not the layout’s) specify what
point of the item will be bound to the defined node.
Note: The horizontal and vertical values are
completely independent so you can, for example, have automatic (sizeHint
defined) sizing for width, and fixed sizing for height.
Lancelot: Oh! Well, thank you. Thank you very much. _
I got bored while waiting for the green light for committing the
NodeLayout (later about that) to libPlasma, so I decided to make a nice
icon for Lancelot. I had a couple of ideas - shield, knight, helmet and
a grail.
Shield was not a great solution since people would think that it has
something to do with computer protection, and knight and helmet (IMHO)
are suited more for a game like Wesnoth then for an application
launcher. So i have made a grail.
The Plasma Applet Browser is now integrated into the libplasma and it
will be available in the next Beta that is going to be published on
Wednesday.
I’ve replaced the old drag-and-drop with a bit fancier stuff - now
(as you can see in the screenshot) when you drag the plasmoids, you will
be shown only the icons (possibly will be replaced by screenshots of
plasmoids) not the whole “blue bars” you saw last time.
At the moment, you can add only one applet at a time by dragging, but
that will be changed soon. If you use Oxygen style, you’ll encounter a
nasty bug concerning the drag-and-drop-icons - there will be no icons,
only nice shades of gray… but that’s not my fault.
Last week was dedicated to returning the Kamion (Truck in English)
project on the road again. The new band consists of Pedro, Andy, Toke,
Ljubomir and Luca, and I’ll be a roadie. :)
So, now I’ll be getting back to Plasma development and moving the
Applet Browser into the libplasma (finally), so that I can focus on the
Lancelot development after that. In one of the last posts you have asked
for mockups or screenshots, and I
didn’t want to provide them. I still don’t, but here is a part of the
mockup :)
Lancelot mockup - Part
Maybe you’ll get the idea of the extenders I mentioned last time.
UPDATE: There is a mailing list dedicated to kamion
development at
https://lists.sourceforge.net/lists/listinfo/kamion2-devel if you want
to join the discussions…
Unfortunately, it is not joyful to work on the Kamion anymore. Mainly
because of the lack of feedback from the developers community… read
on:
For those who [still] do not know what Kamion is, here’s a definition
from the webpage:
Simple description: Kamion is a user-friendly
user state migration and backup tool created for KDE 4. Meaning - it
allows even the most inexperienced user to transfer program related data
such as e-mail messages, IM program history as well as the configuration
of those programs from one computer to another. It can be used for
backup purposes too.
The name Kamion means “The Truck” (see the logo) in my mother
tongue (Serbian language).
Longer description: Kamion is a project
consisted of the library named libKamion, graphical user interface for
QT4/KDE4, and a few console tools. This organization is similar to the
one of the Debian’s APT (Advanced Packaging Tool).
The library manages the database about the location of the
application data (such as e-mail messages from KMail of Thunderbird…)
for each supported application; and creates/restores the Kamion
archives.
The GUI represents that database (list of applications and their
resources) in a user-friendly manner allowing easy creation and
restoration of the data. For those that do not have the ability to run
the GUI, there are console based tools that offer the same functions as
the GUI but without the user-friendliness.
Things that are finished:
libKamion - in working state
KDE4 GUI - in working state
console tools - broken
Gnome GUI - not started
Things that need to be worked
on
Program support - I have almost no marketing abilities and no will
to do the marketing. Kamion itself can not know what files to archive
for a specific application. The application developers need to provide
Kamion XML data files. I tried to push this format to the FreeDesktop
but received no feedback whatsoever (although
information needed by Kamion could be used for automatic creating of
AppArmor/SELinux policies as well, and possibly for more things that I
can not foresee at the moment). This is the main thing that
needs to be done.
I18n support in the library - the application’s resources are not
supported to have internationalized names. It could be done as a part of
the GUI, or as a part of the library
mature and move from playground
I will gladly help anyone willing to take this task - explain
the program and library architecture, explain the kamion archive format,
application data XML file format…
If you’re willing to take on the job, put your e-mail address in the
comment (in bla AT bla DOT bla format, or similar)