ReliefTodo¶
ReliefTodo 是 ReliefOS 的原生 C++17 / FLTK 离线任务管理器。启动命令为
relieftodo [list.rtodo]。使用与 ReliefWord、ReliefExcel 相同的 FLTK 默认
gtk+ 主题和中文字体,顶部为文件菜单与功能区,下面为筛选、任务表、任务详情三栏。
任务与操作¶
任务包含标题、备注、项目、标签、四级优先级、截止日期和完成状态。
新建、复制、删除、完成、恢复、手工移动;Ctrl / Shift 多选,功能区支持批量操作。
全部、待办、今天、即将到期、已逾期、已完成筛选,可叠加项目和文字搜索。 “即将到期”包括所有晚于今天的未完成任务。搜索覆盖标题、备注、项目和标签; 中文按原文匹配,ASCII 字母不区分大小写。
按手工顺序、优先级、截止日期、最近更新、标题排序;统计显示总数、完成、逾期和优先级。
详情栏编辑当前任务;点击“应用修改”或按 Ctrl+Enter 提交。 切换任务或执行操作时会先提交有效修改,无效日期或空标题会保留输入并提示。
撤销与重做覆盖任务修改、排序、批量操作和清单重命名。最多保存 40 份历史快照, 历史占用按 64 MiB 预算裁减,单份快照保留。关闭前询问未保存修改。
首次启动显示示例清单;可从文件菜单新建空白清单或重新载入示例。
文件与快捷键¶
.rtodo 是可编辑的原生文档,包含完整任务字段。CSV(UTF-8 BOM)和 Markdown
导出全部任务,不受当前筛选影响。CSV 正确转义引号、换行,并保护以公式字符开头的内容。
导出文件不能覆盖当前原生文档,检查包括 .、重复斜线等路径别名,以及同一文件的硬链接。
对 inode 可能由路径生成的文件系统还会核对完整内容,保守拒绝覆盖内容相同的清单副本。
快捷键:Ctrl+N / Ctrl+O; 操作:新建清单 / 打开
快捷键:Ctrl+S / Ctrl+Shift+S; 操作:保存 / 另存为
快捷键:Ctrl+Insert; 操作:新建任务
快捷键:Ctrl+Enter; 操作:应用详情修改
快捷键:Ctrl+F; 操作:搜索
快捷键:Ctrl+Z / Ctrl+Y; 操作:撤销 / 重做(文本输入控件先处理自己的编辑快捷键)
快捷键:↑ / ↓(任务表中); 操作:选择任务
快捷键:空格 / Delete(任务表中); 操作:切换完成状态 / 删除
快捷键:F1; 操作:帮助
存储与边界¶
原生格式版本为 1,使用 RTDO 文件头、长度、CRC32 和有界字段。
最多 10,000 项任务、16 MiB 文档;标题 512 字节、备注 64 KiB、项目 128 字节、
标签 512 字节、清单标题 256 字节。所有文字校验 UTF-8;日期是 1900–9999 年
公历 YYYY-MM-DD,可留空。日期筛选按系统本地日期计算。
文件读取、目标检查与原子保存由独立工作进程完成。GUI 以非阻塞管道分批读取结果;
写入使用同目录私有临时文件,处理短读写,同步文件后原子替换并同步目录。
保存前用内容摘要与文件状态检测外部修改冲突;失败时保留当前文档。
不支持符号链接文件、符号链接父目录或含 .. 的路径。
保存时在目标目录使用稳定的 .relieftodo-save.lock 普通文件,权限为 0600、所有者
为当前用户;独占锁使多个 ReliefTodo 实例的检查和替换操作互斥,繁忙时提示稍后重试。
锁文件不包含任务内容,保存结束后自动释放锁,保留文件以免产生不同锁 inode 的竞态。
.relieftodo-save.lock (包括仅大小写不同的写法)为保留文件名,不能作为保存或导出目标。
这属于应用间协作锁;不遵守锁协议的其他程序仍可能在最后替换的瞬间并发改写目标。
ReliefNT 当前在 FAT32 上可能把空普通文件识别为相同的锁对象,因此覆盖既有空文件时
可能保守地提示锁冲突;选择尚不存在的新文件名即可绕开。此限制不会覆盖原数据,
本次 QEMU 运行验收使用系统根文件系统,未完成 FAT32/exFAT 的运行验收。
本版不包含云同步、邮件通知、后台闹钟、周期任务、CSV 导入或跨设备协作。 没有自动保存或崩溃恢复;请主动保存清单。