/** \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 KListView 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 Q_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 Q_SIGNALS, Q_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  
KAccelMenuWatch   Y   Y
Karm Y Y Y  
KarmTray   Y Y  
KarmWindow     Y  
KTimeWidget        
ListViewIterator        
Loging        
MyPrinter        
Preferences Y Y Y  
SubtreeIterator        
Task     Y  
\section Q_SIGNALS Listing of all of the Q_SIGNALS These are the Q_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(QString)
  14. Preferences::setupChanged()
  15. Preferences::timeLog(QString)
  16. Preferences::timeLoging(bool)
  17. Preferences::hideOnClose(bool)
\section Q_SLOTS Listing of the Q_SLOTS \subsection public Public Slots
  1. IdleTimer::setMaxIdle(int maxIdle)
  2. IdleTimer::startIdleDetection()
  3. IdleTimer::stopIdleDetection()
  4. IdleTimer::toggleOverAllIdleDetection(bool)
  5. KAccelMenuWatch::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(QString, QListViewItem*)
  14. Karm::parseLine(QString, long*, QString*, 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. KAccelMenuWatch::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
KAccelMenuWatch 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 KAction __() this quit
KarmWindow KStdAction__print KAction __() this print
KarmWindow KStdAction__keyBindings KAction __() this keyBindings
KarmWindow KStdAction__preferences KAction __() _preferences showDialog
KarmWindow KStdAction__save KAction __() _preferences save
KarmWindow actionResetSession KAction __() this resetSessionTime
KarmWindow actionStart KAction __() _karm startTimer
KarmWindow actionStop KAction __() _karm stopCurrentTimer
KarmWindow actionNew KAction __() _karm newTask
KarmWindow actionNewSub KAction __() _karm newSubTask
KarmWindow actionDelete KAction __() _karm deleteTask
KarmWindow actionEdit KAction __() _karm editTask
Task _timer QTimer timeout() this updateActiveIcon
*/