/** \mainpage %Karm API Overview \section intro Introduction %Karm is a simple, easy to use time tracking program. It keeps a hierarchical list of tasks. Each task has a timer associated with it. The primary user interaction for karm is to start and stop the appropriate timer. \section map Road Map to the Classes MainWindow is the outermost layer and initializes the menus and actions, sets up the status bar, and handles many of the signal-to-slot connections. It holds a pointer to the TaskView and Preferences objects and implements the %Karm's DCOP interface (defined in KarmDCOPIface). TaskView does most of the work in the application. This TDEListView subclass sets up the columns in the list, the idle detection timer, the auto save timer, and the desktop tracker. It starts and stops timers, handles importing and exporting and displays the edit task dialog in response to user action. TaskView holds a private pointer to Preferences and KarmStorage objects. A Task is a QListViewItem subclass stores state such as the timer totals, if a timer is currently running for the task. It also defines the list view sort order and can return a pointer to a KCal::Todo object that holds the same information. Preferences is a singleton that stores configuration options. It raises signals when options change (for example, the location where the karm data is stored) so the application can react and adjust. KarmStorage is a singleton that creates an interface for storing KArm data. Currently, it uses KDE Resource framework and stores data in the iCalendar format. */ /** \page sig_slot_index Index of Signals and Slots To get an understanding of the flow program, it may be useful to see an overview of all of the signals, slots, and connections. See \see connections to get an index of what signal is connected to which slot. \section overview Summary of what each class provides

Class | Signal? | Public Slot? | Protected Slot? | Private Slot?
AddTaskDialog |  |  |  | Y
IdleTimer | Y | Y | Y |
TDEAccelMenuWatch |  | Y |  | Y
Karm | Y | Y | Y |
KarmTray |  | Y | Y |
KarmWindow |  |  | Y |
KTimeWidget |  |  |  |
ListViewIterator |  |  |  |
Loging |  |  |  |
MyPrinter |  |  |  |
Preferences | Y | Y | Y |
SubtreeIterator |  |  |  |
Task |  |  | Y |

\section signals Listing of all of the signals These are the signals:

1. IdleTimer::extractTime(int)
2. IdleTimer::stopTimer()
3. Karm::sessionTimeChanged()
4. Karm::timerActive()
5. Karm::timerInactive()
6. Karm::timerTick()
7. Karm::updateButtons()
8. Karm::tasksChanged(QPtrList)
9. Preferences::autoSave(bool)
10. Preferences::autoSavePeriod(int)
11. Preferences::detectIdleness(bool)
12. Preferences::idlenessTimeout(int)
13. Preferences::saveFile(TQString)
14. Preferences::setupChanged()
15. Preferences::timeLog(TQString)
16. Preferences::timeLoging(bool)
17. Preferences::hideOnClose(bool)

\section slots Listing of the slots \subsection public Public Slots

1. IdleTimer::setMaxIdle(int maxIdle)
2. IdleTimer::startIdleDetection()
3. IdleTimer::stopIdleDetection()
4. IdleTimer::toggleOverAllIdleDetection(bool)
5. TDEAccelMenuWatch::updateMenus()
6. Karm::changeTimer(QListViewItem*)
7. Karm::deleteTask()
8. Karm::editTask()
9. Karm::extractTime(int)
10. Karm::load()
11. Karm::newSubTask()
12. Karm::newTask()
13. Karm::newTask(TQString, QListViewItem*)
14. Karm::parseLine(TQString, long*, TQString*, int*)
15. Karm::resetSessionTimeForAllTasks()
16. Karm::save()
17. Karm::startTimer()
18. Karm::stopAllTimers()
19. Karm::stopCurrentTimer()
20. Karm::stopTimer(Task*)
21. KarmTray::initToolTip()
22. KarmTray::resetClock()
23. KarmTray::startClock()
24. KarmTray::stopClock()
25. KarmTray::updateToolTip(QPtrList)
26. Karm::writeTaskToFile(QTextStream*, QListViewItem*, int)
27. Preferences::load()
28. Preferences::save()
29. Preferences::showDialog()

\subsection protected Protected Slots

1. IdleTimer::check()
2. Karm::addTimeToActiveTasks(int)
3. Karm::autoSaveChanged(bool)
4. Karm::autoSavePeriodChanged(int)
5. Karm::minuteUpdate()
6. Karm::stopChildCounters(Task*)
7. KarmTray::advanceClock()
8. KarmWindow::contextMenuRequest(QListViewItem*, const QPoint&, int)
9. KarmWindow::disableStopAll()
10. KarmWindow::enableStopAll()
11. KarmWindow::hideOnClose(bool)
12. KarmWindow::keyBindings()
13. KarmWindow::print()
14. KarmWindow::quit()
15. KarmWindow::resetSessionTime();
16. KarmWindow::save()
17. KarmWindow::slotSelectionChanged()
18. KarmWindow::updateStatusBar()
19. KarmWindow::updateTime()
20. Preferences::autoSaveCheckBoxChanged()
21. Preferences::hideOnCloseCheckBoxChanged()
22. Preferences::idleDetectCheckBoxChanged()
23. Preferences::slotCancel()
24. Preferences::slotOk()
25. Preferences::timeLogingCheckBoxChanged()
26. Task::updateActiveIcon()

\subsection private Private Slots

1. AddTaskDialog::enterWhatsThis()
2. AddTaskDialog::slotAbsolutePressed()
3. AddTaskDialog::slotRelativePressed()
4. TDEAccelMenuWatch::removeDeadMenu()

*/ /** \page connections Index of the signal/slot connections

Class | Sender | Sending Type | Signal | Receiver | Slot
AddTaskDialog | _absoluteRB | QRadioButton | clicked() | this | slotAbsolutePressed
AddTaskDialog | _relativeRB | QRadioButton | clicked() | this | slotRelativePressed
AddTaskDialog | whatsThisBU | QPushButton | clicked() | this | enterWhatsThis
IdleTimer | _timer | QTimer | timeout() | this | check
TDEAccelMenuWatch | menu | QPopupMenu | destroyed() | this | removeeDeadMenu
Karm | this | Karm__QListView | doubleClicked() | this | changeTimer
Karm | _minuteTimer | QTimer | timeout() | this | minuteUpdate
Karm | _idleTimer | IdleTimer | extractTime() | this | extractTime
Karm | _idleTimer | IdleTimer | stopTimer() | this | stopAllTimers
Karm | _preferences | Preferences | idlenessTimeout() | _idleTimer | setMaxIdle
Karm | _preferences | Preferences | detectIdleness() | _idleTimer | toggleOverAllIdleDetection
Karm | _preferences | Preferences | autoSave() | this | autoSaveChanged
Karm | _preferences | Preferences | autoSavePeriod() | this | autoSavePeriodChanged
Karm | _autoSaveTimer | QTimer | timeout() | this | save
Karm | _menu | QPopupMenu | __() | this | startTimer
Karm | _menu | QPopupMenu | __() | this | stopCurrentTimer
Karm | this | Karm__QListView | contextMenuRequested() | this | slotRMB
Preferences | _doAutoSaveW | QCheckBox | clicked() | this | autoSaveCheckboxChanged
Preferences | _doTimeLogingW | QCheckBox | clicked() | this | timeLogingCheckboxChanged
Preferences | _doIdleDetectionW | QCheckBox | clicked() | this | idleDetectCheckBoxChanged
Preferences | __ | Preferences__KDialogBase | __() | __ | slotOk
Preferences | __ | Preferences__KDialogBase | __() | __ | slotCancel
KArmWindow | _karm | Karm | sessionTimeChanged() | this | updateTime
KarmWindow | _karm | Karm__QListView | currentChanged() | this | slotSelectionChanged
KarmWindow | _karm | Karm__QListView | selectionChanged() | this | slotSelectionChanged
KarmWindow | _karm | Karm | timerTick() | this | updateTime
KarmWindow | _karm | Karm | timerActive() | this | setActiveIcon
KarmWindow | _karm | Karm | timerInactive() | this | setInactiveIcon
KarmWindow | KStdAction__quit | TDEAction | __() | this | quit
KarmWindow | KStdAction__print | TDEAction | __() | this | print
KarmWindow | KStdAction__keyBindings | TDEAction | __() | this | keyBindings
KarmWindow | KStdAction__preferences | TDEAction | __() | _preferences | showDialog
KarmWindow | KStdAction__save | TDEAction | __() | _preferences | save
KarmWindow | actionResetSession | TDEAction | __() | this | resetSessionTime
KarmWindow | actionStart | TDEAction | __() | _karm | startTimer
KarmWindow | actionStop | TDEAction | __() | _karm | stopCurrentTimer
KarmWindow | actionNew | TDEAction | __() | _karm | newTask
KarmWindow | actionNewSub | TDEAction | __() | _karm | newSubTask
KarmWindow | actionDelete | TDEAction | __() | _karm | deleteTask
KarmWindow | actionEdit | TDEAction | __() | _karm | editTask
Task | _timer | QTimer | timeout() | this | updateActiveIcon

*/