30 #include <QLinkedList>
46 int startLine, endLine;
56 typedef QVector<QDocumentLineHandle*>::iterator QDocumentIterator;
57 typedef QVector<QDocumentLineHandle*>::const_iterator QDocumentConstIterator;
59 Q_DECLARE_METATYPE(QDocumentIterator)
60 Q_DECLARE_METATYPE(QDocumentConstIterator)
64 friend class QMatcher;
99 RestoreTrailingIndent = 4
110 Q_DECLARE_FLAGS(WhiteSpaceMode, WhiteSpaceFlag)
115 QString text(
int mode) const;
116 QString text(
bool removeTrailing = false,
bool preserveIndent = true) const;
117 void setText(const QString& s);
119 void startChunkLoading();
120 void stopChunkLoading();
121 void addChunk(const QString& txt);
123 LineEnding lineEnding() const;
124 LineEnding originalLineEnding() const;
125 void setLineEnding(LineEnding le);
127 QDateTime lastModified() const;
128 void setLastModified(const QDateTime& d);
130 bool canUndo() const;
131 bool canRedo() const;
135 int widthConstraint() const;
138 int lineCount() const;
139 int visualLines() const;
140 int visualLineCount() const;
142 int visualLineNumber(
int textLineNumber) const;
143 int textLineNumber(
int visualLineNumber) const;
145 int y(
int line) const;
146 int lineNumber(
int ypos,
int *wrap = 0) const;
149 QRect lineRect(
int line) const;
158 int maxMarksPerLine() const;
159 int findNextMark(
int id,
int from = 0,
int until = -1) const;
160 int findPreviousMark(
int id,
int from = -1,
int until = 0) const;
163 void cursorForDocumentPosition(const QPoint& p,
int& line,
int& column) const;
176 virtual
void draw(QPainter *p, PaintContext& cxt);
182 QDocumentConstIterator begin()
const;
183 QDocumentConstIterator end()
const;
185 QDocumentConstIterator iterator(
int ln)
const;
186 QDocumentConstIterator iterator(
const QDocumentLine& l)
const;
194 int getNextGroupId();
195 void releaseGroupId(
int groupId);
196 void clearMatches(
int groupId);
197 void flushMatches(
int groupId);
198 void addMatch(
int groupId,
int line,
int pos,
int len,
int format);
201 static void setFont(
const QFont& f);
202 static const QFontMetrics& fontMetrics();
204 static LineEnding defaultLineEnding();
205 static void setDefaultLineEnding(LineEnding le);
207 static int tabStop();
208 static void setTabStop(
int n);
210 static WhiteSpaceMode showSpaces();
211 static void setShowSpaces(WhiteSpaceMode y);
219 static int screenLength(
const QChar *d,
int l,
int tabStop);
220 static QString screenable(
const QChar *d,
int l,
int tabStop);
222 inline void markViewDirty() { formatsChanged(); }
224 bool isClean()
const;
236 void print(QPrinter *p);
238 void clearWidthConstraint();
239 void setWidthConstraint(
int width);
242 void cleanChanged(
bool m);
244 void undoAvailable(
bool y);
245 void redoAvailable(
bool y);
247 void formatsChanged();
248 void contentsChanged();
250 void formatsChange (
int line,
int lines);
251 void contentsChange(
int line,
int lines);
253 void widthChanged(
int width);
254 void heightChanged(
int height);
255 void sizeChanged(
const QSize& s);
257 void lineCountChanged(
int n);
258 void visualLineCountChanged(
int n);
263 void lineEndingChanged(
int lineEnding);
270 Q_DECLARE_OPERATORS_FOR_FLAGS(QDocument::WhiteSpaceMode)