Ellipsis made easy

Many people have asked for an widgets like labels or buttons that can elide their text as the size of the widget underruns the text length in a visually appealing way. Text ellipses already happens: most widgets (or, since Qt abstracts that, many styles) use ‘…’. However, that doesn’t really look good and it was suggested that ellipsis could be better signified by fading out the last two letters. Dolphin has a hack to achive this with Qt 3, and it is incredibly complicated. So I sat down and looked what it takes to do it better with Qt 4. This is what the result looks like:

Note how the entire sentence is still readable now (at least for the majority of people), and it was really easy to do: I implemented a QLabel subclass that takes 6 lines of code in the paint event to do the actual fading using QGradient:


void ElideLabel::paintEvent(QPaintEvent *event)
{
Q_UNUSED(event)
QPainter p(this);
QFontMetrics fm(font());
if (fm.width(text()) > contentsRect().width()) {
QLinearGradient gradient(contentsRect().topLeft(), contentsRect().topRight());
gradient.setColorAt(0.8, palette().color(QPalette::WindowText));
gradient.setColorAt(1.0, palette().color(QPalette::Window));
QPen pen;
pen.setBrush(QBrush(gradient));
p.setPen(pen);
}
p.drawText(rect(), Qt::TextSingleLine, text());
}

Yeah, really, that’s it. Nothing more to see here. Yes I know, The code doesn’t pass on all text flags that the QLabel API accepts, but hey, it’s a demo. One that made Peter want to replace the old algorithm in Dolphin with a QGradient-based one. The real trick here was to realize that constructing a pen with a brush inherits the gradient. Thanks to Zack for the hint!

FrOSCon 2007: Call for Papers

Doesn’t everyone love Open Source events? I do, and thus I am proud to announce the Call for Paper for FrOSCon, the best Open Source and Free Software event in the western Part of Germany.

For those who don’t know: FrOSCon is a two-day conference on free software and open source, which takes place on the 25th and 26th of August at the Bonn-Rhein-Sieg University of Applied Sciences, in St. Augustin near Bonn, Germany for the second time. Huge parts of the organisation are done by members of LUUSA and the FrOSCon e.V.

For KDE, I aready secured a developers room and I hope that more people will be able to attend then last year, when it was largely unknown because it was conducted for the first time. Yet I dare to claim that everyone who attended last year called it a great show, especially because the organizers carefully analyzed other open source and free software events such as FOSDEM or Linuxtag.

So I hope to welcome you in my home town St. Augustin in fall. Make sure to send a talk or subscribe for the KDE booth. St. Augustin is conviniently located rather close to the BeNeLux countries — a good enough excuse to come over and see some old (and new!) faces again :-).

Fremdgeblogged: Wie ein Schwerverbrecher

Hier wie versprochen der erste Gasteintrag, der uns in die Microsoft Welt führt. Als jahrelanger Computer-Benutzer hat Andreas auch schon oft mit Linux und Co. gearbeitet, zieht aber zumindest für seinen Desktop weiterhin Windows vor. Doch es gibt auch Tage, in denen es schwer fällt, die Fassung zu bewahren. Denn eigentlich wollte er nur Hardware einbauen. Hier ist sein Bericht:

Ja, ich gebe es zu: Ich mag Vista. Ich war registrierter Beta-Tester, und ich hab mich über die Belohnung in Form eines legalen Keys für Windows Vista Ultimate wirklich gefreut. Über die Behandlung bei der Aktivierung allerdings weniger:

Gestern habe ich eine kleine Hardware-Aufrüstung vorgenommen. 1 GB RAM dazu, denn wenn man ab und an virtuelle Maschinen fährt, macht weniger als 2 GB keinen Sinn. Dazu einen neuen DVD-Brenner, und es darf auch gern mal SATA sein.

Also los ans Werk, der RAM wird sofort akzeptiert, nur der Brenner funktioniert gar nicht und bringt das System regelmäßig zum hängen. Jumper oder besondere Einstellungen gibt es bei Samsung SATA-Brennern nicht, also ist der Brenner defekt, oder irgendwas anderes spinnt.

Am gleichen SATA-Controller (VIA) hängt noch ein RAID 0 mit zwei Festplatten, also ist der nächste Verdacht, dass der Treiber damit nicht klarkommt. Kein Problem, die Website von VIA hält aktuelle Treiber für Vista32 bereit, also heruntergeladen, installiert, neu gestartet, und… Aktivierung???

Es ist bekannt, dass der Hash für die Produktaktivierung von Windows unter anderem aus der RAM-Größe und dem Namen, mit dem sich das (erste?) optische Laufwerk identifiziert, gebildet wird. Gut möglich, dass also das andere (wenn auch virtuelle) DVD Laufwerk durch den Treiberwechsel nach vorne gefallen ist und RAM+DVD-ROM zusammen die Produktaktivierung auslösen. Ärgerlich, aber kein Beinbruch, schließlich ist mein Key ja legal.

Die Reaktivierung klappt nicht (“der Product Key wird bereits verwendet”), so dass ich zehn mal sechs Ziffern in die Telefontastatur tippe (die Aktivierungs-ID).

“Bevor wir mit der Aktivierung fortfahren, hier noch einige Fragen”meldet mir eine freundliche Damenstimme vom Band.

“Auf wie vielen PCs haben Sie Windows XP installiert? Drücken Sie eine eins für mehrere PCs oder die zwei für einen PC” Wieso Windows XP? Vista! Nagut…

Weiter: “Ist das ihre erste Aktivierung? Drücken Sie…” Nein, ist es nicht, mein Windows läuft ja schon drei Monate.

Telefonstimmen haben die Eigenschaft, sehr freundlich zu sein, selbst wenn man sich fühlt, als stünde man der “Kommissarin” gegenüber: “Haben Sie in den letzten Tagen umfangreiche Hardwareänderungen an Ihrem PC durchgeführt? Drücken Sie die…” Nunja, wie man halt umfangreich definiert…

Hab ich’s geschafft? Bekomm ich jetzt meine “Bestätigungs-ID”? Nein: “Haben Sie ihre Kopie im Geschäft gekauft, oder war Sie auf ihrem PC vorinstalliert? Drücke Sie…” Naja, Laden passt ja noch am Ehesten.

“Vielen Dank.” *Musik* *Tuuut* *Tuuut*

(Mann mit schwer verständlichem Deutsch, vermutlich indischer Akzent)
MS: “Guten Abend. Bitte nennen Sie mir die ersten sechs Ziffern ihrer Aktivierungs-ID”
Ich: “Null Null Sechs Vier Sechs Vier…”
MS: “Ja, sehe ich hier. Haben Sie Windows schon mal aktiviert?”
Ich: “Ja, aber ich habe meine Hardware erneuert, deshalb muss ich reaktivieren.”
MS: *pause* *stille* *Tastenklappern* “Was genau haben Sie an ihrem PC
verändert?”

Ich: “Neuer Brenner und 1GB mehr RAM.”
MS: *tastenklappern*
MS: *stille*
MS: “In Ordnung, ich lese ihnen jetzt ihre Bestätigungs-ID vor. Bitte tippen Sie diese ein: Zwei Sechs Sieben…”
*ca. 5 Minuten später*
Ich: “Ok, einen Moment bitte, ich schaue ob mein PC das annimmt.”
MS (belehrend): “Sie müssen auf ‘Weiter’ klicken.”
Ich: *pause* “Alles klar, es hat geklappt”.

Was mich an dieser Prozedur gestört hat, war:

  1. Warum reichen zwei getauschte Komponenten aus, um die Reaktivierung zu triggern? Alle anderen Merkmale, die einen PC vom anderen unterscheiden könnten (MAC-Adresse, “Seriennummer” der Startpartition, …) sind gleich geblieben.
  2. Wenn schon eine Reaktivierung notwendig ist, warum funktioniert sie nicht einfach über das Internet? Vor allem dann, wenn sich recht wenige Komponenten geändert haben.
  3. Warum stellt mir der Mitarbeiter stellenweise die gleichen Fragen, die mir auch schon die Bandansage gestellt hat? Wieso kennt er die Installation ID nicht, die ich wenige Minuten vorher eingegeben habe?
  4. Politischer Disclaimer: Ich halte mich nicht im Mindesten für fremdenfeindlich. Aber in einem Callcenter-Beruf, bei dem es auf die exakte Durchgabe von Zahlen ankommt, sollten besser Leute am anderen Ende der Leitung sitzen, deren Deutsch klar verständlich ist.

Meine Zusammenfassung des Ganzen: Ich bin weiterhin ein Fan von Vista. Aber die Art, wie Microsoft meint seine Einnahmen schützen zu müssen geht langsam über das hinaus, was für den Anwender, der die Software einfach nur nutzen möchte, akzeptabel ist. Die Reaktivierung ist zu kompliziert und dauert zu lange. Da nun seit gestern (siehe heise.de) auch wirksame Cracks gegen die Windows-Aktivierung verfügbar sind, stellt sich die ernsthafte Frage, warum sich der (legitime!) Endanwender diesen Schlammassel wirklich antun muss.

Die Frage stellt sich umso mehr, wenn Microsoft in der nächsten Version von Windows mit dem abgeschotteten Kernel, der nur noch signierte Treiber akzeptiert (die 64-Bit Versionen von Vista sind da ein Vorgeschmack) ernst macht, so dass es vielleicht einmal wirklich eine Windows-Version gibt, für die kein leicht zu bedienender Crack herzustellen ist.

Disclaimer: Die Meinung des Autors gibt nicht unbedingt die Meinung der Redaktion wieder.

Fremdgeblogged!

Nachdem ich nicht so häufig zum bloggen komme wie der Luis, euch auf der anderen Seite aber auch gerne ein “Best Of” der Geschichten präsentieren möchte, die ich richtig gut fand, gibt es nun auch in meinem Blog eine Gastrubrik namens Fremdgeblogged!. Im Gegensatz zu Christian brauch ich auch gar nicht lange suchen, der erste Kandidat hat sich bereits gefunden.

In der Rubrik ich vor allem anderen Blickwinkel wiedergeben, die ihr von mir so sonst nicht bekommt. Der erste und hoffentlich nicht einzige Gastbeitrag ist ein gutes Beispiel dafür.

Und nun viel Spass!

CLT2007, LiMux, Where Documentation Really Belongs

Last Weekend, KDE had a booth at Chemnitzer Linux-Tage 2007, one of the best Open Source / Free Software Community events that I am aware of. I went over to Chemnitz with my LUG friends and was warmly welcomed by my friends and hosts Antje, Daniel and KF.

The booth was staffed with a lot of well known developers like Alex Neundorf of CMake fame as well as fresh blood like Bernhard Schiffner, who did not only volunteer to help out on the booth but also brought some additional hardware and a precompiled KDE 4 which we happily showed off. If you are a KDE lover and want to support KDE, follow Bernhards example and subscribe to KDE-Promo to help your local promo team.

The most discussed topic was the Dolphin vs. Konqueror that also caused quite some heat on the Dot. Another FAQ revolved around our choice against Beryl or Compiz as the default Window Manager in KDE 4. The reason is fairly simple: Both only work on modern hardware and with modern drivers. They are also not as well integrated in KDE 4 as KWin is, and it would be hard to get them there in some particular areas (think KIOSK). On the other hand, KDE 4 will support Beryl or Compiz just as well, so if you feel like using them, there is nothing in your way. Also let me point out that KWin maintainer Lubos Lunak (sorry for the spelling Lubos, not Unicode keyboard available) is working on some eyecandy in KWin, which he already blogged about.

But lets return to my little report: On Sunday, I gave fairly well attended two hour workshop on Qt 4 programming, which was very well received. I also had a couple of interesting meetings with several people. I might blog about some of them later. Most interesting for the purpose of this blog entry was the discussions I had with the people from LiMux (Linux in Munich). They were very interested when they learned about TechBase.

This is pretty much what I hoped for: The technical staff within the LiMux project is pretty much the combination of System Integrators and administrators that had a hard time to figure out KDE detail and they still have. However, there is hope now: Everything can be easily documented. Also there was one particular plea that I’d like to forward to all KDE developers: Don’t hide documentation in Subversion. No real word user will ever be looking there. Noone, really. Storing documentation in Subversion, even if it is not strictly general purpose documentation, is the best way to get people annoyed with your software, since they usually use packaged software. Use TechBase and don’t be shy to create new documentation. If you don’t feel confident about where to store new documents: Don’t despair! A lot of people are monitoring changes on TechBase and will put the articles where they belong.