QCodeEdit
2.2
|
The base class for document editing command. More...
Classes | |
struct | TextCommandData |
Public Types | |
enum | Command { None, Insert, Erase, Replace, Custom } |
Protected Attributes | |
bool | m_state |
bool | m_first |
QDocument * | m_doc |
int | m_redoOffset |
int | m_undoOffset |
QDocumentCommand (Command c, QDocument *d, QDocumentCommand *p=0) | |
ctor | |
virtual | ~QDocumentCommand () |
dtor | |
virtual int | id () const |
virtual bool | mergeWith (const QUndoCommand *command) |
Attempts to merge with another command. | |
virtual void | redo () |
Redo the command. | |
virtual void | undo () |
Undo the command. | |
bool | isSilent () const |
void | setSilent (bool y) |
Set whether the command is silent. | |
bool | keepAnchor () const |
void | setKeepAnchor (bool y) |
Set whether the command preserve selection of the target cursor. | |
void | setTargetCursor (QDocumentCursorHandle *h) |
Set the target cursor. | |
void | setRedoOffset (int off) |
? | |
void | setUndoOffset (int off) |
? | |
static bool | isAutoUpdated (const QDocumentCursorHandle *h) |
static void | enableAutoUpdate (QDocumentCursorHandle *h) |
Enable auto update for a given cursor. | |
static void | disableAutoUpdate (QDocumentCursorHandle *h) |
Disable auto update for a given cursor. | |
static void | discardHandlesFromDocument (QDocument *d) |
void | markRedone (QDocumentLineHandle *h, bool firstTime) |
Change the modification status of a line. | |
void | markUndone (QDocumentLineHandle *h) |
Change the modifiaction status of a line. | |
void | updateTarget (int l, int offset) |
Update the target cursor. | |
void | insertText (int line, int pos, const QString &s) |
Insert some text. | |
void | removeText (int line, int pos, int length) |
Remove some text. | |
void | insertLines (int after, const QList< QDocumentLineHandle * > &l) |
Insert some lines in the host document. | |
void | removeLines (int after, int n) |
Remove some lines from the host document. | |
void | updateCursorsOnInsertion (int line, int column, int prefixLength, int numLines, int suffixLength) |
void | updateCursorsOnDeletion (int line, int column, int prefixLength, int numLines, int suffixLength) |
The base class for document editing command.
|
virtual |
|
protected |
Insert some lines in the host document.
after | where to insert lines (line number) |
l | list of lines to insert |
This helper method is provided so that subclasses may actually modify the document contents without using too much private API (QDocumentLineHandle is part of the private API...)
Referenced by QDocumentInsertCommand::redo(), and QDocumentEraseCommand::undo().
|
protected |
Insert some text.
line | target line |
pos | target text position within line |
s | text to insert |
This helper method is provided so that subclasses may actually modify the document contents without using private API.
Referenced by QDocumentInsertCommand::redo(), QDocumentEraseCommand::redo(), QDocumentInsertCommand::undo(), and QDocumentEraseCommand::undo().
|
static |
bool QDocumentCommand::isSilent | ( | ) | const |
Silent command do not update the editing cursor of the host document.
bool QDocumentCommand::keepAnchor | ( | ) | const |
When this property is true, cursor adjustement upon command execution will preserve the anchor of target cursor and only alter its position thus keeping a selection.
|
virtual |
Attempts to merge with another command.
Command merging is not implemented.
Reimplemented in QDocumentEraseCommand, and QDocumentInsertCommand.
|
protected |
Remove some lines from the host document.
after | where to remove lines (line number) |
n | number of lines to remove |
This helper method is provided so that subclasses may actually modify the document contents without using the private API.
Referenced by QDocumentEraseCommand::redo(), and QDocumentInsertCommand::undo().
|
protected |
Remove some text.
line | target line |
pos | target text position within line |
length | length of the text to remove |
This helper method is provided so that subclasses may actually modify the document contents without using private API.
Referenced by QDocumentInsertCommand::redo(), QDocumentEraseCommand::redo(), QDocumentInsertCommand::undo(), and QDocumentEraseCommand::undo().
void QDocumentCommand::setKeepAnchor | ( | bool | y | ) |
Set whether the command preserve selection of the target cursor.
void QDocumentCommand::setTargetCursor | ( | QDocumentCursorHandle * | h | ) |
Set the target cursor.
The position of the target cursor is update upon undo() and redo()
Referenced by QSnippetInsertionCommand::addCommand(), and QSnippetInsertionCommand::removeCommand().
|
protected |
Update the target cursor.
l | target line |
offset | target text position within target line |
References QDocumentLine::length(), QDocument::line(), and QDocument::lines().
Referenced by QDocumentInsertCommand::redo(), QDocumentEraseCommand::redo(), QDocumentInsertCommand::undo(), and QDocumentEraseCommand::undo().