aboutsummaryrefslogtreecommitdiff
path: root/readme.md
diff options
context:
space:
mode:
authordam <dam@gudinoff>2022-09-20 17:20:54 +0000
committerdam <dam@gudinoff>2022-09-20 17:20:54 +0000
commit98279a2d333e8ed14d036a9d5bd38200aa215b5a (patch)
treeeef8a5c9f396148956cdf2dca79c81c68309c715 /readme.md
parent9bbb7ce1b56814e6fa1668bf0ef21aaf602584a1 (diff)
downloadtask-time-tracker-98279a2d333e8ed14d036a9d5bd38200aa215b5a.tar.zst
task-time-tracker-98279a2d333e8ed14d036a9d5bd38200aa215b5a.zip
Let's say this is the first working prototype.
Diffstat (limited to 'readme.md')
-rw-r--r--readme.md28
1 files changed, 28 insertions, 0 deletions
diff --git a/readme.md b/readme.md
index 08972d9..b1d1a7b 100644
--- a/readme.md
+++ b/readme.md
@@ -5,6 +5,10 @@ Task Time Tracker
- Only one task may be active;
- The log will be a circular array. During app startup the array will be loaded from a csv file. The log array should have a fixed length. Each string in the array should also have fixed length. Loading and storing it to a file will be implemented using readline and writeline operations. In order for the log file to be CSV compatible, we must always use the same format when writing to the log array. Best approach is to use a function that enfores the CSV format. The log should be written to a file every 5 minutes (not set in stone), if required; such may be done using a `log_is_dirty` flag. A possible structure for the log entries is: {uint64_t timestamp; uint8_t action[16]; uint8_t task_name[MAX_TASK_NAME+1]; uint8_t notes[16]; }.
+# know-how
+- [ncurses colors](https://tldp.org/HOWTO/NCURSES-Programming-HOWTO/color.html#COLORBASICS)
+- [pprintf](https://cplusplus.com/reference/cstdio/printf/)
+- [intmax_t](https://wiki.sei.cmu.edu/confluence/plugins/servlet/mobile?contentId=87152366#content/view/87152366)
# to-do list
- [x] Include check on number of char bits;
@@ -16,6 +20,30 @@ Task Time Tracker
- [x] Change active_task to active_task_ptrdiff.
- [x] use selected_task_ptrdiff?
- [x] Make sure task names don't include commas ',';
+- [x] Format time being displayed.
+- [x] Replace max_capacity by its true value;
+- [x] replace intmax_t by int64_t;
+- [ ] Don't store total_times on database_t:
+ - Create function to recalculate them. Shouldn't take so long, right?
+ - Decide when this will run.
+ - check for overflow/underflow when adding/subtracting times;
+- [ ] Commit changes to repository.
+- [ ] Adapt cycle to work with `database_t *db` to allow pointing to database/archive.
+- [ ] How to show we're working with database or archive?
+ - When showing archive, change the 1st column name from "TTT v1" to "Archive". Maybe include this on the layout types?
+ - Maybe add a "app_mode" flag;
+- [ ] Maybe rename database to something else that goes along with archive.
+- [ ] Cleanup `draw_tui`:
+ - Selected and active tasks should be drawn after everything else.
+ - Try printing each row;
+ - Try printing headers and footers, then each row;
+ - Allow to repaint just certain parts of the TUI; this should allow to call `draw_tui` with a flag saying which parts need to be drawn;
+- [ ] Allow to cancel a rename_task operation.
+- [ ] Confirm delete_task operation.
+- [ ] Implement logs as described above.
+- [ ] Mouse selection is broken due to entire TUI update:
+ - By drawing only the lines that change, we can make the mouse selection not go away.
+ - Use DRAW_COMPONENT_FLAG to let draw_tui know what needs to be updated.
- [ ] On compact layout, start task names right after the vertical line, otherwise, add a space (as is now).
- [ ] Allow two view modes: one to iew non-archived tasks; another to view archived tasks.
- [ ] To add a new task, create it and enter the task-name-edit mode. To edit, use the ACS_CKBOARD to show empty spaces and ACS_LARROW and ACS_RARROW to show continuation on horizontal direction.