Yayin Story Studio logo Yayin Story Studio 项目文档
回到主页 用户手册

YSSCore::Editor::EditorPlugin Class

class YSSCore::Editor::EditorPlugin

此类为Yayin Story Studio提供插件基类. 详情...

头文件: #include <EditorPlugin>
自以下版本: YSSCore 0.13.0
继承自: Visindigo::General::Plugin

公开成员函数

(自 YSS 0.13.0 引入) EditorPlugin(Visindigo::General::Version apiVersion = Compiled_VIAPI_Version, Visindigo::General::Version abiVersion = Compiled_VIABI_Version, QObject *parent = nullptr)
(自 YSS 0.13.0 引入) virtual ~EditorPlugin()
(自 YSS 0.13.0 引入) virtual void onProjectClose(YSSCore::General::YSSProject *project)
(自 YSS 0.13.0 引入) virtual void onProjectOpen(YSSCore::General::YSSProject *project)
(自 YSSCore 0.15.0 引入) virtual QWidget *onToolWidgetRequested(const QString &widgetID)

受保护成员函数

(自 YSS 0.15.0 引入) YSSCore::General::YSSProject *getCurrentProject()
(自 YSS 0.13.0 引入) void registerDebugServer(YSSCore::Editor::DebugServer *server)
(自 YSS 0.13.0 引入) void registerFileServer(YSSCore::Editor::FileServer *server)
(自 YSS 0.13.0 引入) void registerFileTemplateProvider(YSSCore::Editor::FileTemplateProvider *provider)
(自 YSS 0.13.0 引入) void registerProjectTemplateProvider(YSSCore::Editor::ProjectTemplateProvider *provider)
(自 YSS 0.15.0 引入) void registerToolWidget(const QString &widgetID, const QString &widgetName)

详细说明

EditorPlugin是所有YSS编辑器插件的基类。除非只需要提供标准Visindigo插件功能, 否则您应该从此类派生来开发您的插件。

这类的用法和Visindigo::General::Plugin类似,但提供了更多与YSS编辑器交互的功能。

成员函数文档

[since YSS 0.13.0] EditorPlugin::EditorPlugin(Visindigo::General::Version apiVersion = Compiled_VIAPI_Version, Visindigo::General::Version abiVersion = Compiled_VIABI_Version, QObject *parent = nullptr)

apiVersion 插件的API版本 abiVersion 插件的ABI版本 parent 插件的父对象

对于abiVersion,其已经在头文件中被默认填充为Compiled_YSSABI_Version,代表您的插件编译时YSS对应的ABI版本。 在派生此类时,不需要实际传递任何参数。

Warning: 请注意,abiVersion并不是插件的版本号,也不是YSS的程序版本。它是YSS的二进制兼容版本。

这个function 从 YSS 0.13.0 开始支持。

[virtual noexcept, since YSS 0.13.0] EditorPlugin::~EditorPlugin()

析构函数

这个function 从 YSS 0.13.0 开始支持。

[protected, since YSS 0.15.0] YSSCore::General::YSSProject *EditorPlugin::getCurrentProject()

return 当前打开的项目。

实际上,这个函数就是YSSProject::getCurrentProject的本类便捷写法。

这个function 从 YSS 0.15.0 开始支持。

[virtual, since YSS 0.13.0] void EditorPlugin::onProjectClose(YSSCore::General::YSSProject *project)

project 关闭的项目对象

关闭项目时调用此虚函数。参数project是被关闭的项目对象。

这个function 从 YSS 0.13.0 开始支持。

[virtual, since YSS 0.13.0] void EditorPlugin::onProjectOpen(YSSCore::General::YSSProject *project)

project 打开的项目对象

打开项目时调用此虚函数。参数project是被打开的项目对象。

这个function 从 YSS 0.13.0 开始支持。

[virtual, since YSSCore 0.15.0] QWidget *EditorPlugin::onToolWidgetRequested(const QString &widgetID)

widgetID 工具窗口ID

YSS需要请求显示工具窗口内容时调用此函数。参数widgetID是被请求的工具窗口ID。 如果插件提供了对应ID的工具窗口内容,则返回一个QWidget指针;否则返回nullptr。

这个窗口一旦创建,所有权归YSS前台所有,插件不需要也不应该管理它的生命周期。 YSS会确保每次请求同一个工具窗口ID时,如果窗口仍然存活,则直接返回现有的实例; 如果窗口已经被关闭销毁,则再次调用此函数请求新的实例。因此,这个函数每次被调用时, 上一次请求所返回的指针已经被正确销毁了,因此插件不需要担心重复创建工具窗口的问题。

此外,这个窗口不应该中途移除Qt::WA_DeleteOnClose属性,YSS使用此属性来辅助管理工具窗口的生命周期。

另请参见YSSCore::Editor::ToolWidgetManager

这个function 从 YSSCore 0.15.0 开始支持。

[protected, since YSS 0.13.0] void EditorPlugin::registerDebugServer(YSSCore::Editor::DebugServer *server)

server 调试服务器

注册调试服务器。

这个function 从 YSS 0.13.0 开始支持。

[protected, since YSS 0.13.0] void EditorPlugin::registerFileServer(YSSCore::Editor::FileServer *server)

server 文件服务器

注册文件服务器。

这个function 从 YSS 0.13.0 开始支持。

[protected, since YSS 0.13.0] void EditorPlugin::registerFileTemplateProvider(YSSCore::Editor::FileTemplateProvider *provider)

provider 文件模板提供者

注册文件模板提供者。

这个function 从 YSS 0.13.0 开始支持。

[protected, since YSS 0.13.0] void EditorPlugin::registerProjectTemplateProvider(YSSCore::Editor::ProjectTemplateProvider *provider)

provider 项目模板提供者

注册项目模板提供者。

这个function 从 YSS 0.13.0 开始支持。

[protected, since YSS 0.15.0] void EditorPlugin::registerToolWidget(const QString &widgetID, const QString &widgetName)

widgetID 工具窗口ID widgetName 工具窗口名称

注册工具窗口。工具窗口是YSS编辑器中可以停靠的窗口,插件可以通过onToolWidgetRequested()提供工具窗口的内容。

工具窗口的ID必须全程序唯一,一般建议使用反向域命名法。 widgetName 是支持VI18N的字符串,用于直接显示在界面上。

另请参见YSSCore::Editor::ToolWidgetManager

这个function 从 YSS 0.15.0 开始支持。