You are using an obsolete web browser, or you have the page styles (CSS) disabled. You'll be able to access this site, but only a visually simplified version.

All pieces together (Lancelot)

First of all, don’t sweat about the uglyfication of Lancelot‘s theme in this screenshot. This was made just for testing purposes.

I am aware that this is the ugliest screenshot I’ve ever made, but I don’t care – it fits it’s purpose.

It demonstrates:

  • Compositing – Yes, Lancelot now has true transparency thanks to Siraj’s QtDisplay class made for Raptor (I love free/libre software).
  • Plasma‘s applets – And, the second thing, Lancelot can load Plasma applets. Don’t know what’s the purpose of that, but it’s so awsome! :)
  • Lancelot, Composite, Plasma Applets

If you have read the commit digest feature of Lancelot, you know that these features were meant for 4.1, and not to be made right now. But, I get easily distracted from the main job by these small things.

The thing that will probably miss 4.0 although I was counting on it is the “Contacts” section. Most of the features related to it depend on the progress of Akonadi.

KDE Commit Digest

Moram da se pohvalim. U poslednjem KDE Commit Digest izdanju (Issue 82), je moja bebica došla u centar pažnje:
Link:http://commit-digest.org/issues/2007-10-28/

Lancelot featured in Commit Digest

As the title suggests, Lancelot is featured in the last KDE Commit Digest (Issue 82).
Link:http://commit-digest.org/issues/2007-10-28/

Lancelot is … launching?

This one will be short. For more detailed information, and a FAQ like discussion, go to the previous blog post about Lancelot… especially the comments section.

As you can see in the screenshot (compared to the previous one), there are real items in the menu. Yep, Lancelot now shows devices, places…

… and you can witness the item squeeze/expand feature of the list widgets.

Lancelot revealed

Edit: since this is the page that is returned first (of all KDE Lancelot related pages) by Google when searching for “Lancelot”, I just added a link to Lancelot’s main page: http://lancelot.fomentgroup.org/


Well, not exactly, but now you can get the general idea, and you can see what it will look like

This is an actual screenshot, not a mock up:

1st Lancelot Screenshot

Finished stuff

Extender Button

Extender Button is the base of the no-click concept interface. It has a couple of modes. In the click mode, it behaves like an ordinary button – you click it to invoke action. In the hover mode, it reacts to hovering the button (with the mouse) for a predefined amount of time.

The third mode – extender mode, which *is* the main purpose of the widget can be seen on the screenshot. You hover the button, it shows an extension with a “Play” icon on it. The action is invoked by hovering the extender thus minimizing the possibility of accidental invocations.

The buttons on the left are in the in the hover mode, and all other buttons are (ATM) in extender mode.

Action List View

This is the component I’m currently the most proud of. It is a list view containing extender buttons. The data is provided by a model. One list can have multiple models which is shown in the right list.

The Really-Fancy-Thing (TM) concerning the list view is that the items can squeeze or expand depending on the number of items that need to be shown. If there are only a few items, they will have increased height, and vice versa.

If there is so many items that they can not fit even using the minimum allowed height, the scroll buttons will be shown.

The shape of things to come

Passageway View

This component will provide fast access to applications. This is the component that is (hopefully) going to provide fast access to favorite applications, just like Kickoff does, but will also provide fast browsing through all applications, unlike Kickoff. There is no point in describing it now, when it is finished, I’ll make a screencast.

Smart orientation

Depending on the mouse position when Lancelot is invoked, the components will be arranged differently. For example, the buttons on the left will be shown on the right if the right side is closer to the mouse (if the button for opening Lancelot window is located on the right border of the screen). The same goes for the system buttons and the search field; and the order of the “category” buttons.

No-click levels configuration

If you can’t get used to no-click interface, you will be able to turn it off for all elements, or for just specific groups of elements.

Plasma applets inside Lancelot

I don’t think that I need to explain what this means.

NodeLayout : Example sheet

NodeLayout : Example sheet

Since it appears that the last explanation (which I recommend you to read before opening the example sheet) of NodeLayout was not as good as it should be, here you are – drawn explanation with a few examples in .png format (33K).

Unfortunately WordPress doesn’t allow me to upload the svgz file… hope you’ll be able to read the small text in the picture.

NodeLayout for Plasma

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 icon

<a href="http://lancelot.fomentgroup.org/" class="kblinker" target="_blank">Lancelot</a> icons’ /></p>
<p><em><br />
Bridgekeeper: WHAT… is your name?<br />
Lancelot: Sir Lancelot of Camelot.<br />
Bridgekeeper: WHAT…is your quest?<br />
Lancelot: To seek the Holy Grail.<br />
Bridgekeeper: WHAT…is your favorite color?<br />
Lancelot: Blue.<br />
Bridgekeeper: Right, off you go.<br />
Lancelot: Oh! Well, thank you. Thank you very much.<br />
</em></p>
<p>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.</p>
<p>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.</p>
  </div>
  <div class="post_meta">
    Category: <a href="http://ivan.fomentgroup.org/blog/category/kde/" title="View all posts in KDE" rel="category tag">KDE</a>,
        <a href="http://ivan.fomentgroup.org/blog/2007/10/12/lancelot-icon/#comments" title="Comment on Lancelot icon">Comments (16)</a>      </div>
</div>



</div>
<div style="clear: both !important;"></div>

<!-- begin footer -->
    </div>
</div>
<div id="footer">
    <div class="content">
        <p>Site content, Foment group logo and design are © by Ivan Čukić, 2007-2010, all rights reserved.</p>
        <p>For further information or comments on this site, feel free to contact me.</p>
        <p>Powered by <a href=WordPress