peony/libpeony-qt
Yue-Lan 41ddeaf74d 修复0a213ed3c430c61db7b1d3bb2bf24e75a2847e3e引入的问题
关联bug #114864
2022-11-25 16:04:33 +08:00
..
controls 修复0a213ed3c430c61db7b1d3bb2bf24e75a2847e3e引入的问题 2022-11-25 16:04:33 +08:00
convenient-utils hotfix bug#22692【回收站】清空时,其他工作区的文件管理器会转到当前工作区 2022-11-25 16:04:33 +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 fix glib/gio critcal caused by gicon cast. 2022-11-25 16:04:27 +08:00
file-operation [FIX]【文件管理器】【复制文件】字号设置为标准时,复制文件的进度对话框内容显示截断[LINK]bug#136567 2022-11-25 16:04:32 +08:00
model 屏蔽麒麟云盘的卸载操作 2022-11-25 16:04:33 +08:00
test Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
thumbnail Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
vfs 按设计稿:加回‘个人’,并将‘快速访问’下的相关项移除 2022-11-25 16:04:29 +08:00
windows Fix format U disk crash issue. 2022-11-25 16:04:33 +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 按设计稿:加回‘个人’,并将‘快速访问’下的相关项移除 2022-11-25 16:04:29 +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 调整记住密码策略,GPasswordSave设置为G_PASSWORD_SAVE_NEVER,即不自动登录;如果勾选记住密码,会无需在输入用户名密码连接即可;如未勾选记住密码,则需再输入用户名密码。link to bug#100444、92509、60333. 2022-11-25 16:04:32 +08:00
connect-to-server-dialog.h Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
copy-headers.sh Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
custom-error-handler.cpp Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
custom-error-handler.h Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
emblem-job.cpp 对EmblemProvider的大量文件更新性能问题进行改进 2022-11-25 16:04:28 +08:00
emblem-job.h 对EmblemProvider的大量文件更新性能问题进行改进 2022-11-25 16:04:28 +08:00
emblem-provider.cpp 对EmblemProvider的大量文件更新性能问题进行改进 2022-11-25 16:04:28 +08:00
emblem-provider.h Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
file-copy.cpp FileCopy代码调整: 2022-11-25 16:04:31 +08:00
file-copy.h FileCopy代码调整: 2022-11-25 16:04:31 +08:00
file-enumerator.cpp Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
file-enumerator.h Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
file-info-job.cpp Fix trash file not update to gsettings change issue,link to bug#136022. 2022-11-25 16:04:32 +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 尝试修复utf8 helper的段错误问题 2022-11-25 16:04:29 +08:00
file-info.h Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
file-meta-info.cpp 继续为FileMetaInfo添加锁机制 2022-11-25 16:04:31 +08:00
file-meta-info.h 继续为FileMetaInfo添加锁机制 2022-11-25 16:04:31 +08:00
file-utils.cpp 修复加密格式化后挂载卸载分区高概率崩溃的问题 2022-11-25 16:04:30 +08:00
file-utils.h 增加判断是否空光盘的方法,hotfix bug#127947. 2022-11-25 16:04:29 +08:00
file-watcher.cpp 注释一些频繁的打印debug log 2022-11-25 16:04:31 +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] #135482 【2203自适应升级2209】系统更新的过程中,注销系统之后登录系统,桌面黑屏 2022-11-25 16:04:33 +08:00
global-settings.h [FIX] #126873 【文件管理器】【需求11238】取消“全局排序”后,切换不同排序方式,菜单始终显示“文件名称”被选中 2022-11-25 16:04:29 +08:00
gobject-template.cpp Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
gobject-template.h Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
libpeony-qt-header.pri udf format interface 2022-11-25 16:04:28 +08:00
libpeony-qt.pri 适配寻光音效[LINK]task84006 2022-11-25 16:04:27 +08:00
libpeony-qt.pro 添加FMWindowIface.h到libpeony-dev 2022-11-25 16:04:29 +08:00
libpeony-qt.qrc Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +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 FileMetaInfo: 添加dupFromUri接口,用于线程使用 2022-11-25 16:04:31 +08:00
metadata-emblem-provider.h Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
mount-operation.cpp 调整记住密码策略,GPasswordSave设置为G_PASSWORD_SAVE_NEVER,即不自动登录;如果勾选记住密码,会无需在输入用户名密码连接即可;如未勾选记住密码,则需再输入用户名密码。link to bug#100444、92509、60333. 2022-11-25 16:04:32 +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 Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +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:04:30 +08:00
sound-effect.h Revert "Fix paste deleted file issue, link to bug#114073, 121029." 2022-11-25 16:04:30 +08:00
sync-thread.cpp Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
sync-thread.h Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
thumbnail-manager.cpp 尝试修复文件管理器退出时ThumbnailJob的崩溃问题 2022-11-25 16:04:30 +08:00
thumbnail-manager.h Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
usershare-manager.cpp 修改usershare add报错处理判断条件 2022-11-25 16:04:31 +08:00
usershare-manager.h Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
volume-manager.cpp fix glib/gio critcal caused by gicon cast. 2022-11-25 16:04:27 +08:00
volume-manager.h Import Upstream version 3.14.4.5 2022-06-06 11:37:01 +08:00
volumeManager.cpp hotfix bug#133362 【文件管理器】【PTOF】空光驱识别提示信息与预期不符 2022-11-25 16:04:32 +08:00
volumeManager.h hotfix bug#133362 【文件管理器】【PTOF】空光驱识别提示信息与预期不符 2022-11-25 16:04: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