QtGui/qtextdocument.h Source File

qtextdocument.h
Go to the documentation of this file.
1 /****************************************************************************
2 **
3 ** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
4 ** Contact: http://www.qt-project.org/legal
5 **
6 ** This file is part of the QtGui module of the Qt Toolkit.
7 **
8 ** $QT_BEGIN_LICENSE:LGPL$
9 ** Commercial License Usage
10 ** Licensees holding valid commercial Qt licenses may use this file in
11 ** accordance with the commercial license agreement provided with the
12 ** Software or, alternatively, in accordance with the terms contained in
13 ** a written agreement between you and Digia. For licensing terms and
14 ** conditions see http://qt.digia.com/licensing. For further information
15 ** use the contact form at http://qt.digia.com/contact-us.
16 **
17 ** GNU Lesser General Public License Usage
18 ** Alternatively, this file may be used under the terms of the GNU Lesser
19 ** General Public License version 2.1 as published by the Free Software
20 ** Foundation and appearing in the file LICENSE.LGPL included in the
21 ** packaging of this file. Please review the following information to
22 ** ensure the GNU Lesser General Public License version 2.1 requirements
23 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
24 **
25 ** In addition, as a special exception, Digia gives you certain additional
26 ** rights. These rights are described in the Digia Qt LGPL Exception
27 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
28 **
29 ** GNU General Public License Usage
30 ** Alternatively, this file may be used under the terms of the GNU
31 ** General Public License version 3.0 as published by the Free Software
32 ** Foundation and appearing in the file LICENSE.GPL included in the
33 ** packaging of this file. Please review the following information to
34 ** ensure the GNU General Public License version 3.0 requirements will be
35 ** met: http://www.gnu.org/copyleft/gpl.html.
36 **
37 **
38 ** $QT_END_LICENSE$
39 **
40 ****************************************************************************/
41 
42 #ifndef QTEXTDOCUMENT_H
43 #define QTEXTDOCUMENT_H
44 
45 #include <QtCore/qobject.h>
46 #include <QtCore/qsize.h>
47 #include <QtCore/qrect.h>
48 #include <QtGui/qfont.h>
49 
51 
53 
54 QT_MODULE(Gui)
55 
56 class QTextFormatCollection;
57 class QTextListFormat;
58 class QRect;
59 class QPainter;
60 class QPrinter;
62 class QPoint;
63 class QTextObject;
64 class QTextFormat;
65 class QTextFrame;
66 class QTextBlock;
67 class QTextCodec;
68 class QUrl;
69 class QVariant;
70 class QRectF;
71 class QTextOption;
72 class QTextCursor;
73 
74 template<typename T> class QVector;
75 
76 namespace Qt
77 {
84  };
85 
86  Q_GUI_EXPORT bool mightBeRichText(const QString&);
87  Q_GUI_EXPORT QString escape(const QString& plain);
89 
90 #ifndef QT_NO_TEXTCODEC
91  Q_GUI_EXPORT QTextCodec *codecForHtml(const QByteArray &ba);
92 #endif
93 }
94 
95 class Q_GUI_EXPORT QAbstractUndoItem
96 {
97 public:
98  virtual ~QAbstractUndoItem() = 0;
99  virtual void undo() = 0;
100  virtual void redo() = 0;
101 };
102 
104 {
105 }
106 
107 class QTextDocumentPrivate;
108 
109 class Q_GUI_EXPORT QTextDocument : public QObject
110 {
111  Q_OBJECT
112 
113  Q_PROPERTY(bool undoRedoEnabled READ isUndoRedoEnabled WRITE setUndoRedoEnabled)
114  Q_PROPERTY(bool modified READ isModified WRITE setModified DESIGNABLE false)
115  Q_PROPERTY(QSizeF pageSize READ pageSize WRITE setPageSize)
116  Q_PROPERTY(QFont defaultFont READ defaultFont WRITE setDefaultFont)
117  Q_PROPERTY(bool useDesignMetrics READ useDesignMetrics WRITE setUseDesignMetrics)
119  Q_PROPERTY(qreal textWidth READ textWidth WRITE setTextWidth)
120  Q_PROPERTY(int blockCount READ blockCount)
121  Q_PROPERTY(qreal indentWidth READ indentWidth WRITE setIndentWidth)
122 #ifndef QT_NO_CSSPARSER
123  Q_PROPERTY(QString defaultStyleSheet READ defaultStyleSheet WRITE setDefaultStyleSheet)
124 #endif
125  Q_PROPERTY(int maximumBlockCount READ maximumBlockCount WRITE setMaximumBlockCount)
126  Q_PROPERTY(qreal documentMargin READ documentMargin WRITE setDocumentMargin)
127  QDOC_PROPERTY(QTextOption defaultTextOption READ defaultTextOption WRITE setDefaultTextOption)
128 
129 public:
130  explicit QTextDocument(QObject *parent = 0);
131  explicit QTextDocument(const QString &text, QObject *parent = 0);
132  ~QTextDocument();
133 
134  QTextDocument *clone(QObject *parent = 0) const;
135 
136  bool isEmpty() const;
137  virtual void clear();
138 
139  void setUndoRedoEnabled(bool enable);
140  bool isUndoRedoEnabled() const;
141 
142  bool isUndoAvailable() const;
143  bool isRedoAvailable() const;
144 
145  int availableUndoSteps() const;
146  int availableRedoSteps() const;
147 
148  int revision() const;
149 
150  void setDocumentLayout(QAbstractTextDocumentLayout *layout);
151  QAbstractTextDocumentLayout *documentLayout() const;
152 
155  DocumentUrl
156  };
157  void setMetaInformation(MetaInformation info, const QString &);
158  QString metaInformation(MetaInformation info) const;
159 
160 #ifndef QT_NO_TEXTHTMLPARSER
161  QString toHtml(const QByteArray &encoding = QByteArray()) const;
162  void setHtml(const QString &html);
163 #endif
164 
165  QString toPlainText() const;
166  void setPlainText(const QString &text);
167 
168  QChar characterAt(int pos) const;
169 
170  enum FindFlag
171  {
172  FindBackward = 0x00001,
173  FindCaseSensitively = 0x00002,
174  FindWholeWords = 0x00004
175  };
176  Q_DECLARE_FLAGS(FindFlags, FindFlag)
177 
178  QTextCursor find(const QString &subString, int from = 0, FindFlags options = 0) const;
179  QTextCursor find(const QString &subString, const QTextCursor &from, FindFlags options = 0) const;
180 
181  QTextCursor find(const QRegExp &expr, int from = 0, FindFlags options = 0) const;
182  QTextCursor find(const QRegExp &expr, const QTextCursor &from, FindFlags options = 0) const;
183 
184  QTextFrame *frameAt(int pos) const;
185  QTextFrame *rootFrame() const;
186 
187  QTextObject *object(int objectIndex) const;
188  QTextObject *objectForFormat(const QTextFormat &) const;
189 
190  QTextBlock findBlock(int pos) const;
191  QTextBlock findBlockByNumber(int blockNumber) const;
192  QTextBlock findBlockByLineNumber(int blockNumber) const;
193  QTextBlock begin() const;
194  QTextBlock end() const;
195 
196  QTextBlock firstBlock() const;
197  QTextBlock lastBlock() const;
198 
199  void setPageSize(const QSizeF &size);
200  QSizeF pageSize() const;
201 
202  void setDefaultFont(const QFont &font);
203  QFont defaultFont() const;
204 
205  int pageCount() const;
206 
207  bool isModified() const;
208 
209 #ifndef QT_NO_PRINTER
210  void print(QPrinter *printer) const;
211 #endif
212 
214  HtmlResource = 1,
215  ImageResource = 2,
216  StyleSheetResource = 3,
217 
218  UserResource = 100
219  };
220 
221  QVariant resource(int type, const QUrl &name) const;
222  void addResource(int type, const QUrl &name, const QVariant &resource);
223 
224  QVector<QTextFormat> allFormats() const;
225 
226  void markContentsDirty(int from, int length);
227 
228  void setUseDesignMetrics(bool b);
229  bool useDesignMetrics() const;
230 
231  void drawContents(QPainter *painter, const QRectF &rect = QRectF());
232 
233  void setTextWidth(qreal width);
234  qreal textWidth() const;
235 
236  qreal idealWidth() const;
237 
238  qreal indentWidth() const;
239  void setIndentWidth(qreal width);
240 
241  qreal documentMargin() const;
242  void setDocumentMargin(qreal margin);
243 
244  void adjustSize();
245  QSizeF size() const;
246 
247  int blockCount() const;
248  int lineCount() const;
249  int characterCount() const;
250 
251 #ifndef QT_NO_CSSPARSER
252  void setDefaultStyleSheet(const QString &sheet);
253  QString defaultStyleSheet() const;
254 #endif
255 
256  void undo(QTextCursor *cursor);
257  void redo(QTextCursor *cursor);
258 
259  enum Stacks {
260  UndoStack = 0x01,
261  RedoStack = 0x02,
262  UndoAndRedoStacks = UndoStack | RedoStack
263  };
264  void clearUndoRedoStacks(Stacks historyToClear = UndoAndRedoStacks);
265 
266  int maximumBlockCount() const;
267  void setMaximumBlockCount(int maximum);
268 
269  QTextOption defaultTextOption() const;
270  void setDefaultTextOption(const QTextOption &option);
271 
272  Qt::CursorMoveStyle defaultCursorMoveStyle() const;
273  void setDefaultCursorMoveStyle(Qt::CursorMoveStyle style);
274 
275 Q_SIGNALS:
276  void contentsChange(int from, int charsRemoves, int charsAdded);
277  void contentsChanged();
278  void undoAvailable(bool);
279  void redoAvailable(bool);
280  void undoCommandAdded();
281  void modificationChanged(bool m);
282  void cursorPositionChanged(const QTextCursor &cursor);
283  void blockCountChanged(int newBlockCount);
284 
285  void documentLayoutChanged();
286 
287 public Q_SLOTS:
288  void undo();
289  void redo();
290  void appendUndoItem(QAbstractUndoItem *);
291  void setModified(bool m = true);
292 
293 protected:
294  virtual QTextObject *createObject(const QTextFormat &f);
295  virtual QVariant loadResource(int type, const QUrl &name);
296 
297  QTextDocument(QTextDocumentPrivate &dd, QObject *parent);
298 public:
299  QTextDocumentPrivate *docHandle() const;
300 private:
301  Q_DISABLE_COPY(QTextDocument)
302  Q_DECLARE_PRIVATE(QTextDocument)
303  friend class QTextObjectPrivate;
304 };
305 
306 Q_DECLARE_OPERATORS_FOR_FLAGS(QTextDocument::FindFlags)
307 
309 
311 
312 #endif // QTEXTDOCUMENT_H
GLuint GLuint GLsizei GLenum type
Definition: GLee.h:872
HitTestAccuracy
Definition: qtextdocument.h:78
GLint mode
Definition: GLee.h:4479
#define QT_END_NAMESPACE
Definition: qglobal.h:128
#define Q_PROPERTY(text)
Definition: qobjectdefs.h:80
CursorMoveStyle
Definition: qnamespace.h:1790
Q_GUI_EXPORT QString convertFromPlainText(const QString &plain, WhiteSpaceMode mode=WhiteSpacePre)
#define QT_BEGIN_HEADER
Definition: qglobal.h:141
GLenum GLsizei width
Definition: GLee.h:873
Definition: qnamespace.h:54
#define Q_SLOTS
Definition: qobjectdefs.h:71
#define Q_SIGNALS
Definition: qobjectdefs.h:72
Definition: qpoint.h:53
#define QT_BEGIN_NAMESPACE
Definition: qglobal.h:127
Definition: qfont.h:64
Definition: qsize.h:202
Q_GUI_EXPORT QString escape(const QString &plain)
virtual ~QAbstractUndoItem()=0
Q_GUI_EXPORT bool mightBeRichText(const QString &)
GLuint GLsizei GLsizei * length
Definition: GLee.h:1713
#define Q_OBJECT
Definition: qobjectdefs.h:157
Q_GUI_EXPORT QTextCodec * codecForHtml(const QByteArray &ba)
GLubyte GLubyte b
Definition: GLee.h:5404
Definition: qurl.h:61
GLuint GLuint end
Definition: GLee.h:872
Definition: qrect.h:58
Definition: qrect.h:511
GLuint const GLchar * name
Definition: GLee.h:1704
Definition: qchar.h:72
WhiteSpaceMode
Definition: qtextdocument.h:79
#define QT_END_HEADER
Definition: qglobal.h:142
GLclampf f
Definition: GLee.h:9303
GLsizeiptr size
Definition: GLee.h:1561