4#ifndef QTEXTDOCUMENT_P_H
5#define QTEXTDOCUMENT_P_H
18#include <QtGui/private/qtguiglobal_p.h>
19#include "QtGui/qtextcursor.h"
20#include "QtGui/qtextdocument.h"
21#include "QtGui/qtextlayout.h"
22#include "QtGui/qtextobject.h"
23#include "QtGui/qtextoption.h"
25#include "QtCore/qlist.h"
26#include "QtCore/qmap.h"
27#include "QtCore/qset.h"
28#include "QtCore/qstring.h"
29#include "QtCore/qurl.h"
30#include "QtCore/qvariant.h"
32#if QT_CONFIG(cssparser)
33#include "private/qcssparser_p.h"
35#include "private/qfragmentmap_p.h"
36#include "private/qobject_p.h"
37#include "private/qtextformat_p.h"
55#define QTextBeginningOfFrame QChar(u'\xfdd0')
56#define QTextEndOfFrame QChar(u'\xfdd1')
148 int insertBlock(
QChar blockSeparator,
int pos,
int blockFormat,
int charFormat,
154 void aboutToRemoveCell(
int cursorFrom,
int cursorEnd);
165 void emitUndoAvailable(
bool available);
166 void emitRedoAvailable(
bool available);
168 int undoRedo(
bool undo);
169 inline void undo() { undoRedo(
true); }
170 inline void redo() { undoRedo(
false); }
173 void joinPreviousEditBlock();
177 void enableUndoRedo(
bool enable);
181 inline bool isRedoAvailable()
const {
return undoEnabled && undoState < undoStack.size(); }
188 inline int length()
const {
return fragments.length(); }
201 int blockCharFormatIndex(
int node)
const;
203 inline int numBlocks()
const {
return blocks.numNodes(); }
214 int leftCursorPosition(
int position)
const;
215 int rightCursorPosition(
int position)
const;
219 void setModified(
bool m);
237 void scan_frames(
int pos,
int charsRemoved,
int charsAdded);
242 bool wasUndoAvailable;
243 bool wasRedoAvailable;
246 void documentChange(
int from,
int length);
254 QTextObject *objectForIndex(
int objectIndex)
const;
255 QTextObject *objectForFormat(
int formatIndex)
const;
264 bool ensureMaximumBlockCount();
268 return document->d_func();
273 return document->d_func();
296 bool canLayout()
const {
return layoutEnabled && !pageSize.isNull(); }
304 void contentsChanged();
306 void compressPieceTable();
309 uint unreachableCharacterCount;
320 int editBlockCursorPosition;
322 int docChangeOldLength;
329 FragmentMap fragments;
331 int initialBlockCharFormatIndex;
344 bool layoutEnabled =
true;
347#ifndef QT_NO_CSSPARSER
382 enum StyleMode { EmitStyleTag, OmitStyleTag };
383 enum FrameType { TextFrame, TableFrame, RootFrame };
391 void emitBlockAttributes(
const QTextBlock &block);
394 void emitAlignment(Qt::Alignment
alignment);
400 void emitPageBreakPolicy(QTextFormat::PageBreakFlags
policy);
410 bool fragmentMarkers;
static QObjectPrivate * get(QObject *o)
\macro QT_RESTRICTED_CAST_FROM_ASCII
QTextBlockUserData * userData
\reentrant \inmodule QtGui
QTextFormatCollection * formatCollection()
const BlockMap & blockMap() const
QAbstractTextDocumentLayout * layout() const
static QTextDocumentPrivate * get(QTextObject *object)
QFragmentMap< QTextBlockData > BlockMap
QCss::StyleSheet parsedDefaultStyleSheet
const QTextFormatCollection * formatCollection() const
int availableRedoSteps() const
QTextBlock blocksBegin() const
bool isInEditBlock() const
QTextDocument * document()
QTextBlock blocksEnd() const
static const QTextBlockData * block(const QTextBlock &it)
static const QTextDocumentPrivate * get(const QTextObject *object)
bool isUndoRedoEnabled() const
const FragmentMap & fragmentMap() const
FragmentMap & fragmentMap()
static const QTextDocumentPrivate * get(const QTextBlock &block)
static const QTextDocumentPrivate * get(const QTextDocument *document)
FragmentIterator begin() const
FragmentMap::ConstIterator FragmentIterator
QFragmentMap< QTextFragmentData > FragmentMap
QFont defaultFont() const
FragmentIterator find(int pos) const
bool isUndoAvailable() const
Qt::CursorMoveStyle defaultCursorMoveStyle
uint blockCursorAdjustment
QTextOption defaultTextOption
FragmentIterator end() const
static QTextDocumentPrivate * get(QTextDocument *document)
int availableUndoSteps() const
uint needsEnsureMaximumBlockCount
QTextBlock blocksFind(int pos) const
const QTextDocument * document() const
bool isRedoAvailable() const
void setDefaultFont(const QFont &f)
static QTextDocumentPrivate * get(QTextBlock &block)
\reentrant \inmodule QtGui
Stacks
\value UndoStack The undo stack.
std::function< QVariant(const QUrl &)> ResourceProvider
Position
This enum describes how a frame is located relative to the surrounding text.
QString toHtml(ExportMode mode=ExportEntireDocument)
Returns the document in HTML format.
CursorMode
\value SkipCharacters \value SkipWords
QAbstractUndoItem * custom
bool tryMerge(const QTextUndoCommand &other)
cache insert(employee->id(), employee)
QSet< QString >::iterator it
Combined button and popup list for selecting options.
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
EGLOutputLayerEXT EGLint attribute
constexpr const T & qMax(const T &a, const T &b)
GLenum GLuint GLenum GLsizei length
GLdouble GLdouble GLdouble GLdouble top
GLint GLsizei GLsizei GLenum format
GLenum GLenum GLsizei void * table
static qreal position(const QQuickItem *item, QQuickAnchors::Anchor anchorLine)
static void split(QT_FT_Vector *b)
static QT_BEGIN_NAMESPACE void init(QTextBoundaryFinder::BoundaryType type, QStringView str, QCharAttributes *attributes)
#define Q_DECLARE_TYPEINFO(TYPE, FLAGS)
settings remove("monkey")
const QByteArray plainText