qtextobject.cpp

Absolute File Name:/home/qt/qt5_coco/qt5/qtbase/src/gui/text/qtextobject.cpp
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3-
4-
5-
6-
7-
8QTextObject::QTextObject(QTextDocument *doc)-
9 : QObject(*new QTextObjectPrivate(doc), doc)-
10{-
11}
never executed: end of block
0
12-
13-
14-
15-
16-
17-
18QTextObject::QTextObject(QTextObjectPrivate &p, QTextDocument *doc)-
19 : QObject(p, doc)-
20{-
21}
never executed: end of block
0
22-
23-
24-
25-
26-
27-
28-
29QTextObject::~QTextObject()-
30{-
31}-
32-
33-
34-
35-
36-
37-
38QTextFormat QTextObject::format() const-
39{-
40 const QTextObjectPrivate * const d = d_func();-
41 return
never executed: return d->pieceTable->formatCollection()->objectFormat(d->objectIndex);
d->pieceTable->formatCollection()->objectFormat(d->objectIndex);
never executed: return d->pieceTable->formatCollection()->objectFormat(d->objectIndex);
0
42}-
43-
44-
45-
46-
47-
48-
49-
50int QTextObject::formatIndex() const-
51{-
52 const QTextObjectPrivate * const d = d_func();-
53 return
never executed: return d->pieceTable->formatCollection()->objectFormatIndex(d->objectIndex);
d->pieceTable->formatCollection()->objectFormatIndex(d->objectIndex);
never executed: return d->pieceTable->formatCollection()->objectFormatIndex(d->objectIndex);
0
54}-
55-
56-
57-
58-
59-
60-
61-
62void QTextObject::setFormat(const QTextFormat &format)-
63{-
64 QTextObjectPrivate * const d = d_func();-
65 int idx = d->pieceTable->formatCollection()->indexForFormat(format);-
66 d->pieceTable->changeObjectFormat(this, idx);-
67}
never executed: end of block
0
68-
69-
70-
71-
72-
73int QTextObject::objectIndex() const-
74{-
75 const QTextObjectPrivate * const d = d_func();-
76 return
never executed: return d->objectIndex;
d->objectIndex;
never executed: return d->objectIndex;
0
77}-
78-
79-
80-
81-
82-
83-
84QTextDocument *QTextObject::document() const-
85{-
86 return
never executed: return static_cast<QTextDocument *>(parent());
static_cast<QTextDocument *>(parent());
never executed: return static_cast<QTextDocument *>(parent());
0
87}-
88-
89-
90-
91-
92QTextDocumentPrivate *QTextObject::docHandle() const-
93{-
94 return
never executed: return static_cast<const QTextDocument *>(parent())->docHandle();
static_cast<const QTextDocument *>(parent())->docHandle();
never executed: return static_cast<const QTextDocument *>(parent())->docHandle();
0
95}-
96void QTextBlockGroupPrivate::markBlocksDirty()-
97{-
98 for (int i = 0; i < blocks.count()
i < blocks.count()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
99 const QTextBlock &block = blocks.at(i);-
100 pieceTable->documentChange(block.position(), block.length());-
101 }
never executed: end of block
0
102}
never executed: end of block
0
103QTextBlockGroup::QTextBlockGroup(QTextDocument *doc)-
104 : QTextObject(*new QTextBlockGroupPrivate(doc), doc)-
105{-
106}
never executed: end of block
0
107-
108-
109-
110-
111QTextBlockGroup::QTextBlockGroup(QTextBlockGroupPrivate &p, QTextDocument *doc)-
112 : QTextObject(p, doc)-
113{-
114}
never executed: end of block
0
115-
116-
117-
118-
119-
120QTextBlockGroup::~QTextBlockGroup()-
121{-
122}-
123void QTextBlockGroup::blockInserted(const QTextBlock &block)-
124{-
125 QTextBlockGroupPrivate * const d = d_func();-
126 QTextBlockGroupPrivate::BlockList::Iterator it = std::lower_bound(d->blocks.begin(), d->blocks.end(), block);-
127 d->blocks.insert(it, block);-
128 d->markBlocksDirty();-
129}
never executed: end of block
0
130-
131-
132-
133-
134-
135-
136void QTextBlockGroup::blockRemoved(const QTextBlock &block)-
137{-
138 QTextBlockGroupPrivate * const d = d_func();-
139 d->blocks.removeAll(block);-
140 d->markBlocksDirty();-
141 if (d->blocks.isEmpty()
d->blocks.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
142 document()->docHandle()->deleteObject(this);-
143 return;
never executed: return;
0
144 }-
145}
never executed: end of block
0
146-
147-
148-
149-
150-
151-
152-
153void QTextBlockGroup::blockFormatChanged(const QTextBlock &)-
154{-
155}-
156-
157-
158-
159-
160-
161QList<QTextBlock> QTextBlockGroup::blockList() const-
162{-
163 const QTextBlockGroupPrivate * const d = d_func();-
164 return
never executed: return d->blocks;
d->blocks;
never executed: return d->blocks;
0
165}-
166-
167-
168-
169QTextFrameLayoutData::~QTextFrameLayoutData()-
170{-
171}-
172QTextFrame::QTextFrame(QTextDocument *doc)-
173 : QTextObject(*new QTextFramePrivate(doc), doc)-
174{-
175}
never executed: end of block
0
176QTextFrame::~QTextFrame()-
177{-
178 QTextFramePrivate * const d = d_func();-
179 delete d->layoutData;-
180}
never executed: end of block
0
181-
182-
183-
184-
185QTextFrame::QTextFrame(QTextFramePrivate &p, QTextDocument *doc)-
186 : QTextObject(p, doc)-
187{-
188}
never executed: end of block
0
189-
190-
191-
192-
193-
194-
195QList<QTextFrame *> QTextFrame::childFrames() const-
196{-
197 const QTextFramePrivate * const d = d_func();-
198 return
never executed: return d->childFrames;
d->childFrames;
never executed: return d->childFrames;
0
199}-
200-
201-
202-
203-
204-
205-
206-
207QTextFrame *QTextFrame::parentFrame() const-
208{-
209 const QTextFramePrivate * const d = d_func();-
210 return
never executed: return d->parentFrame;
d->parentFrame;
never executed: return d->parentFrame;
0
211}-
212-
213-
214-
215-
216-
217-
218-
219QTextCursor QTextFrame::firstCursorPosition() const-
220{-
221 const QTextFramePrivate * const d = d_func();-
222 return
never executed: return QTextCursorPrivate::fromPosition(d->pieceTable, firstPosition());
QTextCursorPrivate::fromPosition(d->pieceTable, firstPosition());
never executed: return QTextCursorPrivate::fromPosition(d->pieceTable, firstPosition());
0
223}-
224-
225-
226-
227-
228-
229-
230QTextCursor QTextFrame::lastCursorPosition() const-
231{-
232 const QTextFramePrivate * const d = d_func();-
233 return
never executed: return QTextCursorPrivate::fromPosition(d->pieceTable, lastPosition());
QTextCursorPrivate::fromPosition(d->pieceTable, lastPosition());
never executed: return QTextCursorPrivate::fromPosition(d->pieceTable, lastPosition());
0
234}-
235-
236-
237-
238-
239-
240-
241int QTextFrame::firstPosition() const-
242{-
243 const QTextFramePrivate * const d = d_func();-
244 if (!d->fragment_start
!d->fragment_startDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
245 return
never executed: return 0;
0;
never executed: return 0;
0
246 return
never executed: return d->pieceTable->fragmentMap().position(d->fragment_start) + 1;
d->pieceTable->fragmentMap().position(d->fragment_start) + 1;
never executed: return d->pieceTable->fragmentMap().position(d->fragment_start) + 1;
0
247}-
248-
249-
250-
251-
252-
253-
254int QTextFrame::lastPosition() const-
255{-
256 const QTextFramePrivate * const d = d_func();-
257 if (!d->fragment_end
!d->fragment_endDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
258 return
never executed: return d->pieceTable->length() - 1;
d->pieceTable->length() - 1;
never executed: return d->pieceTable->length() - 1;
0
259 return
never executed: return d->pieceTable->fragmentMap().position(d->fragment_end);
d->pieceTable->fragmentMap().position(d->fragment_end);
never executed: return d->pieceTable->fragmentMap().position(d->fragment_end);
0
260}-
261-
262-
263-
264-
265QTextFrameLayoutData *QTextFrame::layoutData() const-
266{-
267 const QTextFramePrivate * const d = d_func();-
268 return
never executed: return d->layoutData;
d->layoutData;
never executed: return d->layoutData;
0
269}-
270-
271-
272-
273-
274void QTextFrame::setLayoutData(QTextFrameLayoutData *data)-
275{-
276 QTextFramePrivate * const d = d_func();-
277 delete d->layoutData;-
278 d->layoutData = data;-
279}
never executed: end of block
0
280-
281-
282-
283void QTextFramePrivate::fragmentAdded(QChar type, uint fragment)-
284{-
285 if (type == QChar(0xfdd0)
type == QChar(0xfdd0)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
286 ((!(!fragment_start)) ? qt_assert("!fragment_start",__FILE__,532) : qt_noop());-
287 fragment_start = fragment;-
288 }
never executed: end of block
else if (type == QChar(0xfdd1)
type == QChar(0xfdd1)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
289 ((!(!fragment_end)) ? qt_assert("!fragment_end",__FILE__,535) : qt_noop());-
290 fragment_end = fragment;-
291 }
never executed: end of block
else if (type == QChar::ObjectReplacementCharacter
type == QChar:...ementCharacterDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
292 ((!(!fragment_start)) ? qt_assert("!fragment_start",__FILE__,538) : qt_noop());-
293 ((!(!fragment_end)) ? qt_assert("!fragment_end",__FILE__,539) : qt_noop());-
294 fragment_start = fragment;-
295 fragment_end = fragment;-
296 }
never executed: end of block
else {
0
297 ((!(false)) ? qt_assert("false",__FILE__,543) : qt_noop());-
298 }
never executed: end of block
0
299}-
300-
301void QTextFramePrivate::fragmentRemoved(QChar type, uint fragment)-
302{-
303 (void)fragment;;-
304 if (type == QChar(0xfdd0)
type == QChar(0xfdd0)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
305 ((!(fragment_start == fragment)) ? qt_assert("fragment_start == fragment",__FILE__,551) : qt_noop());-
306 fragment_start = 0;-
307 }
never executed: end of block
else if (type == QChar(0xfdd1)
type == QChar(0xfdd1)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
308 ((!(fragment_end == fragment)) ? qt_assert("fragment_end == fragment",__FILE__,554) : qt_noop());-
309 fragment_end = 0;-
310 }
never executed: end of block
else if (type == QChar::ObjectReplacementCharacter
type == QChar:...ementCharacterDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
311 ((!(fragment_start == fragment)) ? qt_assert("fragment_start == fragment",__FILE__,557) : qt_noop());-
312 ((!(fragment_end == fragment)) ? qt_assert("fragment_end == fragment",__FILE__,558) : qt_noop());-
313 fragment_start = 0;-
314 fragment_end = 0;-
315 }
never executed: end of block
else {
0
316 ((!(false)) ? qt_assert("false",__FILE__,562) : qt_noop());-
317 }
never executed: end of block
0
318 remove_me();-
319}
never executed: end of block
0
320-
321-
322void QTextFramePrivate::remove_me()-
323{-
324 QTextFrame * const q = q_func();-
325 if (fragment_start == 0
fragment_start == 0Description
TRUEnever evaluated
FALSEnever evaluated
&& fragment_end == 0
fragment_end == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
326 && !parentFrame
!parentFrameDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
327 q->document()->docHandle()->deleteObject(q);-
328 return;
never executed: return;
0
329 }-
330-
331 if (!parentFrame
!parentFrameDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
332 return;
never executed: return;
0
333-
334 int index = parentFrame->d_func()->childFrames.indexOf(q);-
335-
336-
337 for (int i = 0; i < childFrames.size()
i < childFrames.size()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
338 QTextFrame *c = childFrames.at(i);-
339 parentFrame->d_func()->childFrames.insert(index, c);-
340 c->d_func()->parentFrame = parentFrame;-
341 ++index;-
342 }
never executed: end of block
0
343 ((!(parentFrame->d_func()->childFrames.at(index) == q)) ? qt_assert("parentFrame->d_func()->childFrames.at(index) == q",__FILE__,589) : qt_noop());-
344 parentFrame->d_func()->childFrames.removeAt(index);-
345-
346 childFrames.clear();-
347 parentFrame = 0;-
348}
never executed: end of block
0
349QTextFrame::iterator QTextFrame::begin() const-
350{-
351 const QTextDocumentPrivate *priv = docHandle();-
352 int b = priv->blockMap().findNode(firstPosition());-
353 int e = priv->blockMap().findNode(lastPosition()+1);-
354 return
never executed: return iterator(const_cast<QTextFrame *>(this), b, b, e);
iterator(const_cast<QTextFrame *>(this), b, b, e);
never executed: return iterator(const_cast<QTextFrame *>(this), b, b, e);
0
355}-
356-
357-
358-
359-
360-
361-
362QTextFrame::iterator QTextFrame::end() const-
363{-
364 const QTextDocumentPrivate *priv = docHandle();-
365 int b = priv->blockMap().findNode(firstPosition());-
366 int e = priv->blockMap().findNode(lastPosition()+1);-
367 return
never executed: return iterator(const_cast<QTextFrame *>(this), e, b, e);
iterator(const_cast<QTextFrame *>(this), e, b, e);
never executed: return iterator(const_cast<QTextFrame *>(this), e, b, e);
0
368}-
369-
370-
371-
372-
373QTextFrame::iterator::iterator()-
374{-
375 f = 0;-
376 b = 0;-
377 e = 0;-
378 cf = 0;-
379 cb = 0;-
380}
never executed: end of block
0
381-
382-
383-
384-
385QTextFrame::iterator::iterator(QTextFrame *frame, int block, int begin, int end)-
386{-
387 f = frame;-
388 b = begin;-
389 e = end;-
390 cf = 0;-
391 cb = block;-
392}
never executed: end of block
0
393-
394-
395-
396-
397QTextFrame::iterator::iterator(const iterator &other)-
398{-
399 f = other.f;-
400 b = other.b;-
401 e = other.e;-
402 cf = other.cf;-
403 cb = other.cb;-
404}
never executed: end of block
0
405-
406-
407-
408-
409-
410QTextFrame::iterator &QTextFrame::iterator::operator=(const iterator &other)-
411{-
412 f = other.f;-
413 b = other.b;-
414 e = other.e;-
415 cf = other.cf;-
416 cb = other.cb;-
417 return
never executed: return *this;
*this;
never executed: return *this;
0
418}-
419-
420-
421-
422-
423-
424-
425-
426QTextFrame *QTextFrame::iterator::currentFrame() const-
427{-
428 return
never executed: return cf;
cf;
never executed: return cf;
0
429}-
430-
431-
432-
433-
434-
435-
436-
437QTextBlock QTextFrame::iterator::currentBlock() const-
438{-
439 if (!f
!fDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
440 return
never executed: return QTextBlock();
QTextBlock();
never executed: return QTextBlock();
0
441 return
never executed: return QTextBlock(f->docHandle(), cb);
QTextBlock(f->docHandle(), cb);
never executed: return QTextBlock(f->docHandle(), cb);
0
442}-
443-
444-
445-
446-
447-
448-
449QTextFrame::iterator &QTextFrame::iterator::operator++()-
450{-
451 const QTextDocumentPrivate *priv = f->docHandle();-
452 const QTextDocumentPrivate::BlockMap &map = priv->blockMap();-
453 if (cf
cfDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
454 int end = cf->lastPosition() + 1;-
455 cb = map.findNode(end);-
456 cf = 0;-
457 }
never executed: end of block
else if (cb
cbDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
458 cb = map.next(cb);-
459 if (cb == e
cb == eDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
460 return
never executed: return *this;
*this;
never executed: return *this;
0
461-
462 if (!f->d_func()->childFrames.isEmpty()
!f->d_func()->...ames.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
463 int pos = map.position(cb);-
464-
465 QTextDocumentPrivate::FragmentIterator frag = priv->find(pos-1);-
466 if (priv->buffer().at(frag->stringPosition) != QChar::ParagraphSeparator
priv->buffer()...graphSeparatorDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
467 QTextFrame *nf = qobject_cast<QTextFrame *>(priv->objectForFormat(frag->format));-
468 if (nf
nfDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
469 if (priv->buffer().at(frag->stringPosition) == QChar(0xfdd0)
priv->buffer()... QChar(0xfdd0)Description
TRUEnever evaluated
FALSEnever evaluated
&& nf != f
nf != fDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
470 cf = nf;-
471 cb = 0;-
472 }
never executed: end of block
else {
0
473 ((!(priv->buffer().at(frag->stringPosition) != QChar(0xfdd1))) ? qt_assert("priv->buffer().at(frag->stringPosition) != QTextEndOfFrame",__FILE__,749) : qt_noop());-
474 }
never executed: end of block
0
475 }-
476 }
never executed: end of block
0
477 }
never executed: end of block
0
478 }
never executed: end of block
0
479 return
never executed: return *this;
*this;
never executed: return *this;
0
480}-
481-
482-
483-
484-
485-
486-
487QTextFrame::iterator &QTextFrame::iterator::operator--()-
488{-
489 const QTextDocumentPrivate *priv = f->docHandle();-
490 const QTextDocumentPrivate::BlockMap &map = priv->blockMap();-
491 if (cf
cfDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
492 int start = cf->firstPosition() - 1;-
493 cb = map.findNode(start);-
494 cf = 0;-
495 }
never executed: end of block
else {
0
496 if (cb == b
cb == bDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
497 goto
never executed: goto end;
end;
never executed: goto end;
0
498 if (cb != e
cb != eDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
499 int pos = map.position(cb);-
500-
501 QTextDocumentPrivate::FragmentIterator frag = priv->find(pos-1);-
502 if (priv->buffer().at(frag->stringPosition) != QChar::ParagraphSeparator
priv->buffer()...graphSeparatorDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
503 QTextFrame *pf = qobject_cast<QTextFrame *>(priv->objectForFormat(frag->format));-
504 if (pf
pfDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
505 if (priv->buffer().at(frag->stringPosition) == QChar(0xfdd0)
priv->buffer()... QChar(0xfdd0)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
506 ((!(pf == f)) ? qt_assert("pf == f",__FILE__,782) : qt_noop());-
507 }
never executed: end of block
else if (priv->buffer().at(frag->stringPosition) == QChar(0xfdd1)
priv->buffer()... QChar(0xfdd1)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
508 ((!(pf != f)) ? qt_assert("pf != f",__FILE__,784) : qt_noop());-
509 cf = pf;-
510 cb = 0;-
511 goto
never executed: goto end;
end;
never executed: goto end;
0
512 }-
513 }
never executed: end of block
0
514 }
never executed: end of block
0
515 }
never executed: end of block
0
516 cb = map.previous(cb);-
517 }
never executed: end of block
0
518 end:
code before this statement never executed: end:
0
519 return
never executed: return *this;
*this;
never executed: return *this;
0
520}-
521QTextBlockUserData::~QTextBlockUserData()-
522{-
523}-
524bool QTextBlock::isValid() const-
525{-
526 return
never executed: return p != 0 && p->blockMap().isValid(n);
p != 0
p != 0Description
TRUEnever evaluated
FALSEnever evaluated
&& p->blockMap().isValid(n)
p->blockMap().isValid(n)Description
TRUEnever evaluated
FALSEnever evaluated
;
never executed: return p != 0 && p->blockMap().isValid(n);
0
527}-
528int QTextBlock::position() const-
529{-
530 if (!p
!pDescription
TRUEnever evaluated
FALSEnever evaluated
|| !n
!nDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
531 return
never executed: return 0;
0;
never executed: return 0;
0
532-
533 return
never executed: return p->blockMap().position(n);
p->blockMap().position(n);
never executed: return p->blockMap().position(n);
0
534}-
535int QTextBlock::length() const-
536{-
537 if (!p
!pDescription
TRUEnever evaluated
FALSEnever evaluated
|| !n
!nDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
538 return
never executed: return 0;
0;
never executed: return 0;
0
539-
540 return
never executed: return p->blockMap().size(n);
p->blockMap().size(n);
never executed: return p->blockMap().size(n);
0
541}-
542-
543-
544-
545-
546-
547bool QTextBlock::contains(int position) const-
548{-
549 if (!p
!pDescription
TRUEnever evaluated
FALSEnever evaluated
|| !n
!nDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
550 return
never executed: return false;
false;
never executed: return false;
0
551-
552 int pos = p->blockMap().position(n);-
553 int len = p->blockMap().size(n);-
554 return
never executed: return position >= pos && position < pos + len;
position >= pos
position >= posDescription
TRUEnever evaluated
FALSEnever evaluated
&& position < pos + len
position < pos + lenDescription
TRUEnever evaluated
FALSEnever evaluated
;
never executed: return position >= pos && position < pos + len;
0
555}-
556QTextLayout *QTextBlock::layout() const-
557{-
558 if (!p
!pDescription
TRUEnever evaluated
FALSEnever evaluated
|| !n
!nDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
559 return
never executed: return 0;
0;
never executed: return 0;
0
560-
561 const QTextBlockData *b = p->blockMap().fragment(n);-
562 if (!b->layout
!b->layoutDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
563 b->layout = new QTextLayout(*this);
never executed: b->layout = new QTextLayout(*this);
0
564 return
never executed: return b->layout;
b->layout;
never executed: return b->layout;
0
565}-
566void QTextBlock::clearLayout()-
567{-
568 if (!p
!pDescription
TRUEnever evaluated
FALSEnever evaluated
|| !n
!nDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
569 return;
never executed: return;
0
570-
571 const QTextBlockData *b = p->blockMap().fragment(n);-
572 if (b->layout
b->layoutDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
573 b->layout->clearLayout();
never executed: b->layout->clearLayout();
0
574}
never executed: end of block
0
575-
576-
577-
578-
579-
580-
581QTextBlockFormat QTextBlock::blockFormat() const-
582{-
583 if (!p
!pDescription
TRUEnever evaluated
FALSEnever evaluated
|| !n
!nDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
584 return
never executed: return QTextFormat().toBlockFormat();
QTextFormat().toBlockFormat();
never executed: return QTextFormat().toBlockFormat();
0
585-
586 return
never executed: return p->formatCollection()->blockFormat(p->blockMap().fragment(n)->format);
p->formatCollection()->blockFormat(p->blockMap().fragment(n)->format);
never executed: return p->formatCollection()->blockFormat(p->blockMap().fragment(n)->format);
0
587}-
588-
589-
590-
591-
592-
593-
594-
595int QTextBlock::blockFormatIndex() const-
596{-
597 if (!p
!pDescription
TRUEnever evaluated
FALSEnever evaluated
|| !n
!nDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
598 return
never executed: return -1;
-1;
never executed: return -1;
0
599-
600 return
never executed: return p->blockMap().fragment(n)->format;
p->blockMap().fragment(n)->format;
never executed: return p->blockMap().fragment(n)->format;
0
601}-
602QTextCharFormat QTextBlock::charFormat() const-
603{-
604 if (!p
!pDescription
TRUEnever evaluated
FALSEnever evaluated
|| !n
!nDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
605 return
never executed: return QTextFormat().toCharFormat();
QTextFormat().toCharFormat();
never executed: return QTextFormat().toCharFormat();
0
606-
607 return
never executed: return p->formatCollection()->charFormat(charFormatIndex());
p->formatCollection()->charFormat(charFormatIndex());
never executed: return p->formatCollection()->charFormat(charFormatIndex());
0
608}-
609-
610-
611-
612-
613-
614-
615-
616int QTextBlock::charFormatIndex() const-
617{-
618 if (!p
!pDescription
TRUEnever evaluated
FALSEnever evaluated
|| !n
!nDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
619 return
never executed: return -1;
-1;
never executed: return -1;
0
620-
621 return
never executed: return p->blockCharFormatIndex(n);
p->blockCharFormatIndex(n);
never executed: return p->blockCharFormatIndex(n);
0
622}-
623Qt::LayoutDirection QTextBlock::textDirection() const-
624{-
625 Qt::LayoutDirection dir = blockFormat().layoutDirection();-
626 if (dir != Qt::LayoutDirectionAuto
dir != Qt::LayoutDirectionAutoDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
627 return
never executed: return dir;
dir;
never executed: return dir;
0
628-
629 dir = p->defaultTextOption.textDirection();-
630 if (dir != Qt::LayoutDirectionAuto
dir != Qt::LayoutDirectionAutoDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
631 return
never executed: return dir;
dir;
never executed: return dir;
0
632-
633 const QString buffer = p->buffer();-
634-
635 const int pos = position();-
636 QTextDocumentPrivate::FragmentIterator it = p->find(pos);-
637 QTextDocumentPrivate::FragmentIterator end = p->find(pos + length() - 1);-
638 for (; it != end
it != endDescription
TRUEnever evaluated
FALSEnever evaluated
; ++it) {
0
639 const QTextFragmentData * const frag = it.value();-
640 const QChar *p = buffer.constData() + frag->stringPosition;-
641 const QChar * const end = p + frag->size_array[0];-
642 while (p < end
p < endDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
643 uint ucs4 = p->unicode();-
644 if (QChar::isHighSurrogate(ucs4)
QChar::isHighSurrogate(ucs4)Description
TRUEnever evaluated
FALSEnever evaluated
&& p + 1 < end
p + 1 < endDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
645 ushort low = p[1].unicode();-
646 if (QChar::isLowSurrogate(low)
QChar::isLowSurrogate(low)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
647 ucs4 = QChar::surrogateToUcs4(ucs4, low);-
648 ++p;-
649 }
never executed: end of block
0
650 }
never executed: end of block
0
651 switch (QChar::direction(ucs4)) {-
652 case
never executed: case QChar::DirL:
QChar::DirL:
never executed: case QChar::DirL:
0
653 return
never executed: return Qt::LeftToRight;
Qt::LeftToRight;
never executed: return Qt::LeftToRight;
0
654 case
never executed: case QChar::DirR:
QChar::DirR:
never executed: case QChar::DirR:
0
655 case
never executed: case QChar::DirAL:
QChar::DirAL:
never executed: case QChar::DirAL:
0
656 return
never executed: return Qt::RightToLeft;
Qt::RightToLeft;
never executed: return Qt::RightToLeft;
0
657 default
never executed: default:
:
never executed: default:
0
658 break;
never executed: break;
0
659 }-
660 ++p;-
661 }
never executed: end of block
0
662 }
never executed: end of block
0
663 return
never executed: return Qt::LeftToRight;
Qt::LeftToRight;
never executed: return Qt::LeftToRight;
0
664}-
665-
666-
667-
668-
669-
670-
671QString QTextBlock::text() const-
672{-
673 if (!p
!pDescription
TRUEnever evaluated
FALSEnever evaluated
|| !n
!nDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
674 return
never executed: return QString();
QString();
never executed: return QString();
0
675-
676 const QString buffer = p->buffer();-
677 QString text;-
678 text.reserve(length());-
679-
680 const int pos = position();-
681 QTextDocumentPrivate::FragmentIterator it = p->find(pos);-
682 QTextDocumentPrivate::FragmentIterator end = p->find(pos + length() - 1);-
683 for (; it != end
it != endDescription
TRUEnever evaluated
FALSEnever evaluated
; ++it) {
0
684 const QTextFragmentData * const frag = it.value();-
685 text += QString::fromRawData(buffer.constData() + frag->stringPosition, frag->size_array[0]);-
686 }
never executed: end of block
0
687-
688 return
never executed: return text;
text;
never executed: return text;
0
689}-
690QVector<QTextLayout::FormatRange> QTextBlock::textFormats() const-
691{-
692 QVector<QTextLayout::FormatRange> formats;-
693 if (!p
!pDescription
TRUEnever evaluated
FALSEnever evaluated
|| !n
!nDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
694 return
never executed: return formats;
formats;
never executed: return formats;
0
695-
696 const QTextFormatCollection *formatCollection = p->formatCollection();-
697-
698 int start = 0;-
699 int cur = start;-
700 int format = -1;-
701-
702 const int pos = position();-
703 QTextDocumentPrivate::FragmentIterator it = p->find(pos);-
704 QTextDocumentPrivate::FragmentIterator end = p->find(pos + length() - 1);-
705 for (; it != end
it != endDescription
TRUEnever evaluated
FALSEnever evaluated
; ++it) {
0
706 const QTextFragmentData * const frag = it.value();-
707 if (format != it.value()->format
format != it.value()->formatDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
708 if (cur - start > 0
cur - start > 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
709 QTextLayout::FormatRange range;-
710 range.start = start;-
711 range.length = cur - start;-
712 range.format = formatCollection->charFormat(format);-
713 formats.append(range);-
714 }
never executed: end of block
0
715-
716 format = frag->format;-
717 start = cur;-
718 }
never executed: end of block
0
719 cur += frag->size_array[0];-
720 }
never executed: end of block
0
721 if (cur - start > 0
cur - start > 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
722 QTextLayout::FormatRange range;-
723 range.start = start;-
724 range.length = cur - start;-
725 range.format = formatCollection->charFormat(format);-
726 formats.append(range);-
727 }
never executed: end of block
0
728-
729 return
never executed: return formats;
formats;
never executed: return formats;
0
730}-
731-
732-
733-
734-
735-
736const QTextDocument *QTextBlock::document() const-
737{-
738 return
never executed: return p ? p->document() : 0;
p
pDescription
TRUEnever evaluated
FALSEnever evaluated
? p->document() : 0;
never executed: return p ? p->document() : 0;
0
739}-
740-
741-
742-
743-
744-
745QTextList *QTextBlock::textList() const-
746{-
747 if (!isValid()
!isValid()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
748 return
never executed: return 0;
0;
never executed: return 0;
0
749-
750 const QTextBlockFormat fmt = blockFormat();-
751 QTextObject *obj = p->document()->objectForFormat(fmt);-
752 return
never executed: return qobject_cast<QTextList *>(obj);
qobject_cast<QTextList *>(obj);
never executed: return qobject_cast<QTextList *>(obj);
0
753}-
754-
755-
756-
757-
758-
759-
760-
761QTextBlockUserData *QTextBlock::userData() const-
762{-
763 if (!p
!pDescription
TRUEnever evaluated
FALSEnever evaluated
|| !n
!nDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
764 return
never executed: return 0;
0;
never executed: return 0;
0
765-
766 const QTextBlockData *b = p->blockMap().fragment(n);-
767 return
never executed: return b->userData;
b->userData;
never executed: return b->userData;
0
768}-
769void QTextBlock::setUserData(QTextBlockUserData *data)-
770{-
771 if (!p
!pDescription
TRUEnever evaluated
FALSEnever evaluated
|| !n
!nDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
772 return;
never executed: return;
0
773-
774 const QTextBlockData *b = p->blockMap().fragment(n);-
775 if (data != b->userData
data != b->userDataDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
776 delete b->userData;
never executed: delete b->userData;
0
777 b->userData = data;-
778}
never executed: end of block
0
779-
780-
781-
782-
783-
784-
785int QTextBlock::userState() const-
786{-
787 if (!p
!pDescription
TRUEnever evaluated
FALSEnever evaluated
|| !n
!nDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
788 return
never executed: return -1;
-1;
never executed: return -1;
0
789-
790 const QTextBlockData *b = p->blockMap().fragment(n);-
791 return
never executed: return b->userState;
b->userState;
never executed: return b->userState;
0
792}-
793-
794-
795-
796-
797-
798-
799-
800void QTextBlock::setUserState(int state)-
801{-
802 if (!p
!pDescription
TRUEnever evaluated
FALSEnever evaluated
|| !n
!nDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
803 return;
never executed: return;
0
804-
805 const QTextBlockData *b = p->blockMap().fragment(n);-
806 b->userState = state;-
807}
never executed: end of block
0
808int QTextBlock::revision() const-
809{-
810 if (!p
!pDescription
TRUEnever evaluated
FALSEnever evaluated
|| !n
!nDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
811 return
never executed: return -1;
-1;
never executed: return -1;
0
812-
813 const QTextBlockData *b = p->blockMap().fragment(n);-
814 return
never executed: return b->revision;
b->revision;
never executed: return b->revision;
0
815}-
816void QTextBlock::setRevision(int rev)-
817{-
818 if (!p
!pDescription
TRUEnever evaluated
FALSEnever evaluated
|| !n
!nDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
819 return;
never executed: return;
0
820-
821 const QTextBlockData *b = p->blockMap().fragment(n);-
822 b->revision = rev;-
823}
never executed: end of block
0
824bool QTextBlock::isVisible() const-
825{-
826 if (!p
!pDescription
TRUEnever evaluated
FALSEnever evaluated
|| !n
!nDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
827 return
never executed: return true;
true;
never executed: return true;
0
828-
829 const QTextBlockData *b = p->blockMap().fragment(n);-
830 return
never executed: return !b->hidden;
!b->hidden;
never executed: return !b->hidden;
0
831}-
832void QTextBlock::setVisible(bool visible)-
833{-
834 if (!p
!pDescription
TRUEnever evaluated
FALSEnever evaluated
|| !n
!nDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
835 return;
never executed: return;
0
836-
837 const QTextBlockData *b = p->blockMap().fragment(n);-
838 b->hidden = !visible;-
839}
never executed: end of block
0
840int QTextBlock::blockNumber() const-
841{-
842 if (!p
!pDescription
TRUEnever evaluated
FALSEnever evaluated
|| !n
!nDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
843 return
never executed: return -1;
-1;
never executed: return -1;
0
844 return
never executed: return p->blockMap().position(n, 1);
p->blockMap().position(n, 1);
never executed: return p->blockMap().position(n, 1);
0
845}-
846int QTextBlock::firstLineNumber() const-
847{-
848 if (!p
!pDescription
TRUEnever evaluated
FALSEnever evaluated
|| !n
!nDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
849 return
never executed: return -1;
-1;
never executed: return -1;
0
850 return
never executed: return p->blockMap().position(n, 2);
p->blockMap().position(n, 2);
never executed: return p->blockMap().position(n, 2);
0
851}-
852void QTextBlock::setLineCount(int count)-
853{-
854 if (!p
!pDescription
TRUEnever evaluated
FALSEnever evaluated
|| !n
!nDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
855 return;
never executed: return;
0
856 p->blockMap().setSize(n, count, 2);-
857}
never executed: end of block
0
858-
859-
860-
861-
862-
863-
864-
865int QTextBlock::lineCount() const-
866{-
867 if (!p
!pDescription
TRUEnever evaluated
FALSEnever evaluated
|| !n
!nDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
868 return
never executed: return -1;
-1;
never executed: return -1;
0
869 return
never executed: return p->blockMap().size(n, 2);
p->blockMap().size(n, 2);
never executed: return p->blockMap().size(n, 2);
0
870}-
871QTextBlock::iterator QTextBlock::begin() const-
872{-
873 if (!p
!pDescription
TRUEnever evaluated
FALSEnever evaluated
|| !n
!nDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
874 return
never executed: return iterator();
iterator();
never executed: return iterator();
0
875-
876 int pos = position();-
877 int len = length() - 1;-
878 int b = p->fragmentMap().findNode(pos);-
879 int e = p->fragmentMap().findNode(pos+len);-
880 return
never executed: return iterator(p, b, e, b);
iterator(p, b, e, b);
never executed: return iterator(p, b, e, b);
0
881}-
882-
883-
884-
885-
886-
887-
888-
889QTextBlock::iterator QTextBlock::end() const-
890{-
891 if (!p
!pDescription
TRUEnever evaluated
FALSEnever evaluated
|| !n
!nDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
892 return
never executed: return iterator();
iterator();
never executed: return iterator();
0
893-
894 int pos = position();-
895 int len = length() - 1;-
896 int b = p->fragmentMap().findNode(pos);-
897 int e = p->fragmentMap().findNode(pos+len);-
898 return
never executed: return iterator(p, b, e, e);
iterator(p, b, e, e);
never executed: return iterator(p, b, e, e);
0
899}-
900QTextBlock QTextBlock::next() const-
901{-
902 if (!isValid()
!isValid()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
903 return
never executed: return QTextBlock();
QTextBlock();
never executed: return QTextBlock();
0
904-
905 return
never executed: return QTextBlock(p, p->blockMap().next(n));
QTextBlock(p, p->blockMap().next(n));
never executed: return QTextBlock(p, p->blockMap().next(n));
0
906}-
907QTextBlock QTextBlock::previous() const-
908{-
909 if (!p
!pDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
910 return
never executed: return QTextBlock();
QTextBlock();
never executed: return QTextBlock();
0
911-
912 return
never executed: return QTextBlock(p, p->blockMap().previous(n));
QTextBlock(p, p->blockMap().previous(n));
never executed: return QTextBlock(p, p->blockMap().previous(n));
0
913}-
914-
915-
916-
917-
918-
919QTextFragment QTextBlock::iterator::fragment() const-
920{-
921 int ne = n;-
922 int formatIndex = p->fragmentMap().fragment(n)->format;-
923 do {-
924 ne = p->fragmentMap().next(ne);-
925 }
never executed: end of block
while (ne != e
ne != eDescription
TRUEnever evaluated
FALSEnever evaluated
&& p->fragmentMap().fragment(ne)->format == formatIndex
p->fragmentMap...== formatIndexDescription
TRUEnever evaluated
FALSEnever evaluated
);
0
926 return
never executed: return QTextFragment(p, n, ne);
QTextFragment(p, n, ne);
never executed: return QTextFragment(p, n, ne);
0
927}-
928-
929-
930-
931-
932-
933-
934-
935QTextBlock::iterator &QTextBlock::iterator::operator++()-
936{-
937 int ne = n;-
938 int formatIndex = p->fragmentMap().fragment(n)->format;-
939 do {-
940 ne = p->fragmentMap().next(ne);-
941 }
never executed: end of block
while (ne != e
ne != eDescription
TRUEnever evaluated
FALSEnever evaluated
&& p->fragmentMap().fragment(ne)->format == formatIndex
p->fragmentMap...== formatIndexDescription
TRUEnever evaluated
FALSEnever evaluated
);
0
942 n = ne;-
943 return
never executed: return *this;
*this;
never executed: return *this;
0
944}-
945-
946-
947-
948-
949-
950-
951QTextBlock::iterator &QTextBlock::iterator::operator--()-
952{-
953 n = p->fragmentMap().previous(n);-
954-
955 if (n == b
n == bDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
956 return
never executed: return *this;
*this;
never executed: return *this;
0
957-
958 int formatIndex = p->fragmentMap().fragment(n)->format;-
959 int last = n;-
960-
961 while (n != b
n != bDescription
TRUEnever evaluated
FALSEnever evaluated
&& p->fragmentMap().fragment(n)->format != formatIndex
p->fragmentMap...!= formatIndexDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
962 last = n;-
963 n = p->fragmentMap().previous(n);-
964 }
never executed: end of block
0
965-
966 n = last;-
967 return
never executed: return *this;
*this;
never executed: return *this;
0
968}-
969QList<QGlyphRun> QTextFragment::glyphRuns(int pos, int len) const-
970{-
971 if (!p
!pDescription
TRUEnever evaluated
FALSEnever evaluated
|| !n
!nDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
972 return
never executed: return QList<QGlyphRun>();
QList<QGlyphRun>();
never executed: return QList<QGlyphRun>();
0
973-
974 int blockNode = p->blockMap().findNode(position());-
975-
976 const QTextBlockData *blockData = p->blockMap().fragment(blockNode);-
977 QTextLayout *layout = blockData->layout;-
978-
979 int blockPosition = p->blockMap().position(blockNode);-
980 if (pos < 0
pos < 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
981 pos = position() - blockPosition;
never executed: pos = position() - blockPosition;
0
982 if (len < 0
len < 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
983 len = length();
never executed: len = length();
0
984 if (len == 0
len == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
985 return
never executed: return QList<QGlyphRun>();
QList<QGlyphRun>();
never executed: return QList<QGlyphRun>();
0
986-
987 QList<QGlyphRun> ret;-
988 for (int i=0; i<layout->lineCount()
i<layout->lineCount()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
989 QTextLine textLine = layout->lineAt(i);-
990 ret += textLine.glyphRuns(pos, len);-
991 }
never executed: end of block
0
992-
993 return
never executed: return ret;
ret;
never executed: return ret;
0
994}-
995-
996-
997-
998-
999-
1000int QTextFragment::position() const-
1001{-
1002 if (!p
!pDescription
TRUEnever evaluated
FALSEnever evaluated
|| !n
!nDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1003 return
never executed: return 0;
0;
never executed: return 0;
0
1004-
1005 return
never executed: return p->fragmentMap().position(n);
p->fragmentMap().position(n);
never executed: return p->fragmentMap().position(n);
0
1006}-
1007-
1008-
1009-
1010-
1011-
1012-
1013int QTextFragment::length() const-
1014{-
1015 if (!p
!pDescription
TRUEnever evaluated
FALSEnever evaluated
|| !n
!nDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1016 return
never executed: return 0;
0;
never executed: return 0;
0
1017-
1018 int len = 0;-
1019 int f = n;-
1020 while (f != ne
f != neDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1021 len += p->fragmentMap().size(f);-
1022 f = p->fragmentMap().next(f);-
1023 }
never executed: end of block
0
1024 return
never executed: return len;
len;
never executed: return len;
0
1025}-
1026-
1027-
1028-
1029-
1030-
1031bool QTextFragment::contains(int position) const-
1032{-
1033 if (!p
!pDescription
TRUEnever evaluated
FALSEnever evaluated
|| !n
!nDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1034 return
never executed: return false;
false;
never executed: return false;
0
1035 int pos = this->position();-
1036 return
never executed: return position >= pos && position < pos + length();
position >= pos
position >= posDescription
TRUEnever evaluated
FALSEnever evaluated
&& position < pos + length()
position < pos + length()Description
TRUEnever evaluated
FALSEnever evaluated
;
never executed: return position >= pos && position < pos + length();
0
1037}-
1038-
1039-
1040-
1041-
1042-
1043-
1044QTextCharFormat QTextFragment::charFormat() const-
1045{-
1046 if (!p
!pDescription
TRUEnever evaluated
FALSEnever evaluated
|| !n
!nDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1047 return
never executed: return QTextCharFormat();
QTextCharFormat();
never executed: return QTextCharFormat();
0
1048 const QTextFragmentData *data = p->fragmentMap().fragment(n);-
1049 return
never executed: return p->formatCollection()->charFormat(data->format);
p->formatCollection()->charFormat(data->format);
never executed: return p->formatCollection()->charFormat(data->format);
0
1050}-
1051-
1052-
1053-
1054-
1055-
1056-
1057-
1058int QTextFragment::charFormatIndex() const-
1059{-
1060 if (!p
!pDescription
TRUEnever evaluated
FALSEnever evaluated
|| !n
!nDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1061 return
never executed: return -1;
-1;
never executed: return -1;
0
1062 const QTextFragmentData *data = p->fragmentMap().fragment(n);-
1063 return
never executed: return data->format;
data->format;
never executed: return data->format;
0
1064}-
1065-
1066-
1067-
1068-
1069-
1070-
1071QString QTextFragment::text() const-
1072{-
1073 if (!p
!pDescription
TRUEnever evaluated
FALSEnever evaluated
|| !n
!nDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1074 return
never executed: return QString();
QString();
never executed: return QString();
0
1075-
1076 QString result;-
1077 QString buffer = p->buffer();-
1078 int f = n;-
1079 while (f != ne
f != neDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1080 const QTextFragmentData * const frag = p->fragmentMap().fragment(f);-
1081 result += QString(buffer.constData() + frag->stringPosition, frag->size_array[0]);-
1082 f = p->fragmentMap().next(f);-
1083 }
never executed: end of block
0
1084 return
never executed: return result;
result;
never executed: return result;
0
1085}-
1086-
1087-
Switch to Source codePreprocessed file

Generated by Squish Coco Non-Commercial 4.3.0-BETA-master-30-08-2018-4cb69e9