Instructs a builder object to create markup output.
More...
#include <grantlee/markupdirector.h>
|
| MarkupDirector (AbstractMarkupBuilder *builder) |
|
virtual | ~MarkupDirector () |
|
virtual QTextFrame::iterator | processBlock (QTextFrame::iterator it, const QTextBlock &block) |
|
virtual QTextFrame::iterator | processBlockContents (QTextFrame::iterator it, const QTextBlock &block) |
|
virtual QPair< QTextFrame::iterator, QTextBlock > | processBlockGroup (QTextFrame::iterator it, const QTextBlock &block, QTextBlockGroup *textBlockGroup) |
|
virtual QTextBlock::iterator | processCharTextObject (QTextBlock::iterator it, const QTextFragment &fragment, QTextObject *textObject) |
|
virtual void | processCustomFragment (const QTextFragment &fragment, QTextDocument const *doc) |
|
virtual void | processDocument (QTextDocument *doc) |
|
virtual QTextBlock::iterator | processFragment (QTextBlock::iterator it, const QTextFragment &fragment, QTextDocument const *doc) |
|
virtual QTextFrame::iterator | processFrame (QTextFrame::iterator it, QTextFrame *frame) |
|
virtual QTextBlock::iterator | processImage (QTextBlock::iterator it, const QTextImageFormat &imageFormat, QTextDocument *doc) |
|
virtual QPair< QTextFrame::iterator, QTextBlock > | processList (QTextFrame::iterator it, const QTextBlock &block, QTextList *textList) |
|
virtual QTextFrame::iterator | processObject (QTextFrame::iterator it, const QTextBlock &block, QTextObject *textObject) |
|
virtual QTextFrame::iterator | processTable (QTextFrame::iterator it, QTextTable *table) |
|
virtual void | processTableCell (const QTextTableCell &tableCell, QTextTable *table) |
|
|
enum | OpenElementValues {
None
, SuperScript
, SubScript
, Anchor
,
SpanForeground
, SpanBackground
, SpanFontFamily
, SpanFontPointSize
,
Strong
, Emph
, Underline
, StrikeOut
} |
|
The MarkupDirector is used with an implementation of AbstractMarkupBuilder to create a marked up document output.
Usage can be quite simple.
md->processDocument(
doc);
MarkupDirector(AbstractMarkupBuilder *builder)
int registerMetaType()
Registers the type RealType with the metatype system.
Or with a different builder:
md->processDocument(
doc);
Creates a simple marked up plain text document.
The MarkupDirector also provides API for processing just part of a QTextDocument, such as a QTextFrame or a QTextBlock. The appropriate method may then be called with an invalid iterator as appropriate.
md->processFrame(QTextFrame::iterator(),
frame);
The behaviour of the MarkupDirector can be customized by subclassing. Support for custom types can also be added by implementing the processCustomFragment method.
- See also
- Handling custom QTextObjects
- Author
- Stephen Kelly steve.nosp@m.ire@.nosp@m.gmail.nosp@m..com
Definition at line 92 of file markupdirector.h.
◆ OpenElementValues
Flags for the tags that may be open.
Enumerator |
---|
SuperScript | No tags are open.
|
SubScript | A superscript tag is open.
|
Anchor | A subscript tag is open.
|
SpanForeground | An anchor tag is open.
|
SpanBackground | A foreground altering span tag is open.
|
SpanFontFamily | A background altering span tag is open.
|
SpanFontPointSize | A font family altering span tag is open.
|
Strong | A font size altering span tag is open.
|
Emph | A strong tag is open.
|
Underline | A emphasis tag is open.
|
StrikeOut | An underline tag is open.
|
Definition at line 273 of file markupdirector.h.
◆ MarkupDirector()
◆ ~MarkupDirector()
virtual Grantlee::MarkupDirector::~MarkupDirector |
( |
| ) |
|
|
virtual |
◆ getElementsToClose()
virtual QSet< int > Grantlee::MarkupDirector::getElementsToClose |
( |
QTextBlock::iterator | it | ) |
const |
|
protectedvirtual |
Returns the tags that should be closed at the position of it
.
◆ getElementsToOpen()
virtual QList< int > Grantlee::MarkupDirector::getElementsToOpen |
( |
QTextBlock::iterator | it | ) |
|
|
protectedvirtual |
Returns the tags that should be opened at the position of it
.
◆ processBlock()
virtual QTextFrame::iterator Grantlee::MarkupDirector::processBlock |
( |
QTextFrame::iterator | it, |
|
|
const QTextBlock & | block ) |
|
virtual |
Directs the builder to create output for the single block
. If calling this method directly, an invalid QTextFrame::iterator may be used.
This method does not process the contents of the block
, but uses the processBlockContents method to do so.
◆ processBlockContents()
virtual QTextFrame::iterator Grantlee::MarkupDirector::processBlockContents |
( |
QTextFrame::iterator | it, |
|
|
const QTextBlock & | block ) |
|
virtual |
Directs the builder to create output for the contents of the single block
. If calling this method directly, an invalid QTextFrame::iterator may be used.
◆ processBlockGroup()
Directs the builder to create output for the single textBlockGroup
. If calling this method directly, an invalid QTextFrame::iterator may be used.
The block block
is the first block in the textBlockGroup
.
◆ processCharTextObject()
Directs the builder to create output for the contents of the single textObject
. The textObject
is represented in the QTextDocument with the QTextFragment fragment
.
If calling this method directly, an invalid QTextBlock::iterator may be used.
◆ processClosingElements()
virtual void Grantlee::MarkupDirector::processClosingElements |
( |
QTextBlock::iterator | it | ) |
|
|
protectedvirtual |
Directs the builder to close the appropriate tags at the position of it
.
◆ processCustomFragment()
Hook for instructing the builder to create output for the fragemnt
with a custom type. doc
is the document the fragment is in.
◆ processDocument()
Constructs the output by directing the builder to create the markup.
◆ processDocumentContents()
void Grantlee::MarkupDirector::processDocumentContents |
( |
QTextFrame::iterator | begin, |
|
|
QTextFrame::iterator | end ) |
|
protected |
Processes the document between begin
and end
◆ processFragment()
Directs the builder to create output for the contents of the single fragment
. If calling this method directly, an invalid QTextBlock::iterator may be used. doc
is the document the fragment is in.
◆ processFrame()
virtual QTextFrame::iterator Grantlee::MarkupDirector::processFrame |
( |
QTextFrame::iterator | it, |
|
|
QTextFrame * | frame ) |
|
virtual |
Directs the builder to create output for the single frame
. If calling this method directly, an invalid QTextFrame::iterator may be used.
◆ processImage()
Directs the builder to create output for the image represented by the imageFormat
.
If calling this method directly, an invalid QTextBlock::iterator may be used. doc
is the document the fragment is in.
◆ processList()
Directs the builder to create output for the single textList
. If calling this method directly, an invalid QTextFrame::iterator may be used.
The block block
is the first block in the textList
.
◆ processObject()
Directs the builder to create output for the single textObject
. If calling this method directly, an invalid QTextFrame::iterator may be used.
The block block
is the container of the textObject
.
◆ processOpeningElements()
virtual void Grantlee::MarkupDirector::processOpeningElements |
( |
QTextBlock::iterator | it | ) |
|
|
protectedvirtual |
Directs the builder to open the appropriate tags at the position of it
.
◆ processTable()
virtual QTextFrame::iterator Grantlee::MarkupDirector::processTable |
( |
QTextFrame::iterator | it, |
|
|
QTextTable * | table ) |
|
virtual |
Directs the builder to create output for the contents of the single table
.
If calling this method directly, an invalid QTextFrame::iterator may be used.
◆ processTableCell()
Directs the builder to create output for the contents of the single tableCell
. The tableCell is in the table
.
◆ skipBlockGroup()
Iterates the iterator it
to the first block after blockGroup
. _block
is any block in the blockGroup
.
The return pair is the iterator pointing after the end of blockGroup
and the first block after blockGroup
.
◆ sortOpeningOrder()
QList< int > Grantlee::MarkupDirector::sortOpeningOrder |
( |
QSet< int > | openingTags, |
|
|
QTextBlock::iterator | it ) const |
|
protected |
Returns a list of tags contained in openingTags
sorted so they can be opened in order and will be closed in the correct order.
openingTags
should be a set of tags opened at the fragment pointed to by it
.
◆ m_builder