- Extending Qt Creator Manual
- IEditor
- Extending Qt Creator Manual 6.0.2

# IEditor Class

class Core::IEditor

The IEditor class provides an interface for editing an open document in Qt Creator. More...

Header: | #include <coreplugin/editormanager/ieditor.h>
Inherits: | Core::IContext

- List of all members, including inherited members

## Public Functions

| IEditor()
virtual int | currentColumn() const
virtual int | currentLine() const
virtual Core::IDocument * | document() const = 0
virtual Core::IEditor * | duplicate()
bool | duplicateSupported() const
virtual void | gotoLine(int line, int column = 0, bool centerLine = true)
virtual bool | isDesignModePreferred() const
virtual void | restoreState(const QByteArray &state)
virtual QByteArray | saveState() const
void | setDuplicateSupported(bool duplicatesSupported)
virtual QWidget * | toolBar() = 0

## Detailed Description

IEditor instances are usually created by a corresponding IEditorFactory.

An IEditor instance provides an editor widget for a single IDocument via the IContext::widget() method. If the the editor type supports it, multiple editors can be opened for the same document. Multiple IEditor instances share ownership of the same IDocument instance in that case.

The IEditor::toolBar() is integrated into the toolbar above the editor widget, next to the document drop down.

See also Core::IEditorFactory and Core::EditorManager.

## Member Function Documentation

### IEditor::IEditor()

Creates an IEditor.

Implementations must create a corresponding document, or share an existing document with another IEditor.

### `[virtual]` int IEditor::currentColumn() const

Returns the current column in the document, if appropriate. The default implementation returns `0`. Column numbers start at `0` for the first column.

See also currentLine() and gotoLine().

### `[virtual]` int IEditor::currentLine() const

Returns the current line in the document, if appropriate. The default implementation returns `0`. Line numbers start at `1` for the first line.

See also currentColumn() and gotoLine().

### `[pure virtual]` Core::IDocument *IEditor::document() const

Returns the document that is edited by this editor. The editor owns the document. If the editor supports splitting, all editors created with duplicate() share ownership of the document.

This must never return `nullptr`.

### `[virtual]` Core::IEditor *IEditor::duplicate()

Returns a duplicate of the editor, for example when the user splits the editor view. The default implementation returns `nullptr`.

See also duplicateSupported().

### bool IEditor::duplicateSupported() const

Returns whether duplication is supported, for example when the user splits the editor view.

See also duplicate() and setDuplicateSupported().

### `[virtual]` void IEditor::gotoLine(int line, int column = 0, bool centerLine = true)

Goes to line and column in the document. If centerLine is `true`, centers the line in the editor.

Line numbers start at `1` for the first line, column numbers start at `0` for the first column.

The default implementation does nothing.

See also currentLine() and currentColumn().

### `[virtual]` bool IEditor::isDesignModePreferred() const

Returns whether the document should be opened in the Design mode by default. This requires design mode to support that document type. The default implementation returns `false`.

### `[virtual]` void IEditor::restoreState(const QByteArray &state)

Restores the state of the editor. The default implementation does nothing.

See also saveState().

### `[virtual]` QByteArray IEditor::saveState() const

Returns the state of the editor, like scroll and cursor position, as a QByteArray. This is used for restoring the state for example after the document was closed (manually or automatically) and re-opened later. The default implementation returns an empty QByteArray.

See also restoreState().

### void IEditor::setDuplicateSupported(bool duplicatesSupported)

Sets whether duplication is supported to duplicatesSupported.

The default is `false`.

See also duplicate() and duplicateSupported().

### `[pure virtual]` QWidget *IEditor::toolBar()

Returns the toolbar for the editor.

The editor toolbar is located at the top of the editor view. The editor toolbar is context sensitive and shows items relevant to the document currently open in the editor.