peony/libpeony-qt
Yue-Lan feda8f35fb 处理从命令行打开mtp路径的编码问题 2023-08-28 08:54:33 +08:00
..
controls [FIX] 【主题落地走查】【文件管理器】内容区三态样式有误, 选中后背景有重复绘制,导致颜色不对 [LINK]162198 2023-08-28 08:54:32 +08:00
convenient-utils dvd+rw盘覆盖 2023-08-28 08:50:50 +08:00
data task#85459 主题框架实现一键切换机制 / 文件管理器一键切换适配 2022-11-25 16:04:28 +08:00
development-files/header-files Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
effects Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
file-launcher !56 fix: KDKGetOSRelease not found without kylin common 2023-06-06 06:15:03 +00:00
file-operation close-cd #I64KZQ【文件管理器】文件管理器右键属性窗口有两层标题栏,修改复制窗口出现两层标题 2023-07-29 11:32:43 +08:00
icons 补充遗漏的提交 2022-11-25 16:05:20 +08:00
model close #I65YUO 手指触摸拖拽文件到桌面异常 2023-07-29 11:33:40 +08:00
test Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
thumbnail QProcess尽量使用绝对路径,避免环境变量劫持问题 2023-06-05 16:08:48 +08:00
vfs 修复编码问题导致的搜索结束但是仍然显示正在搜索的问题 2023-07-21 16:23:52 +08:00
windows close#130104 属性tabs标签页悬停和点击的颜色显示非灰色系 2023-07-29 11:36:37 +08:00
LICENSE Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
README.md Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
bookmark-manager.cpp Fix can drag trash from deskto to favorite issue, link to bug#163066. 2023-03-29 14:36:57 +08:00
bookmark-manager.h Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
complementary-style.cpp Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
complementary-style.h Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
connect-server-dialog.cpp Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
connect-server-dialog.h Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
connect-server-dialog.ui Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
connect-to-server-dialog.cpp [FIX]修复切换到藏文时登录窗口显示不完全[LINK]bug#175130 2023-07-28 11:03:21 +08:00
connect-to-server-dialog.h [FIX]修复连接输入错误用户名或者密码时清空用户名和密码的问题[LINK]bug#174465 2023-07-21 15:46:54 +08:00
copy-headers.sh Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
custom-error-handler.cpp [FIX]【文件管理器】用shift+delete删除文件,再按下enter未删除文件 [LINK]168861 2023-05-24 09:30:29 +08:00
custom-error-handler.h Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
emblem-job.cpp 补充遗漏的提交 2022-11-25 16:05:20 +08:00
emblem-job.h 补充遗漏的提交 2022-11-25 16:05:20 +08:00
emblem-provider.cpp [FIX]修复设置角标为空后不会及时更新的问题 2023-02-28 15:36:40 +08:00
emblem-provider.h 补充遗漏的提交 2022-11-25 16:05:20 +08:00
file-copy.cpp fix-bug-180300,文件发送到移动设备时,进度条显示异常 2023-07-28 11:03:17 +08:00
file-copy.h FileCopyOperation: 尝试修复特定场景下因为覆盖操作导致的数据丢失问题 2023-05-18 17:16:09 +08:00
file-enumerator.cpp [FIX]修复藏文模式下,连接共享文件夹时,输入密码错误和密码错误后取消对话框未藏化[LINK]bug#144232 2022-11-25 16:05:19 +08:00
file-enumerator.h Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
file-info-job.cpp Task 156470 适配控制面板长短日期格式,统一使用SDK接口 2023-07-28 10:38:21 +08:00
file-info-job.h Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
file-info-manager.cpp Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
file-info-manager.h Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
file-info.cpp 补充遗漏的提交 2022-11-25 16:05:20 +08:00
file-info.h 补充遗漏的提交 2022-11-25 16:05:20 +08:00
file-meta-info.cpp hotfix bug#166017 【文件管理器】测试过程中出现卡死的情况(偶现) 2023-05-18 17:16:05 +08:00
file-meta-info.h 继续为FileMetaInfo添加锁机制 2022-11-25 16:04:31 +08:00
file-utils.cpp 处理从命令行打开mtp路径的编码问题 2023-08-28 08:54:33 +08:00
file-utils.h 根据操作的挂载路径进行判断,然后进行预处理 2023-07-21 15:46:58 +08:00
file-watcher.cpp [FIX]修复在文件保护箱内设置文件标记需要刷新才显示的问题[LINK]bug#143630 2022-11-25 16:05:19 +08:00
file-watcher.h Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
gerror-wrapper.cpp Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
gerror-wrapper.h Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
global-fstabdata.cpp Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
global-fstabdata.h Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
global-settings.cpp [FIX]【1020自适应升级2303-update】升级后桌面图标间距变大 [LINK]177629 2023-07-29 10:26:15 +08:00
global-settings.h [FIX]【1020自适应升级2303-update】升级后桌面图标间距变大 [LINK]177629 2023-07-29 10:26:15 +08:00
gobject-template.cpp Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
gobject-template.h 补充遗漏的提交 2022-11-25 16:05:20 +08:00
libpeony-qt-header.pri udf format interface 2022-11-25 16:04:28 +08:00
libpeony-qt.pri Task#150522 文件管理器适配全局搜索第一阶段、第二阶段适配 2023-07-21 16:20:39 +08:00
libpeony-qt.pro fix bug 163182 【文件管理器】U盘和光盘的格式化窗口可以多开 2023-07-28 11:15:32 +08:00
libpeony-qt.qrc 补充遗漏的提交 2022-11-25 16:05:20 +08:00
linux-pwd-helper.cpp Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
linux-pwd-helper.h Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
metadata-emblem-provider.cpp !51 补全copyright信息 2023-05-24 09:33:56 +08:00
metadata-emblem-provider.h !51 补全copyright信息 2023-05-24 09:33:56 +08:00
mount-operation.cpp [FIX]修复连接输入错误用户名或者密码时清空用户名和密码的问题[LINK]bug#174465 2023-07-21 15:46:54 +08:00
mount-operation.h Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
org.ukui.peony.settings.gschema.xml Task#147972, support great wall and 9215 controler device disks trash files. 2023-07-28 10:27:46 +08:00
peony-core.pri 对EmblemProvider的大量文件更新性能问题进行改进 2022-11-25 16:04:28 +08:00
peony-core_global.h Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
plugin-manager.cpp Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
plugin-manager.h Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
sound-effect.cpp 补充遗漏的提交 2022-11-25 16:05:20 +08:00
sound-effect.h 补充遗漏的提交 2022-11-25 16:05:20 +08:00
sync-thread.cpp QProcess尽量使用绝对路径,避免环境变量劫持问题 2023-06-05 16:08:48 +08:00
sync-thread.h 补充遗漏的提交 2022-11-25 16:05:20 +08:00
thumbnail-manager.cpp [FIX] #158830 【控制面板】【快捷键】添加自定义快捷键,点击程序按钮弹出文件浏览窗口后控制面板卡死(每次第一次点击必现,之后高概率复现) 2023-02-28 15:36:40 +08:00
thumbnail-manager.h 重构缩略图生成,避免线程安全问题 2023-02-28 15:35:51 +08:00
usershare-manager.cpp [FIX]修复删除共享文件夹后共享信息未删除[LINK]bug172733 2023-07-28 11:15:32 +08:00
usershare-manager.h [FIX]修复删除共享文件夹后共享信息未删除[LINK]bug172733 2023-07-28 11:15:32 +08:00
volume-manager.cpp 补充遗漏的提交 2022-11-25 16:05:20 +08:00
volume-manager.h 补充遗漏的提交 2022-11-25 16:05:20 +08:00
volumeManager.cpp fix bug 163182 【文件管理器】U盘和光盘的格式化窗口可以多开 2023-07-28 11:15:32 +08:00
volumeManager.h fix bug 163182 【文件管理器】U盘和光盘的格式化窗口可以多开 2023-07-28 11:15:32 +08:00

README.md

peony-qt-core

Core part of Peony, providing a set of APIs for Peony and other projects for file manager development.

description

Peony is the filemanager of ukui3.0which refactoring Peony(UKUI 2.0) based on qt and glib/gio.

In simple terms, this project can be seem as the qt/c++ style wrapper of gio's api. It should provide all kinds of file operation that gio has supported, such as querying, enumerating, monitoring copying/moving, mounting, etc... And it will translate g_signal to qt's signals for using signal/slot between QObject based classes.

designing concept

    1. File and its info is shared in global scale.
    1. Try to use asynchronous methods.
    1. Integrate exception handling.
    1. Detach front and backend as detached as possible.

content

FileInfo and FileInfoManager

In Peony, a file can be abstracted to a FileInfo class. It contains some informations about the file, such as uri, icon, size, etc. When the FileInfo was created, it should be refered by FileInfoManager. So that the file system will be mapped into a string-info map. The FileInfoManager is desgined to a static single global instance, and the FileInfo instances are usually wrapped by a std::shared_ptr. The FileInfo instance, getting from FileInfo::fromUri(). Actually, FileInfo in FileInfoManager only has a weak reference and it will be destoryed by the last third class instance deconstruction which hold this smart pointer.

The FileInfo instance could be 'incomplete' and 'virtual'. It means the real file might not exsited. When requiring a FileInfo instance, the instance aslo have not gotten all details of the file. You should use FileInfoJob for a querying at first.

FileEnumerator

FileEnumerator is a 'holder' class of FileInfo instances. It provieds the file enumeration function of both local and virtual filesystem. The enumeration is divided into two types, the synchronous one and the asynchronous one. asynchronous enueration need to connect the signal to monitor the enumeration states. Once enumeration finished, you can get the children of the target directoy, which is aslo abstract to the FileInfo instances. This instances are aslo incomplete and need be handled.

FileWatcher

FileWatcher is desgined to monitor the directory changing. When there some changes ocurred, it will send the signal by the file change type.

FileItem and models of FileItem

FileItem is a more advanced layer abstraction of FileInfo. This class is the interface of Qt's Model/View programming. Through the FileItem, the file's info could be shown into a model-based view.

By this way, It could aslo used the Qt's ProxySortFilterModel for the sorting and filtering.

FileOperation

FileOperation is relatively independent from previous classes. All file operations should not run in ui thread. It dervied from QRunnable and should be executed by QThreadPool global instance.

License

  • LGPLv3