IDocument Class

(Core::IDocument)

The IDocument class describes a document that can be saved and reloaded. More...

Header: #include <IDocument>
Inherited By:

VcsBase::Internal::SubmitEditorFile

Public Types

enum ChangeTrigger { TriggerInternal, TriggerExternal }
enum ChangeType { TypeContents, TypePermissions, TypeRemoved }
enum OpenResult { Success, ReadError, CannotHandle }
enum ReloadBehavior { BehaviorAsk, BehaviorSilent }
enum ReloadFlag { FlagReload, FlagIgnore }
enum ReloadSetting { AlwaysAsk, ReloadUnmodified, IgnoreAll }

Public Functions

IDocument(QObject *parent = 0)
~IDocument() override
bool autoSave(QString *errorString, const QString &filePath)
virtual void checkPermissions()
virtual QByteArray contents() const
QString displayName() const
virtual QString fallbackSaveAsFileName() const
virtual QString fallbackSaveAsPath() const
const Utils::FileName &filePath() const
bool hasWriteWarning() const
Id id() const
InfoBar *infoBar()
virtual bool isFileReadOnly() const
virtual bool isModified() const
virtual bool isSaveAsAllowed() const
bool isSuspendAllowed() const
bool isTemporary() const
QString mimeType() const
virtual OpenResult open(QString *errorString, const QString &fileName, const QString &realFileName)
QString preferredDisplayName() const
virtual bool reload(QString *errorString, ReloadFlag flag, ChangeType type)
virtual ReloadBehavior reloadBehavior(ChangeTrigger state, ChangeType type) const
void removeAutoSaveFile()
virtual bool save(QString *errorString, const QString &fileName = QString(), bool autoSave = false)
virtual bool setContents(const QByteArray &contents)
virtual void setFilePath(const Utils::FileName &filePath)
void setId(Id id)
void setMimeType(const QString &mimeType)
void setPreferredDisplayName(const QString &name)
void setRestoredFrom(const QString &name)
void setSuspendAllowed(bool value)
void setTemporary(bool temporary)
void setWriteWarning(bool has)
virtual bool shouldAutoSave() const
QString uniqueDisplayName() const

Signals

void aboutToReload()
void changed()
void contentsChanged()
void filePathChanged(const Utils::FileName &oldName, const Utils::FileName &newName)
void mimeTypeChanged()
void reloadFinished(bool success)

Detailed Description

The IDocument class describes a document that can be saved and reloaded.

The most common use for implementing an IDocument subclass, is as a document for an IEditor implementation. Multiple editors can work in the same document instance, so the IDocument subclass should hold all data and functions that are independent from the specific IEditor instance, for example the content, highlighting information, the name of the corresponding file, and functions for saving and reloading the file.

Each IDocument subclass works only with the corresponding IEditor subclasses that it was designed to work with.

Member Type Documentation

enum IDocument::ChangeTrigger

enum IDocument::ChangeType

enum IDocument::OpenResult

The OpenResult enum describes whether a file was successfully opened.

ConstantValueDescription
Core::IDocument::Success0The file was read successfully and can be handled by this document type.
Core::IDocument::ReadError1The file could not be opened for reading, either because it does not exist or because of missing permissions.
Core::IDocument::CannotHandle2This document type could not handle the file content.

enum IDocument::ReloadBehavior

enum IDocument::ReloadFlag

enum IDocument::ReloadSetting

Member Function Documentation

IDocument::IDocument(QObject *parent = 0)

Default constructs an instance of IDocument.

IDocument::~IDocument()

Destroys the instance of IDocument.

[signal] void IDocument::aboutToReload()

bool IDocument::autoSave(QString *errorString, const QString &filePath)

[signal] void IDocument::changed()

[virtual] void IDocument::checkPermissions()

[virtual] QByteArray IDocument::contents() const

Returns the current contents of the document. The base implementation returns an empty QByteArray.

See also setContents().

[signal] void IDocument::contentsChanged()

QString IDocument::displayName() const

Returns the string to display for this document, e.g. in the open document combo box and pane. The returned string has the following priority: * Unique display name set by the document model * Preferred display name set by the owner * Base name of the document's file name

See also setDisplayName().

[virtual] QString IDocument::fallbackSaveAsFileName() const

[virtual] QString IDocument::fallbackSaveAsPath() const

const Utils::FileName &IDocument::filePath() const

Returns the absolute path of the file that this document refers to. May be empty for non-file documents.

See also setFilePath().

[signal] void IDocument::filePathChanged(const Utils::FileName &oldName, const Utils::FileName &newName)

bool IDocument::hasWriteWarning() const

Id IDocument::id() const

See also setId().

InfoBar *IDocument::infoBar()

[virtual] bool IDocument::isFileReadOnly() const

[virtual] bool IDocument::isModified() const

[virtual] bool IDocument::isSaveAsAllowed() const

bool IDocument::isSuspendAllowed() const

bool IDocument::isTemporary() const

Returns if the document is a temporary that should for example not be considered when saving/restoring the session state, recent files, etc. Defaults to false.

See also setTemporary().

QString IDocument::mimeType() const

See also setMimeType().

[signal] void IDocument::mimeTypeChanged()

[virtual] OpenResult IDocument::open(QString *errorString, const QString &fileName, const QString &realFileName)

Used to load a file if this document is part of an IEditor implementation, when the editor is opened. If the editor is opened from an auto save file, realFileName is the name of the auto save that should be loaded, and fileName is the file name of the resulting file. In that case, the contents of the auto save file should be loaded, the file name of the IDocument should be set to fileName, and the document state be set to modified. If the editor is opened from a regular file, fileName and realFileName are the same. Use errorString to return an error message, if this document can not handle the file contents. Returns whether the file was opened and read successfully.

QString IDocument::preferredDisplayName() const

See also setPreferredDisplayName().

[virtual] bool IDocument::reload(QString *errorString, ReloadFlag flag, ChangeType type)

[virtual] ReloadBehavior IDocument::reloadBehavior(ChangeTrigger state, ChangeType type) const

[signal] void IDocument::reloadFinished(bool success)

void IDocument::removeAutoSaveFile()

[virtual] bool IDocument::save(QString *errorString, const QString &fileName = QString(), bool autoSave = false)

[virtual] bool IDocument::setContents(const QByteArray &contents)

Used for example by EditorManager::openEditorWithContents() to set the contents of this document. Returns if setting the contents was successful. The base implementation does nothing and returns false.

See also contents().

[virtual] void IDocument::setFilePath(const Utils::FileName &filePath)

Set absolute file path for this file to filePath. Can be empty. The default implementation sets the file name and sends filePathChanged() and changed() signals. Can be reimplemented by subclasses to do more.

See also filePath().

void IDocument::setId(Id id)

See also id().

void IDocument::setMimeType(const QString &mimeType)

See also mimeType().

void IDocument::setPreferredDisplayName(const QString &name)

Sets the string that is displayed for this document, e.g. in the open document combo box and pane, to name. Defaults to the file name of the file path for this document. You can reset the display name to the default by passing an empty string.

See also preferredDisplayName(), displayName(), and filePath().

void IDocument::setRestoredFrom(const QString &name)

void IDocument::setSuspendAllowed(bool value)

See also isSuspendAllowed().

void IDocument::setTemporary(bool temporary)

Sets if the document is temporary.

See also isTemporary().

void IDocument::setWriteWarning(bool has)

See also hasWriteWarning().

[virtual] bool IDocument::shouldAutoSave() const

QString IDocument::uniqueDisplayName() const