diff --git a/CMakeLists.txt b/CMakeLists.txt index d7887841a9..fe15cef4ea 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -136,7 +136,6 @@ add_subdirectory(src/plugins) add_subdirectory(src/external) add_subdirectory(src/tools) -# docs # docs set(BUILD_DOCS ON CACHE BOOL "Generate doxygen-based documentation") find_package(Doxygen) diff --git a/debian/dde-file-manager.install b/debian/dde-file-manager.install index 3fcce361ff..243df5d5e4 100644 --- a/debian/dde-file-manager.install +++ b/debian/dde-file-manager.install @@ -19,6 +19,7 @@ usr/share/dbus-1/services/org.deepin.filemanager.server.service usr/share/dbus-1/system-services/com.deepin.filemanager.daemon.service usr/share/deepin-manual/manual-assets/application usr/share/polkit-1/actions/*.policy +usr/share/qt5/doc usr/lib/systemd/system/ lib/systemd/ usr/lib/systemd/user/ etc/dbus-1/system.d/com.deepin.filemanager.daemon.conf diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt index c9867af601..62495d489e 100644 --- a/docs/CMakeLists.txt +++ b/docs/CMakeLists.txt @@ -1,7 +1,3 @@ -# SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. -# -# SPDX-License-Identifier: LGPL-3.0-or-later - set (QCH_INSTALL_DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/qt5/doc CACHE STRING "QCH install location") set (DOXYGEN_GENERATE_HTML "YES" CACHE STRING "Doxygen HTML output") set (DOXYGEN_GENERATE_XML "NO" CACHE STRING "Doxygen XML output") diff --git a/docs/dfm-extension/dfmextmenuplugin.zh_CN.dox b/docs/dfm-extension/dfmextmenuplugin.zh_CN.dox new file mode 100644 index 0000000000..8cec6e9f19 --- /dev/null +++ b/docs/dfm-extension/dfmextmenuplugin.zh_CN.dox @@ -0,0 +1,49 @@ +/*! +@~chinese +@ingroup dfm-extension +@file dfmextmenuplugin.h + + +@class dfmext::DFMExtMenuPlugin dfmextmenuplugin.h +@brief 第三方开发者应该继承并实现的接口类,并且在元接口 dfm_extension_menu 中返回派生的类对象 + +@fn DFMExtMenuPlugin::DFMExtMenuPlugin() +@brief 构造函数 + +@fn void DFMExtMenuPlugin::initialize(DFMEXT::DFMExtMenuProxy *proxy) +@brief 插件初始化接口。文管主动调用,在其他所有接口被文管调用前调用,文管将 proxy 传入给扩展插件 +@param[in] proxy 可认为是文管主程序的进程 + +@fn bool DFMExtMenuPlugin::buildNormalMenu(DFMExtMenu *main, + const std::string ¤tUrl, + const std::string &focusUrl, + const std::list &urlList, + bool onDesktop) +@brief 文管主动调用,右键菜单在文件上触发时调用 +@param[in] main 当前的右键菜单 +@param[in] urlList 选中的所有文件列表的文件路径/ +@param[in] currentUrl 右键点击的文件路径所在目录的路径 +@param[in] focusUrl 当前右键选中文件的路径 +@param[in] onDesktop true 代表操作是在桌面触发的 +@return 如果没有注册该接口的回调则返回 false,反之则返回回调函数的结果 + +@fn bool DFMExtMenuPlugin::buildEmptyAreaMenu(DFMExtMenu *main, const std::string ¤tUrl, bool onDesktop) +@brief 文管主动调用,右键菜单在空白区域触发时调用 +@param[in] main 当前的右键菜单 +@param[in] currentUrl 右键点击的文件路径所在目录的路径 +@param[in] onDesktop true 代表操作是在桌面触发的 +@return 如果没有注册该接口的回调则返回 false,反之则返回回调函数的结果 + +@fn void DFMExtMenuPlugin::registerInitialize(const DFMExtMenuPlugin::InitializeFunc &func) +@brief `initialize` 接口的注册函数,第三方开发者主动注册 +@param[in] func 回调函数 + +@fn void DFMExtMenuPlugin::registerBuildNormalMenu(const DFMExtMenuPlugin::BuildNormalMenuFunc &func) +@brief `buildNormalMenu` 接口的注册函数,第三方开发者主动注册 +@param[in] func 回调函数 + +@fn void DFMExtMenuPlugin::registerBuildEmptyAreaMenu(const DFMExtMenuPlugin::BuildEmptyAreaMenuFunc &func) +@brief `buildEmptyAreaMenu` 接口的注册函数,第三方开发者主动注册 +@param[in] func 回调函数 + +*/ diff --git a/docs/dfm-extension/index.zh_CN.md b/docs/dfm-extension/index.zh_CN.md index a632b99d21..c0a0a5c1f8 100644 --- a/docs/dfm-extension/index.zh_CN.md +++ b/docs/dfm-extension/index.zh_CN.md @@ -1,2 +1,33 @@ @page dfm-extension dfm-extension -@brief 文件管理器扩展开发库 \ No newline at end of file +@brief 文件管理器扩展开发库 + +# 模块介绍 + +文件管理器(以下简称文管,dde-file-manager)提供一套插件开发接口来支持**右键菜单**和 **文件角标**两个需求的开发接口。 + +插件是一种在不需要改动并重新编译主程序本身的情况下去扩展主程序功能的一种机制。 + +文件管理器的插件机制是由文件管理器提供一个扩展库 `libdfm-extension.so` 来提供接口,这是一个纯 C/C++ 接口的库。第三方开发者通过加载该扩展库,按照文管提供的标准来调用和实现相应接口,共同完成定制需求的功能扩展。 + +在文件管理器启动时,会去检测目录 `/usr/lib/[arch]/dde-file-manager/plugins/extensions` 下的所有文件(其中 [arch] 代表平台架构,如 ARM64 下为 aarch64-linux-gnu,AMD 64下为 x86_64-linux-gnu), 并检测是否是一个正常的动态库文件,如果是则尝试加载,因此第三方开发者应该将扩展插件**安装到此目录下**。如果加载成功,文管将会检查扩展插件是否实现了相应的**元接口**,如果通过了检查,文管将与第三方扩展插件开始正常业务交互。 + +@ref group_dfm-extension "接口文档" + +# 如何使用模块 + + + +# 使用示例 + + + +@defgroup dfm-extension + +@brief 文件管理器扩展开发库 + +@details 示例文档: + +@subpage dfm-extension + +@anchor group_dfm-extension +