I have just released the first update to my work/time tracking tool WorkTracker, version 1.1.0. Included are a few visual enhancements, bugfixes, a new runtime and one feature I didn’t want to implement at first: resume a running task after application shutdown.
Resume Running Tasks
What does that mean? This allows you to close the application without losing data. Previously, tasks were added to the database when they were finished. That means, in the case that you start a task and then close the application, after a restart this starting point would not be known. With this new version, data is added to the XML database as soon as it is generated, i.e. right after clicking “Select” when you enter a description. If the application then correctly closes the data is flushed to disk (killing via Task Manager circumvents this).
My motivation to initially not do it like this was simply based on complexity. The way I had structured my model wouldn’t allow to implement this as easily as resuming a running work day. Every model contains a reference to the underlying XML node. In fact, all data is directly fetched from the DOM tree and also pushed to the DOM tree. There are no member variables like start-date or task-id, only getters and setters that operate on the XML structure. This, however, is not possible with the individual pieces of work. They are grouped by task (under the aptly named node ) and represented by nodes (with a start and stop attribute). The problem with this approach is, that if a new work-task is immediately written to the DOM after a click on “Start Task”, then it has to be removed if the user changes the task description, which in turn means the parent of the node changes to a different . This is now implemented and thus you can close the application at any point in time and it will pick up where you left off once you start it again.
By the way: I call this feature auto-resume – one has to have cool names for features these days 😉
Visual Improvements
The application now doesn’t change its width any more if long task descriptions are entered. The text that is displayed in the status bar now elides words in the middle, showing “…” instead.
Every button and menu item now contains an individual icon, using the same colorful theme as the application’s icon. Here’s a screenshot of the main dialog.
Bugfixes
The “Quit” option in the File menu now actually works! In addition to that, there’s a Help menu that contains “About WorkTracker” and “About Qt” entries to display a respective about-dialog. And, of course, they have icons as well.
Here’s the about dialog.
Binaries
The new version can be found on Github in the Releases section
With this version I removed support for 32 bit versions of Windows. The application is now created using the precompiled 64 bit Qt libraries, generated with Visual Studio 2013. Make sure to install the Visual C++ runtime to execute WorkTracker.