Qt 4.8
Classes | Signals | Public Functions | Protected Functions | Friends | List of all members
QAbstractTextDocumentLayout Class Referenceabstract

The QAbstractTextDocumentLayout class is an abstract base class used to implement custom layouts for QTextDocuments. More...

#include <qabstracttextdocumentlayout.h>

Inheritance diagram for QAbstractTextDocumentLayout:
QObject QPlainTextDocumentLayout QTextDocumentLayout

Classes

class  PaintContext
 The QAbstractTextDocumentLayout::PaintContext class is a convenience class defining the parameters used when painting a document's layout. More...
 
class  Selection
 The QAbstractTextDocumentLayout::Selection class is a convenience class defining the parameters of a selection. More...
 

Signals

void documentSizeChanged (const QSizeF &newSize)
 This signal is emitted when the size of the document layout changes to newSize. More...
 
void pageCountChanged (int newPages)
 This signal is emitted when the number of pages in the layout changes; newPages is the updated page count. More...
 
void update (const QRectF &=QRectF(0., 0., 1000000000., 1000000000.))
 This signal is emitted when the rectangle rect has been updated. More...
 
void updateBlock (const QTextBlock &block)
 This signal is emitted when the specified block has been updated. More...
 
- Signals inherited from QObject
void destroyed (QObject *=0)
 This signal is emitted immediately before the object obj is destroyed, and can not be blocked. More...
 

Public Functions

QString anchorAt (const QPointF &pos) const
 Returns the reference of the anchor the given position, or an empty string if no anchor exists at that point. More...
 
virtual QRectF blockBoundingRect (const QTextBlock &block) const =0
 Returns the bounding rectangle of block. More...
 
QTextDocumentdocument () const
 Returns the text document that this layout is operating on. More...
 
virtual QSizeF documentSize () const =0
 Returns the total size of the document's layout. More...
 
virtual void draw (QPainter *painter, const PaintContext &context)=0
 Draws the layout with the given painter using the given context. More...
 
virtual QRectF frameBoundingRect (QTextFrame *frame) const =0
 Returns the bounding rectangle of frame. More...
 
QTextObjectInterfacehandlerForObject (int objectType) const
 Returns a handler for objects of the given objectType. More...
 
virtual int hitTest (const QPointF &point, Qt::HitTestAccuracy accuracy) const =0
 Returns the cursor postion for the given point with the specified accuracy. More...
 
virtual int pageCount () const =0
 Returns the number of pages contained in the layout. More...
 
QPaintDevicepaintDevice () const
 Returns the paint device used to render the document's layout. More...
 
 QAbstractTextDocumentLayout (QTextDocument *doc)
 Creates a new text document layout for the given document. More...
 
void registerHandler (int objectType, QObject *component)
 Registers the given component as a handler for items of the given objectType. More...
 
void setPaintDevice (QPaintDevice *device)
 Sets the paint device used for rendering the document's layout to the given device. More...
 
 ~QAbstractTextDocumentLayout ()
 
- Public Functions inherited from QObject
bool blockSignals (bool b)
 If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it). More...
 
const QObjectListchildren () const
 Returns a list of child objects. More...
 
bool connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const
 
bool disconnect (const char *signal=0, const QObject *receiver=0, const char *member=0)
 
bool disconnect (const QObject *receiver, const char *member=0)
 
void dumpObjectInfo ()
 Dumps information about signal connections, etc. More...
 
void dumpObjectTree ()
 Dumps a tree of children to the debug output. More...
 
QList< QByteArraydynamicPropertyNames () const
 Returns the names of all properties that were dynamically added to the object using setProperty(). More...
 
virtual bool event (QEvent *)
 This virtual function receives events to an object and should return true if the event e was recognized and processed. More...
 
virtual bool eventFilter (QObject *, QEvent *)
 Filters events if this object has been installed as an event filter for the watched object. More...
 
template<typename T >
findChild (const QString &aName=QString()) const
 Returns the child of this object that can be cast into type T and that is called name, or 0 if there is no such object. More...
 
template<typename T >
QList< T > findChildren (const QString &aName=QString()) const
 Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects. More...
 
template<typename T >
QList< T > findChildren (const QRegExp &re) const
 
bool inherits (const char *classname) const
 Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false. More...
 
void installEventFilter (QObject *)
 Installs an event filter filterObj on this object. More...
 
bool isWidgetType () const
 Returns true if the object is a widget; otherwise returns false. More...
 
void killTimer (int id)
 Kills the timer with timer identifier, id. More...
 
virtual const QMetaObjectmetaObject () const
 Returns a pointer to the meta-object of this object. More...
 
void moveToThread (QThread *thread)
 Changes the thread affinity for this object and its children. More...
 
QString objectName () const
 
QObjectparent () const
 Returns a pointer to the parent object. More...
 
QVariant property (const char *name) const
 Returns the value of the object's name property. More...
 
Q_INVOKABLE QObject (QObject *parent=0)
 Constructs an object with parent object parent. More...
 
void removeEventFilter (QObject *)
 Removes an event filter object obj from this object. More...
 
void setObjectName (const QString &name)
 
void setParent (QObject *)
 Makes the object a child of parent. More...
 
bool setProperty (const char *name, const QVariant &value)
 Sets the value of the object's name property to value. More...
 
void setUserData (uint id, QObjectUserData *data)
 
bool signalsBlocked () const
 Returns true if signals are blocked; otherwise returns false. More...
 
int startTimer (int interval)
 Starts a timer and returns a timer identifier, or returns zero if it could not start a timer. More...
 
QThreadthread () const
 Returns the thread in which the object lives. More...
 
QObjectUserDatauserData (uint id) const
 
virtual ~QObject ()
 Destroys the object, deleting all its child objects. More...
 

Protected Functions

virtual void documentChanged (int from, int charsRemoved, int charsAdded)=0
 This function is called whenever the contents of the document change. More...
 
virtual void drawInlineObject (QPainter *painter, const QRectF &rect, QTextInlineObject object, int posInDocument, const QTextFormat &format)
 This function is called to draw the inline object, object, with the given painter within the rectangle specified by rect using the specified text format. More...
 
QTextCharFormat format (int pos)
 Returns the character format that is applicable at the given position. More...
 
int formatIndex (int pos)
 Returns the index of the format at position pos. More...
 
virtual void positionInlineObject (QTextInlineObject item, int posInDocument, const QTextFormat &format)
 Lays out the inline object item using the given text format. More...
 
 QAbstractTextDocumentLayout (QAbstractTextDocumentLayoutPrivate &, QTextDocument *)
 
virtual void resizeInlineObject (QTextInlineObject item, int posInDocument, const QTextFormat &format)
 Sets the size of the inline object item corresponding to the text format. More...
 
- Protected Functions inherited from QObject
virtual void childEvent (QChildEvent *)
 This event handler can be reimplemented in a subclass to receive child events. More...
 
virtual void connectNotify (const char *signal)
 This virtual function is called when something has been connected to signal in this object. More...
 
virtual void customEvent (QEvent *)
 This event handler can be reimplemented in a subclass to receive custom events. More...
 
virtual void disconnectNotify (const char *signal)
 This virtual function is called when something has been disconnected from signal in this object. More...
 
 QObject (QObjectPrivate &dd, QObject *parent=0)
 
int receivers (const char *signal) const
 Returns the number of receivers connected to the signal. More...
 
QObjectsender () const
 Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns 0. More...
 
int senderSignalIndex () const
 
virtual void timerEvent (QTimerEvent *)
 This event handler can be reimplemented in a subclass to receive timer events for the object. More...
 

Friends

class QTextControl
 
class QTextDocument
 
class QTextDocumentPrivate
 
class QTextEngine
 
class QTextLayout
 
class QTextLine
 

Additional Inherited Members

- Public Slots inherited from QObject
void deleteLater ()
 Schedules this object for deletion. More...
 
- Static Public Functions inherited from QObject
static bool connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
 Creates a connection of the given type from the signal in the sender object to the method in the receiver object. More...
 
static bool connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection)
 
static bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member)
 Disconnects signal in object sender from method in object receiver. More...
 
static bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member)
 
static uint registerUserData ()
 
static QString tr (const char *sourceText, const char *comment=0, int n=-1)
 
static QString trUtf8 (const char *sourceText, const char *comment=0, int n=-1)
 
- Static Public Variables inherited from QObject
static const QMetaObject staticMetaObject
 This variable stores the meta-object for the class. More...
 
- Protected Variables inherited from QObject
QScopedPointer< QObjectDatad_ptr
 
- Static Protected Variables inherited from QObject
static const QMetaObject staticQtMetaObject
 

Detailed Description

The QAbstractTextDocumentLayout class is an abstract base class used to implement custom layouts for QTextDocuments.

Note
This class or function is reentrant.

The standard layout provided by Qt can handle simple word processing including inline images, lists and tables.

Some applications, e.g., a word processor or a DTP application might need more features than the ones provided by Qt's layout engine, in which case you can subclass QAbstractTextDocumentLayout to provide custom layout behavior for your text documents.

An instance of the QAbstractTextDocumentLayout subclass can be installed on a QTextDocument object with the QTextDocument::setDocumentLayout() function.

You can insert custom objects into a QTextDocument; see the QTextObjectInterface class description for details.

See also
QTextObjectInterface

Definition at line 62 of file qabstracttextdocumentlayout.h.

Constructors and Destructors

◆ QAbstractTextDocumentLayout() [1/2]

QAbstractTextDocumentLayout::QAbstractTextDocumentLayout ( QTextDocument doc)
explicit

Creates a new text document layout for the given document.

Definition at line 442 of file qabstracttextdocumentlayout.cpp.

444 {
446  d->setDocument(document);
447 }
double d
Definition: qnumeric_p.h:62
QTextDocument * document() const
Returns the text document that this layout is operating on.
#define Q_D(Class)
Definition: qglobal.h:2482
Q_INVOKABLE QObject(QObject *parent=0)
Constructs an object with parent object parent.
Definition: qobject.cpp:753
The QAbstractTextDocumentLayout class is an abstract base class used to implement custom layouts for ...

◆ ~QAbstractTextDocumentLayout()

QAbstractTextDocumentLayout::~QAbstractTextDocumentLayout ( )
Warning
This function is not part of the public interface.

Definition at line 462 of file qabstracttextdocumentlayout.cpp.

463 {
464 }

◆ QAbstractTextDocumentLayout() [2/2]

QAbstractTextDocumentLayout::QAbstractTextDocumentLayout ( QAbstractTextDocumentLayoutPrivate p,
QTextDocument document 
)
protected
Warning
This function is not part of the public interface.

Definition at line 452 of file qabstracttextdocumentlayout.cpp.

453  :QObject(p, document)
454 {
456  d->setDocument(document);
457 }
double d
Definition: qnumeric_p.h:62
#define Q_D(Class)
Definition: qglobal.h:2482
Q_INVOKABLE QObject(QObject *parent=0)
Constructs an object with parent object parent.
Definition: qobject.cpp:753
The QAbstractTextDocumentLayout class is an abstract base class used to implement custom layouts for ...

Functions

◆ anchorAt()

QString QAbstractTextDocumentLayout::anchorAt ( const QPointF pos) const

Returns the reference of the anchor the given position, or an empty string if no anchor exists at that point.

Definition at line 639 of file qabstracttextdocumentlayout.cpp.

Referenced by QWhatsThat::mouseMoveEvent(), QWhatsThat::mousePressEvent(), and QWhatsThat::mouseReleaseEvent().

640 {
641  int cursorPos = hitTest(pos, Qt::ExactHit);
642  if (cursorPos == -1)
643  return QString();
644 
645  QTextDocumentPrivate *pieceTable = qobject_cast<const QTextDocument *>(parent())->docHandle();
646  QTextDocumentPrivate::FragmentIterator it = pieceTable->find(cursorPos);
647  QTextCharFormat fmt = pieceTable->formatCollection()->charFormat(it->format);
648  return fmt.anchorHref();
649 }
QTextCharFormat charFormat(int index) const
Definition: qtextformat_p.h:85
The QTextCharFormat class provides formatting information for characters in a QTextDocument.
Definition: qtextformat.h:372
#define it(className, varName)
QString anchorHref() const
Returns the text format&#39;s hypertext link, or an empty string if none has been set.
Definition: qtextformat.h:506
The QString class provides a Unicode character string.
Definition: qstring.h:83
T * qobject_cast(QObject *object)
Definition: qobject.h:375
FragmentMap::ConstIterator FragmentIterator
FragmentIterator find(int pos) const
QTextFormatCollection * formatCollection()
QObject * parent() const
Returns a pointer to the parent object.
Definition: qobject.h:273
The QTextDocument class holds formatted text that can be viewed and edited using a QTextEdit...
virtual int hitTest(const QPointF &point, Qt::HitTestAccuracy accuracy) const =0
Returns the cursor postion for the given point with the specified accuracy.

◆ blockBoundingRect()

QRectF QAbstractTextDocumentLayout::blockBoundingRect ( const QTextBlock block) const
pure virtual

Returns the bounding rectangle of block.

Implemented in QPlainTextDocumentLayout, and QTextDocumentLayout.

Referenced by QTextCursorPrivate::blockLayout(), and QAccessibleTextEdit::rect().

◆ document()

QTextDocument * QAbstractTextDocumentLayout::document ( ) const

Returns the text document that this layout is operating on.

Definition at line 624 of file qabstracttextdocumentlayout.cpp.

Referenced by QPlainTextDocumentLayout::blockBoundingRect(), QTextEngine::docLayout(), QTextDocumentLayout::documentChanged(), QPlainTextDocumentLayout::documentChanged(), QPlainTextDocumentLayout::documentSize(), drawInlineObject(), QPlainTextDocumentLayout::layoutBlock(), QPlainTextDocumentLayout::requestUpdate(), and resizeInlineObject().

625 {
627  return d->document;
628 }
double d
Definition: qnumeric_p.h:62
#define Q_D(Class)
Definition: qglobal.h:2482
The QAbstractTextDocumentLayout class is an abstract base class used to implement custom layouts for ...

◆ documentChanged()

void QAbstractTextDocumentLayout::documentChanged ( int  position,
int  charsRemoved,
int  charsAdded 
)
protectedpure virtual

This function is called whenever the contents of the document change.

A change occurs when text is inserted, removed, or a combination of these two. The change is specified by position, charsRemoved, and charsAdded corresponding to the starting character position of the change, the number of characters removed from the document, and the number of characters added.

For example, when inserting the text "Hello" into an empty document, charsRemoved would be 0 and charsAdded would be 5 (the length of the string).

Replacing text is a combination of removing and inserting. For example, if the text "Hello" gets replaced by "Hi", charsRemoved would be 5 and charsAdded would be 2.

For subclasses of QAbstractTextDocumentLayout, this is the central function where a large portion of the work to lay out and position document contents is done.

For example, in a subclass that only arranges blocks of text, an implementation of this function would have to do the following:

  • Determine the list of changed QTextBlock(s) using the parameters provided.
  • Each QTextBlock object's corresponding QTextLayout object needs to be processed. You can access the QTextBlock's layout using the QTextBlock::layout() function. This processing should take the document's page size into consideration.
  • If the total number of pages changed, the pageCountChanged() signal should be emitted.
  • If the total size changed, the documentSizeChanged() signal should be emitted.
  • The update() signal should be emitted to schedule a repaint of areas in the layout that require repainting.
See also
QTextLayout

Implemented in QPlainTextDocumentLayout, and QTextDocumentLayout.

Referenced by QTextDocumentPrivate::clear(), QTextDocumentPrivate::finishEdit(), and QTextDocumentPrivate::setLayout().

◆ documentSize()

QSizeF QAbstractTextDocumentLayout::documentSize ( ) const
pure virtual

Returns the total size of the document's layout.

This information can be used by display widgets to update their scroll bars correctly.

See also
documentSizeChanged(), QTextDocument::pageSize

Implemented in QPlainTextDocumentLayout, and QTextDocumentLayout.

Referenced by QTextDocument::adjustSize(), documentSize(), QPlainTextEdit::paintEvent(), and QTextEditPrivate::relayoutDocument().

◆ documentSizeChanged

void QAbstractTextDocumentLayout::documentSizeChanged ( const QSizeF newSize)
signal

This signal is emitted when the size of the document layout changes to newSize.

Subclasses of QAbstractTextDocumentLayout should emit this signal when the document's entire layout size changes. This signal is useful for widgets that display text documents since it enables them to update their scroll bars correctly.

See also
documentSize()

Referenced by QTextDocumentLayout::documentChanged(), QPlainTextDocumentLayout::documentChanged(), QPlainTextDocumentLayout::layoutBlock(), and QTextDocumentLayout::timerEvent().

◆ draw()

void QAbstractTextDocumentLayout::draw ( QPainter painter,
const PaintContext context 
)
pure virtual

Draws the layout with the given painter using the given context.

Implemented in QPlainTextDocumentLayout, and QTextDocumentLayout.

Referenced by QTextDocument::drawContents(), QLabel::paintEvent(), QWhatsThat::paintEvent(), and QStaticTextPrivate::paintText().

◆ drawInlineObject()

void QAbstractTextDocumentLayout::drawInlineObject ( QPainter painter,
const QRectF rect,
QTextInlineObject  object,
int  posInDocument,
const QTextFormat format 
)
protectedvirtual

This function is called to draw the inline object, object, with the given painter within the rectangle specified by rect using the specified text format.

posInDocument specifies the position of the object within the document.

The default implementation calls drawObject() on the object handlers. This function is called only within Qt. Subclasses can reimplement this function to customize the drawing of inline objects.

See also
draw()

Reimplemented in QTextDocumentLayout.

Definition at line 565 of file qabstracttextdocumentlayout.cpp.

Referenced by QTextLine::draw(), and QTextDocumentLayout::drawInlineObject().

567 {
568  Q_UNUSED(item);
570 
571  QTextCharFormat f = format.toCharFormat();
572  Q_ASSERT(f.isValid());
573  QTextObjectHandler handler = d->handlers.value(f.objectType());
574  if (!handler.component)
575  return;
576 
577  handler.iface->drawObject(p, rect, document(), posInDocument, format);
578 }
double d
Definition: qnumeric_p.h:62
The QTextCharFormat class provides formatting information for characters in a QTextDocument.
Definition: qtextformat.h:372
QTextDocument * document() const
Returns the text document that this layout is operating on.
bool isValid() const
Returns true if this character format is valid; otherwise returns false.
Definition: qtextformat.h:397
#define Q_ASSERT(cond)
Definition: qglobal.h:1823
#define Q_D(Class)
Definition: qglobal.h:2482
int objectType() const
Returns the text format&#39;s object type.
Definition: qtextformat.h:315
QTextCharFormat toCharFormat() const
Returns this format as a character format.
QImageIOHandler * handler
#define Q_UNUSED(x)
Indicates to the compiler that the parameter with the specified name is not used in the body of a fun...
Definition: qglobal.h:1729
The QAbstractTextDocumentLayout class is an abstract base class used to implement custom layouts for ...

◆ format()

QTextCharFormat QAbstractTextDocumentLayout::format ( int  pos)
protected

Returns the character format that is applicable at the given position.

Definition at line 612 of file qabstracttextdocumentlayout.cpp.

613 {
614  QTextDocumentPrivate *pieceTable = qobject_cast<QTextDocument *>(parent())->docHandle();
615  int idx = pieceTable->find(pos).value()->format;
616  return pieceTable->formatCollection()->charFormat(idx);
617 }
QTextCharFormat charFormat(int index) const
Definition: qtextformat_p.h:85
T * qobject_cast(QObject *object)
Definition: qobject.h:375
FragmentIterator find(int pos) const
QTextFormatCollection * formatCollection()
QObject * parent() const
Returns a pointer to the parent object.
Definition: qobject.h:273
The QTextDocument class holds formatted text that can be viewed and edited using a QTextEdit...

◆ formatIndex()

int QAbstractTextDocumentLayout::formatIndex ( int  pos)
protected

Returns the index of the format at position pos.

Warning
This function is not part of the public interface.

Definition at line 598 of file qabstracttextdocumentlayout.cpp.

599 {
600  QTextDocumentPrivate *pieceTable = qobject_cast<QTextDocument *>(parent())->docHandle();
601  return pieceTable->find(pos).value()->format;
602 }
T * qobject_cast(QObject *object)
Definition: qobject.h:375
FragmentIterator find(int pos) const
QObject * parent() const
Returns a pointer to the parent object.
Definition: qobject.h:273
The QTextDocument class holds formatted text that can be viewed and edited using a QTextEdit...

◆ frameBoundingRect()

QRectF QAbstractTextDocumentLayout::frameBoundingRect ( QTextFrame frame) const
pure virtual

Returns the bounding rectangle of frame.

Implemented in QPlainTextDocumentLayout, and QTextDocumentLayout.

Referenced by boundingRectOfFloatsInSelection().

◆ handlerForObject()

QTextObjectInterface * QAbstractTextDocumentLayout::handlerForObject ( int  objectType) const

Returns a handler for objects of the given objectType.

Definition at line 494 of file qabstracttextdocumentlayout.cpp.

495 {
497 
498  QTextObjectHandler handler = d->handlers.value(objectType);
499  if (!handler.component)
500  return 0;
501 
502  return handler.iface;
503 }
double d
Definition: qnumeric_p.h:62
QTextObjectInterface * iface
#define Q_D(Class)
Definition: qglobal.h:2482
QImageIOHandler * handler
The QAbstractTextDocumentLayout class is an abstract base class used to implement custom layouts for ...

◆ hitTest()

int QAbstractTextDocumentLayout::hitTest ( const QPointF point,
Qt::HitTestAccuracy  accuracy 
) const
pure virtual

Returns the cursor postion for the given point with the specified accuracy.

Returns -1 if no valid cursor position was found.

Implemented in QPlainTextDocumentLayout, and QTextDocumentLayout.

Referenced by anchorAt(), and QAccessibleTextWidget::offsetAtPoint().

◆ pageCount()

int QAbstractTextDocumentLayout::pageCount ( ) const
pure virtual

Returns the number of pages contained in the layout.

See also
pageCountChanged()

Implemented in QPlainTextDocumentLayout, and QTextDocumentLayout.

Referenced by QTextDocument::pageCount().

◆ pageCountChanged

void QAbstractTextDocumentLayout::pageCountChanged ( int  newPages)
signal

This signal is emitted when the number of pages in the layout changes; newPages is the updated page count.

Subclasses of QAbstractTextDocumentLayout should emit this signal when the number of pages in the layout has changed. Changes to the page count are caused by changes to the layout or the document content itself.

See also
pageCount()

Referenced by QTextDocumentLayout::timerEvent().

◆ paintDevice()

QPaintDevice * QAbstractTextDocumentLayout::paintDevice ( ) const

Returns the paint device used to render the document's layout.

See also
setPaintDevice()

Definition at line 683 of file qabstracttextdocumentlayout.cpp.

Referenced by QTextEngine::calculateTabWidth(), QTextEngine::font(), QTextEngine::fontEngine(), getImageSize(), getPixmapSize(), QTextDocumentLayoutPrivate::scaleToDevice(), and QScriptLine::setDefaultHeight().

684 {
686  return d->paintDevice;
687 }
double d
Definition: qnumeric_p.h:62
#define Q_D(Class)
Definition: qglobal.h:2482
The QAbstractTextDocumentLayout class is an abstract base class used to implement custom layouts for ...

◆ positionInlineObject()

void QAbstractTextDocumentLayout::positionInlineObject ( QTextInlineObject  item,
int  posInDocument,
const QTextFormat format 
)
protectedvirtual

Lays out the inline object item using the given text format.

posInDocument specifies the position of the object within the document.

The default implementation does nothing. This function is called only within Qt. Subclasses can reimplement this function to customize the position of inline objects.

See also
drawInlineObject()

Reimplemented in QTextDocumentLayout.

Definition at line 543 of file qabstracttextdocumentlayout.cpp.

Referenced by QTextLine::layout_helper().

544 {
545  Q_UNUSED(item);
546  Q_UNUSED(posInDocument);
547  Q_UNUSED(format);
548 }
#define Q_UNUSED(x)
Indicates to the compiler that the parameter with the specified name is not used in the body of a fun...
Definition: qglobal.h:1729

◆ registerHandler()

void QAbstractTextDocumentLayout::registerHandler ( int  objectType,
QObject component 
)

Registers the given component as a handler for items of the given objectType.

Note
registerHandler() has to be called once for each object type. This means that there is only one handler for multiple replacement characters of the same object type.

Definition at line 475 of file qabstracttextdocumentlayout.cpp.

Referenced by QTextDocumentLayout::QTextDocumentLayout().

476 {
478 
480  if (!iface)
481  return; // ### print error message on terminal?
482 
483  connect(component, SIGNAL(destroyed(QObject*)), this, SLOT(_q_handlerDestroyed(QObject*)));
484 
486  h.iface = iface;
487  h.component = component;
488  d->handlers.insert(formatType, h);
489 }
double d
Definition: qnumeric_p.h:62
QTextObjectInterface * iface
QString formatType(const NamePool::Ptr &np, const T &type)
Formats ItemType and SequenceType.
#define SLOT(a)
Definition: qobjectdefs.h:226
T * qobject_cast(QObject *object)
Definition: qobject.h:375
The QObject class is the base class of all Qt objects.
Definition: qobject.h:111
#define Q_D(Class)
Definition: qglobal.h:2482
#define SIGNAL(a)
Definition: qobjectdefs.h:227
void destroyed(QObject *=0)
This signal is emitted immediately before the object obj is destroyed, and can not be blocked...
static bool connect(const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
Creates a connection of the given type from the signal in the sender object to the method in the rece...
Definition: qobject.cpp:2580
static qreal component(const QPointF &point, unsigned int i)
The QTextObjectInterface class allows drawing of custom text objects in QTextDocument.
The QAbstractTextDocumentLayout class is an abstract base class used to implement custom layouts for ...

◆ resizeInlineObject()

void QAbstractTextDocumentLayout::resizeInlineObject ( QTextInlineObject  item,
int  posInDocument,
const QTextFormat format 
)
protectedvirtual

Sets the size of the inline object item corresponding to the text format.

posInDocument specifies the position of the object within the document.

The default implementation resizes the item to the size returned by the object handler's intrinsicSize() function. This function is called only within Qt. Subclasses can reimplement this function to customize the resizing of inline objects.

Reimplemented in QTextDocumentLayout.

Definition at line 516 of file qabstracttextdocumentlayout.cpp.

Referenced by QTextEngine::shape().

517 {
519 
520  QTextCharFormat f = format.toCharFormat();
521  Q_ASSERT(f.isValid());
522  QTextObjectHandler handler = d->handlers.value(f.objectType());
523  if (!handler.component)
524  return;
525 
526  QSizeF s = handler.iface->intrinsicSize(document(), posInDocument, format);
527  item.setWidth(s.width());
528  item.setAscent(s.height() - 1);
529  item.setDescent(0);
530 }
double d
Definition: qnumeric_p.h:62
The QTextCharFormat class provides formatting information for characters in a QTextDocument.
Definition: qtextformat.h:372
qreal width() const
Returns the width.
Definition: qsize.h:284
qreal height() const
Returns the height.
Definition: qsize.h:287
QTextDocument * document() const
Returns the text document that this layout is operating on.
bool isValid() const
Returns true if this character format is valid; otherwise returns false.
Definition: qtextformat.h:397
#define Q_ASSERT(cond)
Definition: qglobal.h:1823
#define Q_D(Class)
Definition: qglobal.h:2482
The QSizeF class defines the size of a two-dimensional object using floating point precision...
Definition: qsize.h:202
void setDescent(qreal d)
Sets the inline object&#39;s decent to d.
int objectType() const
Returns the text format&#39;s object type.
Definition: qtextformat.h:315
void setWidth(qreal w)
Sets the inline object&#39;s width to w.
void setAscent(qreal a)
Sets the inline object&#39;s ascent to a.
QTextCharFormat toCharFormat() const
Returns this format as a character format.
QImageIOHandler * handler
The QAbstractTextDocumentLayout class is an abstract base class used to implement custom layouts for ...

◆ setPaintDevice()

void QAbstractTextDocumentLayout::setPaintDevice ( QPaintDevice device)

Sets the paint device used for rendering the document's layout to the given device.

See also
paintDevice()

Definition at line 672 of file qabstracttextdocumentlayout.cpp.

Referenced by QTextEditPrivate::init(), and QPlainTextEditPrivate::init().

673 {
675  d->paintDevice = device;
676 }
double d
Definition: qnumeric_p.h:62
#define Q_D(Class)
Definition: qglobal.h:2482
The QAbstractTextDocumentLayout class is an abstract base class used to implement custom layouts for ...

◆ update

void QAbstractTextDocumentLayout::update ( const QRectF rect = QRectF(0., 0., 1000000000., 1000000000.))
signal

This signal is emitted when the rectangle rect has been updated.

Subclasses of QAbstractTextDocumentLayout should emit this signal when the layout of the contents change in order to repaint.

Referenced by QTextDocumentLayout::documentChanged(), QPlainTextDocumentLayout::documentChanged(), and QPlainTextDocumentLayout::requestUpdate().

◆ updateBlock

void QAbstractTextDocumentLayout::updateBlock ( const QTextBlock block)
signal

This signal is emitted when the specified block has been updated.

Since
4.4

Subclasses of QAbstractTextDocumentLayout should emit this signal when the layout of block has changed in order to repaint.

Referenced by QPlainTextDocumentLayout::documentChanged().

Friends and Related Functions

◆ QTextControl

friend class QTextControl
friend

Definition at line 125 of file qabstracttextdocumentlayout.h.

◆ QTextDocument

friend class QTextDocument
friend

Definition at line 126 of file qabstracttextdocumentlayout.h.

◆ QTextDocumentPrivate

friend class QTextDocumentPrivate
friend

Definition at line 127 of file qabstracttextdocumentlayout.h.

◆ QTextEngine

friend class QTextEngine
friend

Definition at line 128 of file qabstracttextdocumentlayout.h.

◆ QTextLayout

friend class QTextLayout
friend

Definition at line 129 of file qabstracttextdocumentlayout.h.

◆ QTextLine

friend class QTextLine
friend

Definition at line 130 of file qabstracttextdocumentlayout.h.


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