Dakons blog

Erstellt: 6. 2. 2008, 07:00

Sorting, anyone?

Tags:

I like that model/view stuff. Really. Even if some of my last commits added lines of code it felt like I removed hundreds of lines as the new code is much more readable and straightforward. But there are some things that are simply not there (or they are hidden so good that I can't find them):

QTreeView::resizeColumnsToContent()
It simply does not exist. I have no idea why: resizeColumToContents(int) is there and both functions are in QTableView.
query sort settings
Yes, I know about QTreeView::sortByColumn(). But once you have set this (e.g. by clicking on the header) how can you find out which column is currently the sorting one? Or the direction? My current hack will probably just store it once the mymodel::lessThan() is called. But this is ugly. Really, really ugly. I mean, this stuff must be stored somewhere in the view. Why can't I simply query it?
Erstellt: 31. 1. 2008, 00:37
Geändert: 6. 4. 2008, 08:48

Wizard encounter

Tags:

After I finally managed it to get KGpg clean of K3Process I decided to take one step further: Q3Wizard. The first step was to rename Q3Wizard to QWizard in the ui file and see what happens. Well, it went rather well. Porting the code around that to QWizard was actually pretty fun. But for one reason or another I can't get the UI right. The Qt4.3 designer (at least the copy I got from openSuSE 10.3) does not care about QWizard at all. With the old one it was simple to add a page or something but the new one simply does nothing. And it seems that noone in the parts of trunk I usually check out and compile really uses QWizard. KPPP folks tried but it doesn't look from a quick glance that it worked too well for them.

So if anyone has a working example of how a Qt4 QWizard with 3 pages has to look like: come over and rescue me.

And now let's look if I owe SaroEngels one or two beers when he get's KGpg running on Windoze. Good luck man, I don't want your job. At least not as a hobby, it's pain enough to get paid for that.

Erstellt: 23. 1. 2008, 23:13

Vielen Dank auch

Tags:

Ich hatte echt befürchtet am Samstag Nachmittag Langeweile zu haben. Oder nicht zu wissen was ich mit meinem Geld anstellen soll. Und außerdem hatte ich heute morgen sowieso nichts besseres vor. Und ob die Speicherkarte die Linux-Tests überstanden hat wollte ich eigentlich nie herausfinden müssen. Einen Rant über eine unmögliche Sortierreihenfolge von Dateien auf der SD-Karte oder den nicht funktionierenden USB-Port wollte ich eigentlich auch niemals schreiben.

Kabel im Einbauschacht

Verrotte in der Hölle, du Arsch!

Erstellt: 17. 1. 2008, 17:39

Geistige Gesundheit

Tags:

Nein, keine Sorge, es geht diesmal nicht um unseren Rollstuhlmiehlke; da ist sowieso nichts mehr zu machen. Es geht eher um Beobachtungen wie von Scytale. Die Fahrt in öffentlichen Verkehrsmitteln sollte unbedingt mit Kopfhörern, Ohrstöpseln oder ohne Hörgerät erfolgen, ansonsten setzt man sich als normaler Mensch einem immensen Risiko aus.

Mein Erlebnis gestern Abend im Bus: Bei dir könnte ich mir echt vorstellen, dass du bei McDonalds heiratest. Au weia.

Erstellt: 4. 1. 2008, 01:22

Strangest commit ever

Tags:

Judging from the fact that I'm not able to speak a single word French r757040 is probably the strangest commit I have ever made. But, hey, KGpg is my playground these days and if I cope around with encryption even simple things in French can't be impossible.

If you look very close you might say "hey, there is one new translation in that commit" but believe me: it's not. I added the context for this message for a good reason: to tell anyone where to copy that thing from. That of course includes myself ;)

Erstellt: 29. 12. 2007, 11:23
Geändert: 5. 1. 2013, 20:46

Persistent crashes

Tags:

I was trying to delete some items from my model. According to the documentation I tried it with beginRemoveRows() and endRemoveRows(). Well, it didn't work. Crashes everywhere.

The encapsulation of the insert and remove operations with these begin and end functions also enables the model to manage persistent model indexes correctly.

QAbstractItemModel Class Reference

Well, actually it doesn't. After one and a half day I found a way how to do it a way that it doesn't crash anymore. The last hour (well, it was after midnight) I really went mad because I shoot myself in the foot. I started with:

class KGpgRootNode: public KGpgNode {
protected:
	KGpgItemModel *m_model;
...
KGpgRootNode::KGpgRootNode(KGpgItemModel *model)
	: KGpgNode(NULL)
{
	m_model = model;
...

Every item is a child of this root node and now has access to the model. Since there are indirect clients the access was encapsulated in a function. Bad thing: when the root item is destructed the client items can't call upwards to invalidate themselfs. My fault. Next try:

class KGpgNode {
protected:
	KGpgItemModel *m_model;
...
KGpgNode::KGpgNode(KGpgNode *parent)
{
	if (parent != NULL)
		m_model = parent->m_model;
	else
		m_model = NULL;
...

Insert an hour of confusion and head-shaking here. Why the hell is m_model always NULL? Of course because I forgot to remove it from KGpgRootNode so it was hiding the member of KGpgNode. After this was found the rest was simple:

KGpgNode::~KGpgNode()
{
	m_model->invalidateIndexes(this);
}

void
KGpgItemModel::invalidateIndexes(KGpgNode *nd)
{
	for (int i = 0; i < persistentIndexList().count(); i++) {
		QModelIndex idx = persistentIndexList().at(i);

		KGpgNode *n = nodeForIndex(idx);

		if (n != nd)
			continue;

		changePersistentIndex(idx, QModelIndex());
	}
}
Erstellt: 24. 12. 2007, 13:03

Verwöhnt durch Überwachung

Tags:

Gerade habe ich bei meinem Autoden Ölstand mal wieder in den normalen Bereich gebracht. Dabei ist mir wieder einmal aufgefallen wie sehr so ein Auto doch eine Black Box ist. Irgendwie erinnert mich das alles an einen Windows-Rechner. Alles funktioniert irgendwie solange es funktioniert und wenn nicht muss man wissen was man tut.

Ich vermisse bei einem Auto das Äquivalent zu free und top. Jeden Mist den man kontrollieren will muss man sich irgendwo zusammensuchen. So ein Nagios für Autos wäre ja schon eine tolle Sache. Das mir mein Auto eine Email schreibt wenn ich Depp mal wieder vergessen irgendwas nachzufüllen wäre schon irgendwie übertrieben. Aber mit vertretbarem Aufwand (d.h. ohne Werkstatt oder teures Zusatzgerät) gelegentlich etwas in der Richtung von "tail -f /var/log/messages" machen zu können wäre echt hilfreich.

Erstellt: 22. 12. 2007, 20:58
Geändert: 22. 12. 2007, 20:59

Model Rock

Tags:

I just have to say: this model/view stuff rocks. I spent the last day or so porting different parts of the key manager of KGpg to model/view interfaces. It's not even half way done but I like the direction it's going. Some important basic things are still missing, like everything that has to do with updating the model contents after the initial setup. But what I already was able to port over was just a walk through the park. A long one, but still at a reasonable pace while stopping here and there to watch was is besides your way.

Things like item sorting, implementing a filter or opening a context sensitive popup menu are really straight forward. One Qt3 compatibility class is already gone and the ported code looks somehow less obfuscated. What really amazes me is how fast it works, there is no flickering or anything. And some of the ported functions even work ;)

Erstellt: 1. 12. 2007, 20:18
Geändert: 3. 6. 2010, 12:58

Blau machen

Tags:

Nachdem ich gestern kurzfristig meine "Apollo", ihres Zeichens eine HP Apollo 705, zerlegt hatte musste ich mal wieder auf der Konsole ran. Dabei fiel mir ein Bug auf, der schon seit meinen ersten Versuchen auf der Maschine besteht. Wie ich gerade festgestellt habe besteht er scheinbar seit den allerersten Versuchen von überhaupt irgendjemandem auf so einer Maschine: die Konsole ist nicht weiß auf schwarz, sondern blau auf schwarz. Etwa zu dem Zeitpunkt an dem der Kernel den Framebuffer initialisiert wird die Schrift blau und bleibt so. Sollte es irgendjemand schaffen das mal zu richten lobe ich hiermit eine Kiste Bier dafür aus. Nicht das ich mehr als ein Mal im Jahr einen Bildschirm an die Kiste stecken würde, aber ich finde das gehört endlich mal gefixt.

Erstellt: 1. 12. 2007, 19:27
Geändert: 1. 12. 2007, 19:34

ISDN-Versteckspiel

Tags:

1-2-3: ich komme! Los, raus aus euren Löchern! Ich darf Geld ausgeben, also nicht verstecken!

Was wir vorhaben ist eigentlich ganz simpel: wir bauen uns eine Asterisk-Telefonanlage. Nach außen geht es über mehrere ISDN-Leitungen, die natürlich irgendwie in den Rechner kommen müssen. Da ich keine Lust habe eine ganze Batterie von Karten in den Rechner zu stecken brauche ich also Karten, die mehr als einen S0-Bus verkraften. PCIe wäre toll, aber normales PCI ist auch ok. Dann wollen wir doch mal gucken:

AVM

Wenn der Begriff "ISDN-Karte" fällt ist mein erster Gedanke immer "AVM". Das nenne ich mal gutes Marketing. Mag vielleicht auch daran liegen, dass ich jahrelang selbst über eine AVM-Karte ins Netz gegangen bin. AVM hat jedenfalls aus mir völlig unerfindlichen Gründen nur noch Karten im Angebot, die lediglich einen einzigen S0-Bus verkraften (namentlich A1 und B1). Die ganzen "großen" Karten (C2, C4 und T1) sind aus dem Programm geflogen. Ok Leute, das war ja nichts.

Eicon

Wirklich zu tun hatte ich mit dem Laden nie, allerdings ist mir der Name in den entsprechenden Menüs im Kernel schon mal über den Weg gelaufen. Anscheinend ist der Laden mittlerweile aufgekauft oder sonstwie umbenannt worden. Und die ISDN-Karten scheinen auch dort Auslaufmodelle zu sein.

HST

Von dem Laden hatte ich noch nie was gehört, aber unser Händler schlug mir eine der Karten vor. Dank eines Links von ihm fand ich auch schnell den Linux-Treiber für deren Karten. Ich entwickle ja nicht umsonst hauptberuflich Gerätetreiber als das mich das nicht reizen würde. Also flugs runtergeladen und gestöhnt:

Insgesamt sieht das Zeug jedenfalls überhaupt nicht vertrauenserweckend aus, ganz abgesehen davon das es in unserem Rechner mit einem neuen Kernel nicht funktionieren wird. Gut, ihr bekommt also auch kein Geld von uns.

Digium

Diese Firma hat Asterisk entwickelt, wir können also davon ausgehen das die Karten mit Asterisk auch zusammenarbeiten. Mein Freund Jani sagte er hätte den Treiber auch im Quellcode, allerdings muss ich die Details da noch untersuchen. Wäre natürlich schön, denn das scheint im Moment so ziemlich unsere letzte Chance zu sein.

Kleines Detail am Rande: die entsprechenden ISDN-Karten kostet fast so viel wie der Rest des Rechners.

Anbieterkennzeichnung