Status report 'Refactoring Deskbar-Applet' 11.06.2007



Blog entry is available at:
http://www.k-d-w.org/index.php?mact=News,cntnt01,detail,0&cntnt01articleid=14&cntnt01returnid=15

As promised this week's report comes along with more news.
I continued working on displaying and saving history items. After that,
I made Deskbar-Applet to an applet again. So now you can add it to your
panel as usual and the keybinding works again, too. You can now browse
the history in a sidebar or you can cycle through it in the entry like
you browse previous commands in the terminal. A short movie showing you
the latest features is available.[1]

Now the more technical part. First of all, I wrote a ThreadPool class
based on the Twisted[2] ThreadPool to make all queries async. In order
to avoid that old results will be displayed I had to change the Match
interface again. Now each match contains the query it belongs to. This
way I can easily check whether a result is outdated or not. Furthermore,
I added a list of history items. I created a sidebar and put a TreeView
containing the history items in it. Adding and displaying the items
works fine. But some matches (e.g. matches from programs handler) cause
Deskbar to crash if selected. kikidonk pointed out that this could be
again an issue with the infamous pickle module[3] (I personally hate
it). I didn't investigate this problem, yet, but it's on may todo list.
Besides displaying the whole history you have been able to browse the
history if you select the entry and press the down or up key. This
feature has been added to the new Deskbar, too. In addition, changing
those history items, a feature that has been requested a long time ago,
is now possible.

For the future I came upon an idea for the history sidebar. It would be
cool to put all the history items in different categories according to
the date they where added to history. E.g. a categories "today",
"yesterday", "2 days ago", and so on.
In the next week I hopefully get storing the history items right. Pickle
is a bitch, it pretends that everything is alright, but if you really
want to use a pickled object you get an error, because pickle silently
changed your object. Next week will also contain storing the window's
position and size in GConf and restoring it on startup. Still missing is
the preferences dialog. Hopefully, I can start working on it this week
so it will be ready for the 2.19.4 release.

[1]: http://www.k-d-w.org/uploads/deskbar-preview.ogg
[2]: http://www.twistedmatrix.com
[3]: http://docs.python.org/lib/module-pickle.html

-- 
Greetings,
Sebastian Pölsterl



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]