Warning, /pim/ktimetracker/CONTRIBUTING.md is written in an unsupported language. File is not indexed.
0001 # Contributing to KTimeTracker 0002 0003 The source code for KTimeTracker can be found at https://invent.kde.org/pim/ktimetracker 0004 and the project uses QtWidgets + KDE Frameworks. 0005 0006 Issues should be reported to the [KDE Bugzilla](https://bugs.kde.org/enter_bug.cgi?product=ktimetracker&component=general). 0007 0008 ## Project Structure 0009 0010 The KTimeTracker source code is modular and easy to understand. 0011 0012 The main structure is: main loads mainwindow, which loads timetrackerwidget, which loads taskview and searchline. 0013 0014 The basics for understanding tasks is: taskmodelitem -> task. 0015 A task can have a representation as an event for iCalendar management. 0016 The projectmodel manages both tasks and events. 0017 0018 The rest consists of minor dialogs or actions. 0019 0020 --- 0021 0022 * **desktoplist**: a single typedef for DesktopList used in model/task, dialogs/taskpropertiesdialog, desktoptracker, plannerparser, taskview, timetrackerstorage, timetrackerwidget and main 0023 * **desktoptracker**: X11-only feature where tasks only run in certain virtual desktops 0024 * **focusdetector**: X11-only detection for which window is currently active, used in taskview 0025 * **idletimedetector**: uses KIdleTime to store the time spent idling, includes KGuiItem dialog 0026 * **ktimetrackerutility**: generic collection of utilities to manage locale, time format, errors (used in ktimetrackerwidget) 0027 * **mainwindow**: KXmlGuiWindow with a central widget TimeTrackerWidget, manages X11 window tracking, TrayIcon, and with KActionCollection shortcuts 0028 * **reportcriteria**: collection of enums and values for exporting backup copies (work reports) 0029 * **taskview**: main area where tasks will be listed, initialized by ktimetrackerwidget which is initialized in mainwindow which is initialized in main 0030 * **timetrackerstorage**: base to save and load **local** iCalendar files 0031 * **timetrackerwidget**: very large, the container for the taskview, searchline and definitions for KActionCollection actions, as well as most actions from the first screen and menu 0032 * **tray**: simple KStatusNotifierItem and its actions 0033 * **treeviewheadercontextmenu**: used for context menus in taskview, including when clicking the column titles 0034 0035 --- 0036 0037 * **dialogs/taskpropertiesdialog**: small dialog for creating/editing new tasks 0038 * **dialogs/edittimedialog**: small dialog that appears only with context menu 0039 * **dialogs/historydialog**: small dialog that appears only in the Edit Time dialog 0040 * **dialogs/exportdialog**: small dialog to export to file or clipboard 0041 0042 --- 0043 0044 * **export/**: the logic for exporting backup copies in multiple formats 0045 0046 --- 0047 0048 * **file/filecalendar**: the main KTimeTracker iCalendar file format 0049 * **file/icalformatkio**: the load/save procedure for the filecalendar (**both local and remote**) 0050 0051 --- 0052 0053 * **import/plannerparser**: generates an object representing a GNOME Planner XML import file 0054 0055 --- 0056 0057 * **model/event**: object for date/time events 0058 * **model/eventsmodel**: operations to manage date/time events 0059 * **model/taskmodelitem**: base class for tasks 0060 * **model/task**: main object for tasks 0061 * **model/taskmodel**: operations to manage tasks 0062 * **model/projectmodel**: high-level manager of events and tasks 0063 0064 --- 0065 0066 * **settings/ktimetrackerconfigdialog**: the main Settings dialog 0067 * **settings/cfgbehavior**: Behavior tab in the settings 0068 * **settings/cfgdisplay**: Appearance tab in the settings 0069 * **settings/cfgstorage**: Storage tab in the settings 0070 0071 --- 0072 0073 * **tests/**: small collection of tests for various tasks like file load/save, time formatting, task creation/deletion, needs -DBUILD_TESTING 0074 0075 --- 0076 0077 * **widgets/searchline**: main search bar 0078 * **widgets/taskswidget**: Percent Complete progress bar, Percent Complete context menu, Priority context menu 0079 0080 ## Available tasks (TODO) 0081 0082 * See if Planner import is still working, if it isn't, remove it 0083 * Remove the desktop tracking feature OR make it run on Wayland 0084 * Remove mention to karm.ics files 0085 * Check why openFile() and saveFile() are commented out 0086 * Find out the practical differente between timetrackerstorage and file/icalformatkio