Skip to content

fix: 导出进度条不刷新 + 写入错误未检查 + BOM问题 #9

Description

@GeziP

问题

  1. LogExporter::exportLogs 在主线程同步运行,进度条从 0 直接跳到 100
  2. 不检查 QTextStream::status(),磁盘满时静默截断输出
  3. JSON 导出加了 UTF-8 BOM,不符合 RFC 8259,部分解析器报错
  4. 写 BOM 用 file.write() 再接 QTextStream,混合 I/O 模式
  5. 每条记录都发 progressChanged 信号,10万条=10万次开销
  6. JSON 导出在内存中构建完整 QJsonArray,大文件 OOM 风险

严重级别

Critical + Major

修复方案

  • 导出循环中每 1000 条发一次进度信号
  • 写入结束后检查 out.status()
  • JSON 不加 BOM,TXT/CSV 用 setGenerateByteOrderMark(true)
  • JSON 改为流式写入
  • 导出逻辑移至工作线程或在循环中调用 processEvents()

文件

  • src/core/logexporter.cpp
  • src/ui/logviewer.cpp

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions