QwtRichTextDocument( const QString &text, int flags, const QFont &font ) { setUndoRedoEnabled( false ); setDefaultFont( font ); setHtml( text ); // make sure we have a document layout ( void )documentLayout(); QTextOption option = defaultTextOption(); if ( flags & Qt::TextWordWrap ) option.setWrapMode( QTextOption::WordWrap ); else option.setWrapMode( QTextOption::NoWrap ); option.setAlignment( ( Qt::Alignment ) flags ); setDefaultTextOption( option ); QTextFrame *root = rootFrame(); QTextFrameFormat fm = root->frameFormat(); fm.setBorder( 0 ); fm.setMargin( 0 ); fm.setPadding( 0 ); fm.setBottomMargin( 0 ); fm.setLeftMargin( 0 ); root->setFrameFormat( fm ); adjustSize(); }
QTextFrame *QTextDocumentPrivate::frameAt(int pos) const { QTextFrame *f = rootFrame(); while (1) { QTextFrame *c = findChildFrame(f, pos); if (!c) return f; f = c; } }
NRichFrame* NWindow::GetRootFrame() { if(rootFrame_ == NULL) { Base::NInstPtr<NRichFrame> rootFrame(MemToolParam); rootFrame_ = (NRichFrame*)rootFrame; rootFrame_->SetId(_T("rootFrame")); rootFrame_->window_ = this; rootFrame->SetLayout(NFrame::LayoutHFill | NFrame::LayoutVFill); Base::NRect rect; GetRect(rect); rootFrame_->SetSize(rect.Width(), rect.Height()); } return rootFrame_; }
void QTextDocumentPrivate::scan_frames(int pos, int charsRemoved, int charsAdded) { // ###### optimise Q_UNUSED(pos); Q_UNUSED(charsRemoved); Q_UNUSED(charsAdded); QTextFrame *f = rootFrame(); clearFrame(f); for (FragmentIterator it = begin(); it != end(); ++it) { // QTextFormat fmt = formats.format(it->format); QTextFrame *frame = qobject_cast<QTextFrame *>(objectForFormat(it->format)); if (!frame) continue; Q_ASSERT(it.size() == 1); QChar ch = text.at(it->stringPosition); if (ch == QTextBeginningOfFrame) { if (f != frame) { // f == frame happens for tables Q_ASSERT(frame->d_func()->fragment_start == it.n || frame->d_func()->fragment_start == 0); frame->d_func()->parentFrame = f; f->d_func()->childFrames.append(frame); f = frame; } } else if (ch == QTextEndOfFrame) { Q_ASSERT(f == frame); Q_ASSERT(frame->d_func()->fragment_end == it.n || frame->d_func()->fragment_end == 0); f = frame->d_func()->parentFrame; } else if (ch == QChar::ObjectReplacementCharacter) { Q_ASSERT(f != frame); Q_ASSERT(frame->d_func()->fragment_start == it.n || frame->d_func()->fragment_start == 0); Q_ASSERT(frame->d_func()->fragment_end == it.n || frame->d_func()->fragment_end == 0); frame->d_func()->parentFrame = f; f->d_func()->childFrames.append(frame); } else { Q_ASSERT(false); } } Q_ASSERT(f == rtFrame); framesDirty = false; }
TextDocument* TextDocument::clone() { if (d.dirty > 0) flush(); TextDocument* doc = new TextDocument(d.buffer); doc->setDefaultStyleSheet(defaultStyleSheet()); QTextCursor(doc).insertFragment(QTextDocumentFragment(this)); doc->rootFrame()->setFrameFormat(rootFrame()->frameFormat()); // TODO: doc->d.uc = d.uc; doc->d.css = d.css; doc->d.lowlight = d.lowlight; doc->d.buffer = d.buffer; doc->d.highlights = d.highlights; doc->d.timeStampFormat = d.timeStampFormat; doc->d.clone = true; return doc; }