QDocumentCommand Class Reference
[Document related classes]

The base class for document editing command. More...

Inheritance diagram for QDocumentCommand:

Inheritance graph
[legend]

List of all members.
 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.
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)

Classes

struct  TextCommandData

Public Types

enum  Command {
  None, Insert, Erase, Replace,
  Custom
}

Protected Attributes

bool m_state
bool m_first
QDocumentm_doc
int m_redoOffset
int m_undoOffset


Detailed Description

The base class for document editing command.

Member Function Documentation

int QDocumentCommand::id (  )  const [virtual]

Returns:
command identifier

void QDocumentCommand::insertLines ( int  after,
const QList< QDocumentLineHandle * > &  l 
) [protected]

Insert some lines in the host document.

Parameters:
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...)

References QDocument::impl().

Referenced by QDocumentInsertCommand::redo(), and QDocumentEraseCommand::undo().

void QDocumentCommand::insertText ( int  line,
int  pos,
const QString &  s 
) [protected]

Insert some text.

Parameters:
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.

References QDocument::impl(), QDocumentLineHandle::shiftOverlays(), and QDocumentLineHandle::textBuffer().

Referenced by QDocumentEraseCommand::redo(), QDocumentInsertCommand::redo(), QDocumentEraseCommand::undo(), and QDocumentInsertCommand::undo().

bool QDocumentCommand::isAutoUpdated ( const QDocumentCursorHandle *  h  )  [static]

Returns:
whether a given cursor is auto updated

bool QDocumentCommand::isSilent (  )  const

Returns:
whether the command is silent
Silent command do not update the editing cursor of the host document.

bool QDocumentCommand::mergeWith ( const QUndoCommand *  command  )  [virtual]

Attempts to merge with another command.

Command merging is not implemented.

Reimplemented in QDocumentInsertCommand, and QDocumentEraseCommand.

void QDocumentCommand::removeLines ( int  after,
int  n 
) [protected]

Remove some lines from the host document.

Parameters:
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.

References QDocument::impl().

Referenced by QDocumentEraseCommand::redo(), and QDocumentInsertCommand::undo().

void QDocumentCommand::removeText ( int  line,
int  pos,
int  length 
) [protected]

Remove some text.

Parameters:
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.

References QDocument::impl(), QDocumentLineHandle::shiftOverlays(), and QDocumentLineHandle::textBuffer().

Referenced by QDocumentEraseCommand::redo(), QDocumentInsertCommand::redo(), QDocumentEraseCommand::undo(), and QDocumentInsertCommand::undo().

void QDocumentCommand::setTargetCursor ( QDocumentCursorHandle *  h  ) 

Set the target cursor.

The position of the target cursor is update upon undo() and redo()

void QDocumentCommand::updateTarget ( int  l,
int  offset 
) [protected]

Update the target cursor.

Parameters:
l target line
offset target text position within target line

References QDocument::impl(), QDocumentLine::length(), QDocument::line(), and QDocument::lines().

Referenced by QDocumentEraseCommand::redo(), QDocumentInsertCommand::redo(), QDocumentEraseCommand::undo(), and QDocumentInsertCommand::undo().


The documentation for this class was generated from the following files:

Generated on Sun Feb 15 22:50:20 2009 for QCodeEdit by  doxygen 1.5.7.1