1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
* KarmWindow::makeMenus -> export TDEAction? KarmWindow::contextMenuRequest
* QPopupMenu should be static! put connect( ..contextMenu at the right place
* mainwindow: move tray Q_SIGNALS into tray.cpp add mouse double-click action
* (start new timer, stop old) to "Configure
Shortcuts" dialog.
Mark - Sooner ... --------------------------
* 2005-05-24: Modify test scripts for change in dcop iface.
* 2005-05-24: Update docs for new dcop methods.
* 2003-09-24: Generate man page (look for script mentioned on kde-devel).
* 2004-01-27: BUG: if save fails (b/c of permission failure) KArm does not
give any feecback and proceeds as if there was no error.
* 2003-09-17: BUG: entering a negative time increments total session time
(maybe only if session time is zero?)
Mark - Later ... --------------------------
* 2004-06-14: In file exports, check if QT has a function to give you a
platform-specific end of line character. Right now, it is hard coded to a
"\n"
* 2003-08-15: Implement comments: VTODO COMMENT or DESCRIPTION?
- Make sure wrapping works according to iCalendar spec.
- Handle multiple comments against same VEVENT.
- Show in history report.
* 2004-01-27: Write dcop interface so time cards can be exported to other
systems.
* 2003-09-24: Change menu entry from KArm to Time Clock.
* 2003-08-15: Go over code and delete all cruft. In particular, take a look
at taskview.cpp.
* 2003-09-26: Add totals table across entire date range.
* 2003-09-19: If task active, editing task stops timer. Necessary?
* 2003-08-15: When loading an empty ics file, ask user if they want to
import a task list from another file. If they say no, then pop up the new
task dialog. (TaskView::load).
* 2003-09-03: Use file menu and delete storage page in preferences.
* 2003-08-15: Add ability to import tasks from an iCalendar file.
- TaskView::load()
* 2003-09-26: On timecard report, don't print rows for tasks with zero hours
unless a child task has hours logged (that is, show full tree for every
task with time logged).
* 2003-10-13: New event: publish time card. Mark events that are published
as read-only. Create plug-in framework so that when this event occurs, we
export to a different backend. Write plugins for GnuCash and SQL-Ledger.
Hmmm ... or just write a sql calendar resource?
Wishlist: --------------------------
* activeTasks should be cleaned up if two timers are active, associate a
* percentage with them, optimaly the
percentage should be configurable
* completed % per task don't display competed tasks context menu in headers
* for choosing if one wants to see some column or not
Design Notes --------------------------
- Taskview mediates access to KarmStorage. That is one overzealous ListView
subclass!
- The original code was written with the expectation that the user would be
starting and stopping timers. This perspective loses relevance when you
want book time with an arbitrary start and stop time. This impacts method
names and the arguments passed. For example, see KarmStorage bookTime
versus changeTime. Duplicate code, different method signatures.
- How do deal with keeping gui responsive while saving data. Really should be
asynchronous. Then we have to be careful with race conditions; for example,
if an external fires a DCOP event while the user is stopping a time and we
have a really slow remote resource.
- Add the dcop method bookTime, I originally forgot to increment the total time
counter on the task. This is a bad design--a proper task class would provide
an interface to log a history event and would increment the total time for
me.
|