项目信息

通过 Peony 插件机制,实现预览界面。并区别处理不同类型的文件。

文本高亮:KSyntaxHighlighting

office:libreoffice

pdf:QtPDF 或 pdf.js

更详细的方案以及未采用的方案请查看:

解决方案的选型

https://zany-yoke-295.notion.site/c5566771b0484da3a653f6d46463907b

大致介绍:

components 目录下,保存一些小组件,icon-button: peony不能直接调用的图标窗口。slider:音视频播放器用的进度条,修改了鼠标单击的逻辑

并分辨,存放image.cpp, pdf.cpp,audio.cpp 等,看名字就可以明白是干什么的。

如果想支持新类型,在此建立一个派生自 BasePreviewPage 的类即可,如果想用 pandoc 等进行转换预览,参考 to-pdf.cpp 的实现。

third_party 目录,https://github.com/Archie3d/qpdf, 支撑pdf.js

PreviewFileType, PreviewType 定义文件类型,主要函数 getPreviewType 分辨文件类型