* KarmWindow::makeMenus -> export KAction? 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.