YSSCore::General::YSSProject Class
class YSSCore::General::YSSProject这个类代表YSS项目数据. 详情...
| 头文件: | #include <YSSProject> |
| 自以下版本: | YSS 0.13.0 |
公开类型
(自 YSS 0.13.0 引入) enum | LoadProjectResult { Unknown, Success, ParseError, InvalidConfig } |
公开成员函数
(自 YSS 0.13.0 引入) | YSSProject() |
(自 YSS 0.13.0 引入) virtual | ~YSSProject() |
(自 YSS 0.13.0 引入) void | addEditorOpenedFile(const QString &filePath) |
(自 YSS 0.13.0 引入) QString | getFocusedFile() |
(自 YSS 0.13.0 引入) QString | getFocusedFileName() |
(自 YSS 0.13.0 引入) QString | getProjectAuthor() |
(自 YSS 0.13.0 引入) Visindigo::Utility::JsonConfig | getProjectConfigForPlugin(Visindigo::General::Plugin *plugin) |
(自 YSS 0.13.0 引入) Visindigo::Utility::JsonConfig | getProjectConfigForPlugin(const QString &pluginID) |
(自 YSS 0.13.0 引入) QString | getProjectConfigPath() |
(自 YSS 0.13.0 引入) QDateTime | getProjectCreateTime() |
(自 YSS 0.13.0 引入) QString | getProjectDebugServerID() |
(自 YSS 0.13.0 引入) QString | getProjectDescription() |
(自 YSS 0.13.0 引入) QString | getProjectFolder() |
(自 YSS 0.13.0 引入) QString | getProjectIconPath() |
(自 YSS 0.13.0 引入) QDateTime | getProjectLastModifyTime() |
(自 YSS 0.13.0 引入) QString | getProjectName() |
(自 YSS 0.13.0 引入) QString | getProjectPath() |
(自 YSS 0.13.0 引入) Visindigo::General::Version | getProjectVersion() |
(自 YSS 0.13.0 引入) bool | initProject(const QString &folder, const QString &name) |
(自 YSS 0.13.0 引入) YSSCore::General::YSSProject::LoadProjectResult | loadProject(const QString &configPath) |
(自 YSS 0.13.0 引入) void | refreshLastModifyTime() |
(自 YSS 0.13.0 引入) void | removeAllEditorOpenedFiles() |
(自 YSS 0.13.0 引入) void | removeEditorOpenedFile(const QString &filePath) |
(自 YSS 0.13.0 引入) bool | saveProject(const QString &configPath = "") |
(自 YSS 0.13.0 引入) void | saveProjectConfigForPlugin(Visindigo::General::Plugin *plugin, const Visindigo::Utility::JsonConfig &config) |
(自 YSS 0.13.0 引入) void | saveProjectConfigForPlugin(const QString &pluginID, const Visindigo::Utility::JsonConfig &config) |
(自 YSS 0.13.0 引入) void | setEditorOpenedFiles(const QStringList &filePaths) |
(自 YSS 0.13.0 引入) void | setFocusedFile(const QString &abs_filePath) |
(自 YSS 0.13.0 引入) void | setProjectAuthor(const QString &author) |
(自 YSS 0.13.0 引入) void | setProjectDebugServerID(const QString &id) |
(自 YSS 0.13.0 引入) void | setProjectDescription(const QString &description) |
(自 YSS 0.13.0 引入) void | setProjectIconPath(const QString &iconPath) |
(自 YSS 0.13.0 引入) void | setProjectName(const QString &name) |
静态公开成员
(自 YSS 0.13.0 引入) YSSCore::General::YSSProject * | getCurrentProject() |
(自 YSS 0.13.0 引入) void | setCurrentProject(YSSCore::General::YSSProject *project) |
详细说明
YSSProject类代表YSS项目数据。值得注意的是,这个类目前是个非QObject类, 它是作为project.yssp文件的API操作以及读写使用,只负责数据操作, 不负责在程序中充当一个关于项目各项内容更改时的数据集散中心。
譬如,如果调用此类的setFocusedFile函数,它只会修改对应yssp文件中记录的数据, 不会真的使YSS编辑器变更当前打开的文件。这个需求需要用户调用FileServerManager 的changeFocusedFile信号进行。稍后,YSS会根据是否实际变更了打开的文件来读写YSSP。
YSSProject不是单例类,你可以根据需要在程序各个地方创建 任意多的YSSProject示例,但YSSProject语义上只允许一个YSSProject作为 “当前项目”,你可以通过getCurrentProject和setCurrentProject读写它。当前项目 可以为nullptr,代表当前没有打开任何项目。
要从本类直接初始化一个YSS项目,请参见initProject函数的说明。
成员类型文档
[since YSS 0.13.0] enum YSSProject::LoadProjectResult
| Constant | Value | Description |
|---|---|---|
YSSCore::General::YSSProject::Unknown | 0 | 未知的加载结果 |
YSSCore::General::YSSProject::Success | 1 | 加载成功 |
YSSCore::General::YSSProject::ParseError | 2 | 项目的JSON格式有误 |
YSSCore::General::YSSProject::InvalidConfig | 3 | 项目的JSON格式无误,但配置无效 |
这个enum 从 YSS 0.13.0 开始支持。
成员函数文档
[since YSS 0.13.0] YSSProject::YSSProject()
构造函数,创建一个空的项目
这个function 从 YSS 0.13.0 开始支持。
[virtual noexcept, since YSS 0.13.0] YSSProject::~YSSProject()
析构函数
这个function 从 YSS 0.13.0 开始支持。
[since YSS 0.13.0] void YSSProject::addEditorOpenedFile(const QString &filePath)
filePath 编辑器打开的文件路径,绝对路径或相对于项目文件夹的相对路径均可。
向项目中添加一个编辑器打开的文件路径。如果这个路径最终落在项目文件夹内,则 转换为相对路径存储,否则以绝对路径存储。
这个API和YSSCore::Editor::FileServerManager中的编辑器打开文件列表是分离的。 它只是单纯地修改项目文件中的数据,告诉项目这个文件被打开了,但它并不会真的使编辑器打开这个文件。
这个function 从 YSS 0.13.0 开始支持。
[static, since YSS 0.13.0] YSSCore::General::YSSProject *YSSProject::getCurrentProject()
return 当前项目的实例指针。
这个function 从 YSS 0.13.0 开始支持。
[since YSS 0.13.0] QString YSSProject::getFocusedFile()
return 项目中编辑器当前聚焦的文件路径。
这个function 从 YSS 0.13.0 开始支持。
[since YSS 0.13.0] QString YSSProject::getFocusedFileName()
return 项目中编辑器当前聚焦的文件的文件名(不带路径)。
这个function 从 YSS 0.13.0 开始支持。
[since YSS 0.13.0] QString YSSProject::getProjectAuthor()
return 项目作者设置。
这个function 从 YSS 0.13.0 开始支持。
[since YSS 0.13.0] Visindigo::Utility::JsonConfig YSSProject::getProjectConfigForPlugin(Visindigo::General::Plugin *plugin)
return 项目中为指定插件 plugin 保存的配置数据。
请注意,获取配置数据并修改后,需要通过saveProjectConfigForPlugin重新设置到项目里。
这个function 从 YSS 0.13.0 开始支持。
[since YSS 0.13.0] Visindigo::Utility::JsonConfig YSSProject::getProjectConfigForPlugin(const QString &pluginID)
return 项目中为指定插件 pluginID 保存的配置数据。这个重载是按插件ID而非指针索引的。
请注意,获取配置数据并修改后,需要通过saveProjectConfigForPlugin重新设置到项目里。
这个function 从 YSS 0.13.0 开始支持。
[since YSS 0.13.0] QString YSSProject::getProjectConfigPath()
return 当前项目的配置文件路径。 如果项目加载时是有效的,那这个返回值就等同于设置值。 即,它是绝对路径还是相对路径取决于设置时的原样。
Warning: 这个函数从0.17开始弃用,因为功能与getProjectPath()重复。
这个function 从 YSS 0.13.0 开始支持。
[since YSS 0.13.0] QDateTime YSSProject::getProjectCreateTime()
return 项目创建时间
这个function 从 YSS 0.13.0 开始支持。
[since YSS 0.13.0] QString YSSProject::getProjectDebugServerID()
return 项目设置的调试服务器ID。
由于YSS项目目前假定只面向那些编码项目,而编码项目 或多或少需要调试功能,因此提供了这个API。
这个function 从 YSS 0.13.0 开始支持。
[since YSS 0.13.0] QString YSSProject::getProjectDescription()
获得项目描述
这个function 从 YSS 0.13.0 开始支持。
[since YSS 0.13.0] QString YSSProject::getProjectFolder()
return 当前项目的文件夹路径。
与getProjectPath有所不同的是,这个函数固定按 绝对路径返回。
这个function 从 YSS 0.13.0 开始支持。
[since YSS 0.13.0] QString YSSProject::getProjectIconPath()
return 当前项目的图标路径。
这个图标路径忠实返回项目文件设置的值,不管他 是否真的有效,以及是什么格式的路径。
这个function 从 YSS 0.13.0 开始支持。
[since YSS 0.13.0] QDateTime YSSProject::getProjectLastModifyTime()
return 项目上次修改时间
这个function 从 YSS 0.13.0 开始支持。
[since YSS 0.13.0] QString YSSProject::getProjectName()
获得项目名称
这个function 从 YSS 0.13.0 开始支持。
[since YSS 0.13.0] QString YSSProject::getProjectPath()
return 当前项目的配置文件路径。
如果项目加载时是有效的,那这个返回值就等同于设置值。 即,它是绝对路径还是相对路径取决于设置时的原样。
这个function 从 YSS 0.13.0 开始支持。
[since YSS 0.13.0] Visindigo::General::Version YSSProject::getProjectVersion()
return 项目的版本号。从initProject初始化时,默认初始化为0.1.
这个function 从 YSS 0.13.0 开始支持。
[since YSS 0.13.0] bool YSSProject::initProject(const QString &folder, const QString &name)
在 folder 指定的文件夹初始化项目,名称为 name
如果 folder 不存在,那么会自动创建沿途所有不存在的文件夹。
如果 folder 不为空,会创建失败。
只要可以创建,这函数执行之后,configPath就被自动设置为指定的位置。
如果要通过YSSProject初始化YSS项目,一般推荐首先调用此函数以建立项目文件夹, 稍后再进行其他初始化操作。
return 是否成功初始化项目
这个function 从 YSS 0.13.0 开始支持。
[since YSS 0.13.0] YSSCore::General::YSSProject::LoadProjectResult YSSProject::loadProject(const QString &configPath)
从 configPath 加载YSS项目
这个function 从 YSS 0.13.0 开始支持。
[since YSS 0.13.0] void YSSProject::refreshLastModifyTime()
刷新项目的最后修改时间。它被直接刷新为调用此函数的时间。
这个function 从 YSS 0.13.0 开始支持。
[since YSS 0.13.0] void YSSProject::removeAllEditorOpenedFiles()
从项目中移除所有编辑器打开的文件路径。 这个API和YSSCore::Editor::FileServerManager中的编辑器打开文件列表是分离的。 它只是单纯地修改项目文件中的数据,告诉项目没有文件被打开了,但它并不会真的使编辑器关闭所有文件。
这个function 从 YSS 0.13.0 开始支持。
[since YSS 0.13.0] void YSSProject::removeEditorOpenedFile(const QString &filePath)
filePath 编辑器打开的文件路径,绝对路径或相对于项目文件夹的相对路径均可。
移除项目中一个编辑器打开的文件路径。
这个API和YSSCore::Editor::FileServerManager中的编辑器打开文件列表是分离的。 它只是单纯地修改项目文件中的数据,告诉项目这个文件被关闭了,但它并不会真的使编辑器关闭这个文件。
这个function 从 YSS 0.13.0 开始支持。
[since YSS 0.13.0] bool YSSProject::saveProject(const QString &configPath = "")
保存项目。 configPath 默认为空,代表在加载位置原地保存。如果configPath 为其他值,就相当于另存为。 return 是否保存成功
这个function 从 YSS 0.13.0 开始支持。
[since YSS 0.13.0] void YSSProject::saveProjectConfigForPlugin(Visindigo::General::Plugin *plugin, const Visindigo::Utility::JsonConfig &config)
为指定插件 plugin 保存具有 config 的数据。
它被存储在YSSP文件的MetaData节点下。
这个function 从 YSS 0.13.0 开始支持。
[since YSS 0.13.0] void YSSProject::saveProjectConfigForPlugin(const QString &pluginID, const Visindigo::Utility::JsonConfig &config)
为指定插件 pluginID 保存具有 config 的数据。这个重载是按插件ID而非指针索引的。
它被存储在YSSP文件的MetaData节点下。
这个function 从 YSS 0.13.0 开始支持。
[static, since YSS 0.13.0] void YSSProject::setCurrentProject(YSSCore::General::YSSProject *project)
设置当前项目实例为 project 。
这个function 从 YSS 0.13.0 开始支持。
[since YSS 0.13.0] void YSSProject::setEditorOpenedFiles(const QStringList &filePaths)
filePaths 编辑器打开的文件路径列表,绝对路径或相对于项目文件夹的相对路径均可。
有关其中每个文件路径的说明,请参见addEditorOpenedFile函数。
这个API和YSSCore::Editor::FileServerManager中的编辑器打开文件列表是分离的。 它只是单纯地修改项目文件中的数据,告诉项目这些文件被打开了,但它并不会真的使编辑器打开这些文件。
这个function 从 YSS 0.13.0 开始支持。
[since YSS 0.13.0] void YSSProject::setFocusedFile(const QString &abs_filePath)
abs_filePath 编辑器聚焦的文件路径,绝对路径或相对于项目文件夹的相对路径均可。
设置项目中编辑器当前聚焦的文件路径。
这个API和YSSCore::Editor::FileServerManager::focusFile信号无关 它只是单纯地修改项目文件中的数据,告诉项目这个文件被聚焦了,但它并不会真的使编辑器聚焦这个文件。
如果你希望YSS更改聚焦的文件,应该使用上面提到的这个信号。
这个function 从 YSS 0.13.0 开始支持。
[since YSS 0.13.0] void YSSProject::setProjectAuthor(const QString &author)
设置项目作者为 author
这个function 从 YSS 0.13.0 开始支持。
[since YSS 0.13.0] void YSSProject::setProjectDebugServerID(const QString &id)
设置项目的调试服务器ID为 id
由于YSS项目目前假定只面向那些编码项目,而编码项目 或多或少需要调试功能,因此提供了这个API。
这个function 从 YSS 0.13.0 开始支持。
[since YSS 0.13.0] void YSSProject::setProjectDescription(const QString &description)
设置项目描述为 description
这个function 从 YSS 0.13.0 开始支持。
[since YSS 0.13.0] void YSSProject::setProjectIconPath(const QString &iconPath)
设置项目图标路径为 iconPath
这个function 从 YSS 0.13.0 开始支持。
[since YSS 0.13.0] void YSSProject::setProjectName(const QString &name)
设置项目名称为 name
这个function 从 YSS 0.13.0 开始支持。