Feeling a *little* better, so working on this is my "down" activity.
OK, so it looks like this project is shaping up to be the most ambitious one I have done to date, and is really stretching my "how do I do that?" muscles. I'm not going to give up, but before I go any further, I feel a need to ask for opinions on implementation and direction. Tomos, since I intended this as an answer to your appeal, I'll take your suggestions first, and implement them as I am able, but I'm open to advice from anyone.
Regarding the clock, and time-keeping in general:
Right now, the clock is started and stopped via clicking on the clock text itself; the background changes between light green and pink to indicate the status. Should it instead:
-Use a separate start/stop button?
-Click on the clock allows manually editing the time?
-Clicking on the "Reset" button sets the clock to 0. How about a Right-click sets it to the current time, or vise-versa?
The buttons on either side of the clock allow incrementing the seconds/minutes and I planned to add a third for changing the hours, but then I thought about leaving off the buttons, and just set the time manually, or would the buttons still be convenient?
Regarding the "New Task" button:
-Is that an appropriate name for the function it does? Or is there a more universal word for "something I'm doing that I want to measure the time I've spent doing it"?
-As it is now, when the "New Task" button is clicked, it stops the clock, enters the Task and Begin time in the next available row. I had planned to make it add the End time and Total time when another Task is entered, but that got me thinking... is that really the best way? What would your opinion be on how to coordinate setting a new task, begin and ending time, and coordinating with the clock?
The grid component is where the Task, Begin, End, and Total are displayed. It's actually a complex beast for a single component, and is the source of much of my research on this project.
As it is now, once an entry is listed in the grid, it is not editable, because I assume that the time spent on any task is an important metric, and adjusting for breaks and whatnot should be restricted to within the time spent, not fudging the numbers after the fact; BUT:
- Should I allow direct editing of the contents after the fact? Of course, one could simply edit the exported text file if the desire arose, I just think it's too much opportunity for 'cheating' to allow in-grid editing, and besides, at that point why have a timer at all? Why not just fill in arbitrary numbers in an Excel spreadsheet?
- How about deleting rows? (I'm actually OK with that idea).
Regarding the menus: Any ideas for the menu items?
As I have it now, the menu items are -
-Load (to continue a previously-exported time sheet from where you left off)
-Save (or Export)
(nothing in here yet, maybe not needed, unless some preferences be thought up)
What file format should be used for the export file?
-Plain text CSV?
-Good ol' XML?
-The new kid in town JSON?
-Something entirely different (YAML, SDL)?