DocumentManager 类

Core::DocumentManager

DocumentManager 类管理一组文档。 更多...

头文件 #include <coreplugin/documentmanager.h>
继承 QObject

公共槽

静态公共成员

voidaddDocument(Core::IDocument *document, bool addWatcher = true)
voidaddDocuments(const QList<Core::IDocument *> &documents, bool addWatcher = true)
voidaddToRecentFiles(const Utils::FilePath &filePath, Utils::Id editorId = {})
Utils::FilePathdefaultLocationForNewFiles()
voidexpectFileChange(const Utils::FilePath &filePath)
Utils::FilePathfileDialogInitialDirectory()
Utils::FilePathfileDialogLastVisitedDirectory()
Utils::FilePathfilePathKey(const Utils::FilePath &filePath, Core::DocumentManager::ResolveMode resolveMode)
Utils::FilePathsgetOpenFileNames(const QString &filters, const Utils::FilePath &pathIn = {}, QString *selectedFilter = nullptr, QFileDialog::Options options = {})
Utils::FilePathgetSaveAsFileName(const Core::IDocument *document)
QList<Core::IDocument *>modifiedDocuments()
Utils::FilePathprojectsDirectory()
QList<Core::DocumentManager::RecentFile>recentFiles()
boolremoveDocument(Core::IDocument *document)
voidrenamedFile(const Utils::FilePath &from, const Utils::FilePath &to)
boolsaveAllModifiedDocuments(const QString &message = QString(), bool *canceled = nullptr, const QString &alwaysSaveMessage = QString(), bool *alwaysSave = nullptr, QList<Core::IDocument *> *failedToClose = nullptr)
boolsaveAllModifiedDocumentsSilently(bool *canceled = nullptr, QList<Core::IDocument *> *failedToClose = nullptr)
boolsaveModifiedDocument(Core::IDocument *document, const QString &message = QString(), bool *canceled = nullptr, const QString &alwaysSaveMessage = QString(), bool *alwaysSave = nullptr, QList<Core::IDocument *> *failedToClose = nullptr)
boolsaveModifiedDocumentSilently(Core::IDocument *document, bool *canceled = nullptr, QList<Core::IDocument *> *failedToClose = nullptr)
boolsaveModifiedDocuments(const QList<Core::IDocument *> &documents, const QString &message = QString(), bool *canceled = nullptr, const QString &alwaysSaveMessage = QString(), bool *alwaysSave = nullptr, QList<Core::IDocument *> *failedToClose = nullptr)
boolsaveModifiedDocumentsSilently(const QList<Core::IDocument *> &documents, bool *canceled = nullptr, QList<Core::IDocument *> *failedToClose = nullptr)
voidsetDefaultLocationForNewFiles(const Utils::FilePath &location)
voidsetFileDialogLastVisitedDirectory(const Utils::FilePath &directory)
voidsetProjectsDirectory(const Utils::FilePath &directory)
voidsetUseProjectsDirectory(bool useProjectsDirectory)
voidunexpectFileChange(const Utils::FilePath &filePath)
booluseProjectsDirectory()

详细说明

DocumentManager 服务监视一组 IDocument 对象。

本节使用以下术语

  • 文件指存储在磁盘上并带有名称的一组数据(即计算机术语中文件的常规含义)。
  • 文档在 Qt Creator 中打开内容。如果它与文件对应,它可能与文件不同,因为已经对其进行了修改。但文档可能根本不对应于文件。例如,diff 查看器文档或 Git 确认或日志记录是由 Qt Creator 请求创建和显示的。
  • 编辑器提供用户实际可见的文档视图,并可能允许编辑文档。多个编辑器可以打开同一文档的视图。

插件应在文档管理服务中注册它们处理的文档。《a href="core-idocument.html" translate="no">IDocument 对象指向的文件将在文件系统级别进行监视。如果磁盘上的文件发生变化,将相应调整 IDocument 对象的状态。退出应用程序时,将提醒用户保存所有已修改的文档。

集合中的不同 IDocument 对象可以指向文件系统中的同一文件。可以使用 Core::FileChangeBlocker 类阻止 IDocument 的监视。

expectFileChange()unexpectFileChange() 函数将文件更改标记为预期。在预期的文件更改中,所有 IDocument 对象都会收到通知以重新加载自身。

DocumentManager 服务还提供了保存文档的便利函数,如 saveModifiedDocuments() 和 saveModifiedDocumentsSilently()。它们会向用户提供一个对话框,列出所有已修改的文档,并询问他们希望保存哪个文档。

该服务还管理要显示给用户的最近文件列表。

另请参阅addToRecentFiles() 和 recentFiles()。

成员函数文档

[静态] void DocumentManager::addDocument(Core::IDocument *document, bool addWatcher = true)

document 添加到集合中。如果 addWatchertrue(默认值),则文档的文件将添加到文件系统监视器中,该监视器会通知文档管理器有关文件更改。

[静态] void DocumentManager::addDocuments(const QList<Core::IDocument *> &documents, bool addWatcher = true)

将一系列 documents 添加到集合中。如果 addWatchertrue(默认值),则文档的文件将被添加到文件系统监视器中,该监视器会通知文档管理器有关文件更改。

[静态方法] void DocumentManager::addToRecentFiles(const Utils::FilePath &filePath, Utils::Id editorId = {})

将文件路径 filePath 添加到最近文件列表中。如果可能,将待重新打开的文件与指定 editorId 的编辑器关联。默认 editorId 为空 ID,以便 Qt Creator 自动确定最佳编辑器。

[槽函数] void DocumentManager::clearRecentFiles()

清除最近文件列表。仅在用户选择清除列表时才应由核心插件调用。

[静态方法] Utils::FilePath DocumentManager::defaultLocationForNewFiles()

返回新文件的默认位置。

相关函数setDefaultLocationForNewFiles() 和 fileDialogInitialDirectory

[静态方法] void DocumentManager::expectFileChange(const Utils::FilePath &filePath)

filePath 的后续更改视为预期的文件更改。

相关函数unexpectFileChange

[静态方法] Utils::FilePath DocumentManager::fileDialogInitialDirectory()

返回新文件对话框的初始目录。如果与文件关联了当前文档,则使用该文档。如果没有默认新文件位置,则使用最后一次访问的目录。

相关函数setFileDialogLastVisitedDirectorysetDefaultLocationForNewFiles

[静态方法] Utils::FilePath DocumentManager::fileDialogLastVisitedDirectory()

返回文件对话框的上次访问目录。

相关函数setFileDialogLastVisitedDirectoryfileDialogInitialDirectory

[静态方法] Utils::FilePath DocumentManager::filePathKey(const Utils::FilePath &filePath, Core::DocumentManager::ResolveMode resolveMode)

filePath 返回一个保证清洗过的绝对文件路径。如果 resolveMode 是 ResolveLinks,则解析符号链接。

[静态方法] Utils::FilePaths DocumentManager::getOpenFileNames(const QString &filters, const Utils::FilePath &pathIn = {}, QString *selectedFilter = nullptr, QFileDialog::Options options = {})

提示用户输入一组要打开的文件名。参数 filtersselectedFilter 的解释与 QFileDialog::getOpenFileNames() 相同。如果未由用户策略覆盖,pathIn 指定在对话框中打开的路径。

options 参数包含有关如何运行对话框的各种选项。有关可以传递的标志的更多信息,请参阅 QFileDialog::Option 枚举。

[静态] Utils::FilePath DocumentManager::getSaveAsFileName(const Core::IDocument *document)

提示用户为 document 输入新的文件名(另存为)。

[静态] QList<Core::IDocument *> DocumentManager::modifiedDocuments()

返回已修改的 IDocument 对象列表。

[静态] Utils::FilePath DocumentManager::projectsDirectory()

返回项目目录。默认为 HOME。

另见setProjectsDirectory() 和 setUseProjectsDirectory()。

[静态] QList<Core::DocumentManager::RecentFile> DocumentManager::recentFiles()

返回最近打开的文件列表。

[静态] bool DocumentManager::removeDocument(Core::IDocument *document)

从集合中移除 document

如果文档在 addDocument() 中设置了 addWatcher 参数,则返回 true

[静态] void DocumentManager::renamedFile(const Utils::FilePath &from, const Utils::FilePath &to)

通知文档管理器,在 Qt Creator 中已将文件从 from 重命名为 to

在磁盘上的实际重命名操作后立即调用(即在文件系统监视器可以在下一个事件循环运行期间报告事件之前)。

from 需要是绝对文件路径。这将通过调用 IDocument::setFilePath() 通知指向该文件的所有 IDocument 对象,并通过更新缓存的时间和信息以避免使用户出现“文件已被删除”的弹出窗口。

[静态] bool DocumentManager::saveAllModifiedDocuments(const QString &message = QString(), bool *canceled = nullptr, const QString &alwaysSaveMessage = QString(), bool *alwaysSave = nullptr, QList<Core::IDocument *> *failedToClose = nullptr)

向用户展示所有已修改的文档的对话框,并询问他们哪些应该保存。

此方法可能向用户显示额外的对话框,例如,如果文件不可写入。

可以使用 message 设置对话框文本。如果用户取消了他们与之交互的任何一个对话框,则 canceled 被设置,方法返回 false

alwaysSaveMessage 在对话框中显示一个额外的复选框。如果设置,则该复选框的状态将写入 alwaysSave

如果传递给该方法,则 failedToClose 返回无法保存的文档列表。

[静态] bool DocumentManager::saveAllModifiedDocumentsSilently(bool *canceled = nullptr, QList<Core::IDocument *> *failedToClose = nullptr)

静默保存所有文档,如果所有修改过的文档都成功保存,则返回 true

此方法试图避免向用户显示对话框,但仍然可能这样做(例如,如果文件不可写入)。

如果用户取消了他们与之交互的任何对话框,则 canceled 被设置。如果传递给方法,则 failedToClose 返回无法保存的文档列表。

[静态] bool DocumentManager::saveModifiedDocument(Core::IDocument *document, const QString &message = QString(), bool *canceled = nullptr, const QString &alwaysSaveMessage = QString(), bool *alwaysSave = nullptr, QList<Core::IDocument *> *failedToClose = nullptr)

向用户展示一个包含 document 的对话框,并询问他们是否应该保存。

此方法可能向用户显示额外的对话框,例如,如果文件不可写入。

可以使用 message 设置对话框文本。如果用户取消了他们与之交互的任何一个对话框,则 canceled 被设置,方法返回 false

alwaysSaveMessage 在对话框中显示一个额外的复选框。如果设置,则该复选框的状态将写入 alwaysSave

如果传递给该方法,则 failedToClose 返回无法保存的文档列表。

[静态] bool DocumentManager::saveModifiedDocumentSilently(Core::IDocument *document, bool *canceled = nullptr, QList<Core::IDocument *> *failedToClose = nullptr)

静默保存 document 并返回 true 如果它已成功保存。

此方法试图避免向用户显示对话框,但仍然可能这样做(例如,如果文件不可写入)。

如果用户取消了他们与之交互的任何对话框,则 canceled 被设置。如果传递给方法,则 failedToClose 返回无法保存的文档列表。

[静态] bool DocumentManager::saveModifiedDocuments(const QList<Core::IDocument *> &documents, const QString &message = QString(), bool *canceled = nullptr, const QString &alwaysSaveMessage = QString(), bool *alwaysSave = nullptr, QList<Core::IDocument *> *failedToClose = nullptr)

向用户显示包含 documents 的对话框,并询问他们哪些应该被保存。

此方法可能向用户显示额外的对话框,例如,如果文件不可写入。

可以使用 message 设置对话框文本。如果用户取消了他们与之交互的任何一个对话框,则 canceled 被设置,方法返回 false

alwaysSaveMessage 在对话框中显示一个额外的复选框。如果设置,则该复选框的状态将写入 alwaysSave

如果传递给该方法,则 failedToClose 返回无法保存的文档列表。

[静态] bool DocumentManager::saveModifiedDocumentsSilently(const QList<Core::IDocument *> &documents, bool *canceled = nullptr, QList<Core::IDocument *> *failedToClose = nullptr)

静默保存 documents,如果所有文件都成功保存,则返回 true

此方法试图避免向用户显示对话框,但仍然可能这样做(例如,如果文件不可写入)。

如果用户取消了他们与之交互的任何对话框,则 canceled 被设置。如果传递给方法,则 failedToClose 返回无法保存的文档列表。

[静态] void DocumentManager::setDefaultLocationForNewFiles(const Utils::FilePath &location)

设置新文件的默认 位置

另请参阅defaultLocationForNewFiles

[静态] void DocumentManager::setFileDialogLastVisitedDirectory(const Utils::FilePath &directory)

设置文件对话框上次访问的 目录,该目录将在下一次使用时被记住。

另请参阅fileDialogLastVisitedDirectoryfileDialogInitialDirectory

[静态] void DocumentManager::setProjectsDirectory(const Utils::FilePath &directory)

设置项目的 目录

另请参阅projectsDirectoryuseProjectsDirectory

[静态] void DocumentManager::setUseProjectsDirectory(bool useProjectsDirectory)

设置是否要使用项目目录的 useProjectsDirectory

另请参阅projectsDirectoryuseProjectsDirectory

[静态] void DocumentManager::unexpectFileChange(const Utils::FilePath &filePath)

再次将 filePath 的所有更改视为意外。

另请参阅expectFileChange

[静态] bool DocumentManager::useProjectsDirectory()

返回是否要使用项目目录,或者用户是否选择使用当前目录。

另见setProjectsDirectory() 和 setUseProjectsDirectory()。

©2024年Qt公司有限公司提供的文档贡献均为各自所有者的版权。本处提供的文档受免费软件基金会发布的GNU免费文档许可协议第1.3版的条款约束。Qt及其相关标志是芬兰以及全球其他国家的Qt公司注册商标。所有其他商标均为各自所有者的财产。