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.
Now the more technical part. First of all, I wrote a ThreadPool class based on the Twisted 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 (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.