[SC-02]通过拖拽导入文件

来源:互联网 发布:网络综合布线设计方案 编辑:程序博客网 时间:2024/06/08 11:10

首先很遗憾地告诉大家,之前的为知笔记插件开发项目遇到了一个技术上的瓶颈(实际上是自己太弱,能力达不到。。。),所以和导师商量之后,选择换一个项目,这个项目相对来讲,容易一些,也比较好把握时间进度。

基本内容就是通过向笔记客户端的文件夹目录拖拽动作,就可以导入想要导入的文件,如下图左侧的目录树所示。


具体步骤如下:

1. 通过Finder向文件夹目录(CWizCategoryBaseView)拖拽文件,会触发CWizCategoryBaseView对象的dragEnterEvent、dragMoveEvent和dropEvent事件。
2. 判断拖拽的目标文件夹是否允许新建笔记,可参考是否允许拖拽笔记(acceptDrop())。
3. 在dragEnterEvent和dropEvent事件中获取Event的mimeData(event->mimeData())。此处需要的是mimeData中的文件地址内容(mimeData()->urls())。
4. 新增读取文件的方法,根据mimeData中不同文件的类型调用不同的读取方法(目前只需要处理纯文本和图片类型,暂时不支持pages和offices文件)。
5. 新增数据转换方法,将读取到的文件数据转换成Html。
6. 对每一个需要导入的文件创建一篇单独的笔记(CWizCategoryView中的createDocument方法),并将转换后的html插入到笔记中(可以重载CWizCategoryView中的createDocument方法,增加一个提供Html的QString类型参数,创建笔记时直接将Html中的内容写入到笔记中)。

0 0
原创粉丝点击