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')
150 int insertBlock(
QChar blockSeparator,
int pos,
int blockFormat,
int charFormat,
156 void aboutToRemoveCell(
int cursorFrom,
int cursorEnd);
167 void emitUndoAvailable(
bool available);
168 void emitRedoAvailable(
bool available);
170 int undoRedo(
bool undo);
171 inline void undo() { undoRedo(
true); }
172 inline void redo() { undoRedo(
false); }
175 void joinPreviousEditBlock();
179 void enableUndoRedo(
bool enable);
183 inline bool isRedoAvailable()
const {
return undoEnabled && undoState < undoStack.size(); }
190 inline int length()
const {
return fragments.length(); }
203 int blockCharFormatIndex(
int node)
const;
205 inline int numBlocks()
const {
return blocks.numNodes(); }
216 int leftCursorPosition(
int position)
const;
217 int rightCursorPosition(
int position)
const;
221 void setModified(
bool m);
239 void scan_frames(
int pos,
int charsRemoved,
int charsAdded);
244 bool wasUndoAvailable;
245 bool wasRedoAvailable;
248 void documentChange(
int from,
int length);
256 QTextObject *objectForIndex(
int objectIndex)
const;
257 QTextObject *objectForFormat(
int formatIndex)
const;
266 bool ensureMaximumBlockCount();
270 return document->d_func();
275 return document->d_func();
298 bool canLayout()
const {
return layoutEnabled && !pageSize.isNull(); }
306 void contentsChanged();
308 void compressPieceTable();
311 uint unreachableCharacterCount;
313 QList<QTextUndoCommand> undoStack;
322 int editBlockCursorPosition;
324 int docChangeOldLength;
331 FragmentMap fragments;
333 int initialBlockCharFormatIndex;
335 QSet<QTextCursorPrivate *> cursors;
336 QMap<int, QTextObject *> objects;
337 QMap<QUrl, QVariant> resources;
338 QMap<QUrl, QVariant> cachedResources;
346 bool layoutEnabled =
true;
349#ifndef QT_NO_CSSPARSER
385 enum StyleMode { EmitStyleTag, OmitStyleTag };
386 enum FrameType { TextFrame, TableFrame, RootFrame };
394 void emitBlockAttributes(
const QTextBlock &block);
397 void emitAlignment(Qt::Alignment
alignment);
403 void emitPageBreakPolicy(QTextFormat::PageBreakFlags
policy);
413 bool fragmentMarkers;
\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
void insert(int pos, QChar c, int format)
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.
QTextHtmlExporter(const QTextDocument *_doc)
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.
static QDBusError::ErrorType get(const char *name)
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
EGLOutputLayerEXT EGLint attribute
static QByteArray cacheKey(Args &&...args)
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