void QLabelPrivate::ensureTextLayouted() const { if (!textLayoutDirty) return; ensureTextPopulated(); if (control) { QTextDocument *doc = control->document(); QTextOption opt = doc->defaultTextOption(); opt.setAlignment(QFlag(this->align)); if (this->align & Qt::TextWordWrap) opt.setWrapMode(QTextOption::WordWrap); else opt.setWrapMode(QTextOption::ManualWrap); doc->setDefaultTextOption(opt); QTextFrameFormat fmt = doc->rootFrame()->frameFormat(); fmt.setMargin(0); doc->rootFrame()->setFrameFormat(fmt); doc->setTextWidth(documentRect().width()); } textLayoutDirty = false; }
void XmlConsole::clear() { ui_.te->clear(); QTextFrameFormat f = ui_.te->document()->rootFrame()->frameFormat(); f.setBackground(QBrush(Qt::black)); ui_.te->document()->rootFrame()->setFrameFormat(f); }
void ChatEdit::updateMargins() { QTextFrameFormat frameFormat = document()->rootFrame()->frameFormat(); frameFormat.setLeftMargin(10); frameFormat.setRightMargin(10); document()->rootFrame()->setFrameFormat(frameFormat); }
void QTextOdfWriter::writeFrameFormat(QXmlStreamWriter &writer, QTextFrameFormat format, int formatIndex) const { writer.writeStartElement(styleNS, QString::fromLatin1("style")); writer.writeAttribute(styleNS, QString::fromLatin1("name"), QString::fromLatin1("s%1").arg(formatIndex)); writer.writeAttribute(styleNS, QString::fromLatin1("family"), QString::fromLatin1("section")); writer.writeEmptyElement(styleNS, QString::fromLatin1("section-properties")); if (format.hasProperty(QTextFormat::FrameTopMargin)) writer.writeAttribute(foNS, QString::fromLatin1("margin-top"), pixelToPoint(qMax(qreal(0.), format.topMargin())) ); if (format.hasProperty(QTextFormat::FrameBottomMargin)) writer.writeAttribute(foNS, QString::fromLatin1("margin-bottom"), pixelToPoint(qMax(qreal(0.), format.bottomMargin())) ); if (format.hasProperty(QTextFormat::FrameLeftMargin)) writer.writeAttribute(foNS, QString::fromLatin1("margin-left"), pixelToPoint(qMax(qreal(0.), format.leftMargin())) ); if (format.hasProperty(QTextFormat::FrameRightMargin)) writer.writeAttribute(foNS, QString::fromLatin1("margin-right"), pixelToPoint(qMax(qreal(0.), format.rightMargin())) ); writer.writeEndElement(); // style // TODO consider putting the following properties in a qt-namespace. // Position position () const // qreal border () const // QBrush borderBrush () const // BorderStyle borderStyle () const // qreal padding () const // QTextLength width () const // QTextLength height () const // PageBreakFlags pageBreakPolicy () const }
void ServerWidget::reload_settings() { menu_quick_commands->clear(); for ( const auto& command : settings().quick_commands ) { auto action = new QAction(command.first, this); action->setData(command.second); menu_quick_commands->addAction(action); } update_player_actions(); // Console if ( settings().get("console/autocomplete", true) ) input_console->setWordCompleter(&complete_cvar); else input_console->setWordCompleter(nullptr); input_console->setWordCompleterMinChars(settings().get("console/autocomplete/min_chars",1)); input_console->setWordCompleterMaxSuggestions(settings().get("console/autocomplete/max_suggestions",128)); input_console->setFont(settings().console_font); /// \todo when it'll be a custom widget change accordingly QTextFrameFormat fmt; fmt.setBackground(settings().console_background); output_console->document()->rootFrame()->setFrameFormat(fmt); output_console->document()->setDefaultFont(settings().console_font); output_console->setTextColor(settings().console_foreground); }
//---------------------------------------------------------------------------- // XmlConsole //---------------------------------------------------------------------------- XmlConsole::XmlConsole(PsiAccount *_pa) :QWidget() { ui_.setupUi(this); pa = _pa; pa->dialogRegister(this); connect(pa, SIGNAL(updatedAccount()), SLOT(updateCaption())); connect(pa->client(), SIGNAL(xmlIncoming(const QString &)), SLOT(client_xmlIncoming(const QString &))); connect(pa->client(), SIGNAL(xmlOutgoing(const QString &)), SLOT(client_xmlOutgoing(const QString &))); connect(pa->psi(), SIGNAL(accountCountChanged()), this, SLOT(updateCaption())); updateCaption(); prompt = 0; ui_.te->setUndoRedoEnabled(false); ui_.te->setReadOnly(true); ui_.te->setAcceptRichText(false); QTextFrameFormat f = ui_.te->document()->rootFrame()->frameFormat(); f.setBackground(QBrush(Qt::black)); ui_.te->document()->rootFrame()->setFrameFormat(f); connect(ui_.pb_clear, SIGNAL(clicked()), SLOT(clear())); connect(ui_.pb_input, SIGNAL(clicked()), SLOT(insertXml())); connect(ui_.pb_close, SIGNAL(clicked()), SLOT(close())); connect(ui_.pb_dumpRingbuf, SIGNAL(clicked()), SLOT(dumpRingbuf())); connect(ui_.ck_enable, SIGNAL(clicked(bool)), ui_.gb_filter, SLOT(setEnabled(bool))); resize(560,400); }
text_writer( docEdit& e ) : edit( e ) { QTextCursor cursor = edit.textCursor(); cursor.movePosition( QTextCursor::Start ); mainFrame = cursor.currentFrame(); plainFormat = cursor.charFormat(); plainFormat.setFontPointSize( 10 ); paragraphFormat = plainFormat; paragraphFormat.setFontPointSize( 12 ); headingFormat = plainFormat; headingFormat.setFontWeight( QFont::Bold ); headingFormat.setFontPointSize( 16 ); empasisFormat = plainFormat; empasisFormat.setFontItalic( true ); tagFormat = plainFormat; tagFormat.setForeground( QColor( "#990000" ) ); tagFormat.setFontUnderline( true ); underlineFormat = plainFormat; underlineFormat.setFontUnderline( true ); frameFormat.setBorderStyle( QTextFrameFormat::BorderStyle_Inset ); frameFormat.setBorder( 1 ); frameFormat.setMargin( 10 ); frameFormat.setPadding( 4 ); }
TextLayer::TextLayer(const int layer_id , QGraphicsItem *parent , QGraphicsScene *scene ) : QGraphicsItem(parent,scene),evesum(0),modus(Show),border(1.),currentprintrender(false), hi(Metric("30px")),wi(Metric("110px")),bgcolor(QColor(Qt::white)),SwapLockBreak(false), bordercolor(QColor(Qt::red)),Rotate(0),check_view_area_time(0),ActionHover(false), format(DIV_ABSOLUTE),mount(new TextController) { mount->q = this; setAcceptsHoverEvents(true); wisub_border = wi + border; history.clear(); id = layer_id; setAcceptDrops(true); setFlag(QGraphicsItem::ItemIsSelectable,true); setFlag(QGraphicsItem::ItemIsFocusable,true); setFlag(QGraphicsItem::ItemIsMovable,false); setSelected(false); _doc = new QTextDocument(); _doc->setHtml(tr("<p>Write your text<p>")); QTextFrame *Tframe = _doc->rootFrame(); QTextFrameFormat rootformats = Tframe->frameFormat(); rootformats.setWidth(wi); rootformats.setBorder(0); Tframe->setFrameFormat(rootformats); _doc->setPageSize(QSizeF(wi,hi)); DLayout = _doc->documentLayout(); setDocument(_doc); mount->txtControl()->document()->toHtml().size(); /* connect all */ setZValue(1.99999); RestoreMoveAction(); init(); }
QTextFrameFormat DefaultFrameFormat() { QTextFrameFormat base; base.setBorderBrush ( Qt::blue ); base.setBorderStyle ( QTextFrameFormat::BorderStyle_Solid ); base.setBorder ( 0.6 ); return base; }
QTextFrame *QTextDocumentPrivate::rootFrame() const { if (!rtFrame) { QTextFrameFormat defaultRootFrameFormat; defaultRootFrameFormat.setMargin(DefaultRootFrameMargin); rtFrame = qobject_cast<QTextFrame *>(const_cast<QTextDocumentPrivate *>(this)->createObject(defaultRootFrameFormat)); } return rtFrame; }
ClientTextEdit::ClientTextEdit(QWidget* parent) : QTextEdit(parent) { setReadOnly(true); setOverwriteMode(true); setUndoRedoEnabled(false); setDocumentTitle("mClient"); setTextInteractionFlags(Qt::TextSelectableByMouse | Qt::LinksAccessibleByMouse); setTabChangesFocus(false); //_doc->setMaximumBlockCount(Config().scrollbackSize); // max number of lines? document()->setUndoRedoEnabled(false); QTextFrame* frame = document()->rootFrame(); _cursor = frame->firstCursorPosition(); // Default Colors _foregroundColor = Qt::lightGray; _backgroundColor = Qt::black; _blackColor = Qt::darkGray; _redColor = Qt::darkRed; _greenColor = Qt::darkGreen; _yellowColor = Qt::darkYellow; _blueColor = Qt::darkBlue; _magentaColor = Qt::darkMagenta; _cyanColor = Qt::darkCyan; _grayColor = Qt::lightGray; _darkGrayColor = Qt::gray; _brightRedColor = Qt::red; _brightGreenColor = Qt::green; _brightYellowColor = Qt::yellow; _brightBlueColor = Qt::blue; _brightMagentaColor = Qt::magenta; _brightCyanColor = Qt::cyan; _whiteColor = Qt::white; // Default Fonts _serverOutputFont = QFont("Monospace", 10); _inputLineFont = QFont("Monospace", 10); //QApplication::font(); _serverOutputFont.setStyleHint(QFont::TypeWriter, QFont::PreferAntialias); QTextFrameFormat frameFormat = frame->frameFormat(); frameFormat.setBackground(_backgroundColor); frameFormat.setForeground(_foregroundColor); frame->setFrameFormat(frameFormat); _format = _cursor.charFormat(); setDefaultFormat(_format); _defaultFormat = _format; _cursor.setCharFormat(_format); QFontMetrics fm(_serverOutputFont); setTabStopWidth(fm.width(" ") * 8); // A tab is 8 spaces wide QScrollBar* scrollbar = verticalScrollBar(); scrollbar->setSingleStep(fm.leading()+fm.height()); connect(scrollbar, SIGNAL(sliderReleased()), this, SLOT(scrollBarReleased())); previous = 0; }
/*! * \author Anders Fernström * \date 2006-03-02 * * \brief set the chapter counter */ void InputCell::setChapterCounter( QString number ) { chaptercounter_->selectAll(); chaptercounter_->setPlainText( number ); chaptercounter_->setAlignment( (Qt::AlignmentFlag)Qt::AlignRight ); QTextFrameFormat format = chaptercounter_->document()->rootFrame()->frameFormat(); format.setMargin( style_.textFrameFormat()->margin() + style_.textFrameFormat()->border() + style_.textFrameFormat()->padding() ); chaptercounter_->document()->rootFrame()->setFrameFormat( format ); }
void ServerWidget::clear_log() { output_console->clear(); /// \todo when it'll be a custom widget remove QTextFrameFormat fmt; fmt.setBackground(settings().console_background); output_console->document()->rootFrame()->setFrameFormat(fmt); output_console->document()->setDefaultFont(settings().console_font); output_console->setTextColor(settings().console_foreground); }
void HtmlExporter::emitFrame( QTextFrame::Iterator frameIt ) { // kDebug() << "html" << html; if ( !frameIt.atEnd() ) { QTextFrame::Iterator next = frameIt; ++next; if ( next.atEnd() && frameIt.currentFrame() == 0 && frameIt.parentFrame() != doc->rootFrame() && frameIt.currentBlock().begin().atEnd() ) { return; } } for ( QTextFrame::Iterator it = frameIt; !it.atEnd(); ++it ) {; if ( QTextFrame *f = it.currentFrame() ) { // qDebug() << "Its a frame, not a block" << endl; if ( QTextTable * table = qobject_cast<QTextTable *>( f ) ) { emitTable( table ); } else { // qDebug() << "isn't table" << endl; html += QLatin1String( "\n<table" ); QTextFrameFormat format = f->frameFormat(); if ( format.hasProperty( QTextFormat::FrameBorder ) ) { emitAttribute( "border", QString::number( format.border() ) ); } html += QLatin1String( " style=\"-qt-table-type: frame;" ); emitFloatStyle( format.position(), OmitStyleTag ); if ( format.hasProperty( QTextFormat::FrameMargin ) ) { const QString margin = QString::number( format.margin() ); emitMargins( margin, margin, margin, margin ); } html += QLatin1Char( '\"' ); emitTextLength( "width", format.width() ); emitTextLength( "height", format.height() ); QBrush bg = format.background(); if ( bg != Qt::NoBrush ) { emitAttribute( "bgcolor", bg.color().name() ); } html += QLatin1Char( '>' ); html += QLatin1String( "\n<tr>\n<td style=\"border: none;\">" ); emitFrame( f->begin() ); html += QLatin1String( "</td></tr></table>" ); } } else if ( it.currentBlock().isValid() ) { // qDebug()<< "is valid" << endl; emitBlock( it.currentBlock() ); } } }
void KDReports::TextDocumentData::updatePercentSizes( const QSizeF& size ) { QTextCursor c( m_document ); c.beginEditBlock(); // TODO only if we inserted resizable images do { c.movePosition( QTextCursor::NextCharacter ); QTextCharFormat format = c.charFormat(); if ( format.hasProperty( ResizableImageProperty ) ) { Q_ASSERT( format.isImageFormat() ); QTextImageFormat imageFormat = format.toImageFormat(); updatePercentSize( imageFormat, size ); //qDebug() << "updatePercentSizes: setting image to " << imageFormat.width() << "," << imageFormat.height(); c.movePosition( QTextCursor::PreviousCharacter, QTextCursor::KeepAnchor ); c.setCharFormat( imageFormat ); c.movePosition( QTextCursor::NextCharacter ); } } while ( !c.atEnd() ); if (m_usesTabPositions) { QTextFrameFormat rootFrameFormat = m_document->rootFrame()->frameFormat(); const int rootFrameMargins = rootFrameFormat.leftMargin() + rootFrameFormat.rightMargin(); QTextBlock block = m_document->firstBlock(); do { QTextBlockFormat blockFormat = block.blockFormat(); QList<QTextOption::Tab> tabs = blockFormat.tabPositions(); //qDebug() << "Looking at block" << block.blockNumber() << "tabs:" << tabs.count(); if (!tabs.isEmpty()) { for (int i = 0; i < tabs.count(); ++i) { QTextOption::Tab& tab = tabs[i]; if ( tab.delimiter == QLatin1Char('P') /* means Page -- see rightAlignedTab*/) { if ( tab.type == QTextOption::RightTab ) { //qDebug() << "Adjusted RightTab from" << tab.position << "to" << size.width(); tab.position = size.width() - rootFrameMargins; } else if ( tab.type == QTextOption::CenterTab ) { tab.position = ( size.width() - rootFrameMargins ) / 2; } } } blockFormat.setTabPositions( tabs ); //qDebug() << "Adjusted tabs:" << tabs; c.setPosition( block.position() ); c.setBlockFormat( blockFormat ); } block = block.next(); } while ( block.isValid() ); } c.endEditBlock(); }
void KoSectionStyle::unapplyStyle(QTextFrame §ion) const { if (d->parentStyle) d->parentStyle->unapplyStyle(section); QTextFrameFormat format = section.frameFormat(); QList<int> keys = d->stylesPrivate.keys(); for (int i = 0; i < keys.count(); i++) { QVariant variant = d->stylesPrivate.value(keys[i]); if (variant == format.property(keys[i])) format.clearProperty(keys[i]); } section.setFrameFormat(format); }
QTextDocument* Converter::convert( const QString &fileName ) { Document *textDocument = new Document( fileName ); textDocument->setPageSize(QSizeF( 600, 800 )); QTextFrameFormat frameFormat; frameFormat.setMargin( 20 ); QTextFrame *rootFrame = textDocument->rootFrame(); rootFrame->setFrameFormat( frameFormat ); emit addMetaData( Okular::DocumentInfo::MimeType, "text/plain" ); return textDocument; }
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); // 获取文档对象 QTextDocument *document = ui->textEdit->document(); // 获取根框架 QTextFrame *rootFrame = document->rootFrame(); // 创建框架格式 QTextFrameFormat format; // 边界颜色 format.setBorderBrush(Qt::red); // 边界宽度 format.setBorder(3); // 框架使用格式 rootFrame->setFrameFormat(format); QTextFrameFormat frameFormat; // 设置背景颜色 frameFormat.setBackground(Qt::lightGray); // 设置边距 frameFormat.setMargin(10); // 设置填衬 frameFormat.setPadding(5); frameFormat.setBorder(2); frameFormat.setBorderStyle(QTextFrameFormat::BorderStyle_Dotted); //设置边框样式 // 获取光标 QTextCursor cursor = ui->textEdit->textCursor(); // 在光标处插入框架 cursor.insertFrame(frameFormat); //以下是5.2.2节内容 QAction *action_textFrame = new QAction(tr("框架"),this); connect(action_textFrame,SIGNAL(triggered()),this,SLOT(showTextFrame())); // 在工具栏添加动作 ui->mainToolBar->addAction(action_textFrame); QAction *action_textBlock = new QAction(tr("文本块"),this); connect(action_textBlock,SIGNAL(triggered()),this,SLOT(showTextBlock())); ui->mainToolBar->addAction(action_textBlock); QAction *action_font = new QAction(tr("字体"),this); // 设置动作可以被选中 action_font->setCheckable(true); connect(action_font,SIGNAL(toggled(bool)),this,SLOT(setTextFont(bool))); ui->mainToolBar->addAction(action_font); }
//! [2] void MainWindow::newLetter() { textEdit->clear(); QTextCursor cursor(textEdit->textCursor()); cursor.movePosition(QTextCursor::Start); QTextFrame *topFrame = cursor.currentFrame(); QTextFrameFormat topFrameFormat = topFrame->frameFormat(); topFrameFormat.setPadding(16); topFrame->setFrameFormat(topFrameFormat); QTextCharFormat textFormat; QTextCharFormat boldFormat; boldFormat.setFontWeight(QFont::Bold); QTextCharFormat italicFormat; italicFormat.setFontItalic(true); QTextTableFormat tableFormat; tableFormat.setBorder(1); tableFormat.setCellPadding(16); tableFormat.setAlignment(Qt::AlignRight); cursor.insertTable(1, 1, tableFormat); cursor.insertText("The Firm", boldFormat); cursor.insertBlock(); cursor.insertText("321 City Street", textFormat); cursor.insertBlock(); cursor.insertText("Industry Park"); cursor.insertBlock(); cursor.insertText("Some Country"); cursor.setPosition(topFrame->lastPosition()); cursor.insertText(QDate::currentDate().toString("d MMMM yyyy"), textFormat); cursor.insertBlock(); cursor.insertBlock(); cursor.insertText("Dear ", textFormat); cursor.insertText("NAME", italicFormat); cursor.insertText(",", textFormat); for (int i = 0; i < 3; ++i) cursor.insertBlock(); cursor.insertText(tr("Yours sincerely,"), textFormat); for (int i = 0; i < 3; ++i) cursor.insertBlock(); cursor.insertText("The Boss", textFormat); cursor.insertBlock(); cursor.insertText("ADDRESS", italicFormat); }
/*! Append a new message to the current session and scroll to the end of the message protocol and returns true if the action was successful. The \a messageColor defines the color of the message box and should be provided as a full-color (no dimming required) color, as it is automatically adjusted for the border and background. */ bool QwcPrivateMessager::appendMessageToCurrentSession(QTextDocument *document, const QString message, const QColor messageColor) { if (!document) { return false; } QTextCursor cursor = document->rootFrame()->lastCursorPosition(); cursor.movePosition(QTextCursor::StartOfBlock); QTextFrameFormat frameFormat; frameFormat.setPadding(4); frameFormat.setBackground(messageColor.lighter(190)); frameFormat.setMargin(0); frameFormat.setBorder(2); frameFormat.setBorderBrush(messageColor.lighter(150)); frameFormat.setBorderStyle(QTextFrameFormat::BorderStyle_Outset); // Title QTextCharFormat backupCharFormat = cursor.charFormat(); QTextCharFormat newCharFormat; newCharFormat.setFontPointSize(9); QTextBlockFormat headerFormat; headerFormat.setAlignment(Qt::AlignHCenter); cursor.insertBlock(headerFormat); cursor.setCharFormat(newCharFormat); cursor.insertText(QDateTime::currentDateTime().toString()); QTextFrame *frame = cursor.insertFrame(frameFormat); cursor.setCharFormat(backupCharFormat); frame->firstCursorPosition().insertText(message); return true; }
static PyObject *meth_QTextFrameFormat_isValid(PyObject *sipSelf, PyObject *sipArgs) { PyObject *sipParseErr = NULL; { QTextFrameFormat *sipCpp; if (sipParseArgs(&sipParseErr, sipArgs, "B", &sipSelf, sipType_QTextFrameFormat, &sipCpp)) { bool sipRes; Py_BEGIN_ALLOW_THREADS sipRes = sipCpp->isValid(); Py_END_ALLOW_THREADS return PyBool_FromLong(sipRes); } }
//---------------------------------------------------------------------------- // XmlConsole //---------------------------------------------------------------------------- XmlConsole::XmlConsole(PsiAccount *_pa) :QWidget() { #ifdef YAPSI setStyle(YaStyle::defaultStyle()); #endif ui_.setupUi(this); pa = _pa; pa->dialogRegister(this); connect(pa, SIGNAL(updatedAccount()), SLOT(updateCaption())); connect(pa->client(), SIGNAL(xmlIncoming(const QString &)), SLOT(client_xmlIncoming(const QString &))); connect(pa->client(), SIGNAL(xmlOutgoing(const QString &)), SLOT(client_xmlOutgoing(const QString &))); connect(pa->psi(), SIGNAL(accountCountChanged()), this, SLOT(updateCaption())); updateCaption(); prompt = 0; ui_.te->setUndoRedoEnabled(false); ui_.te->setReadOnly(true); ui_.te->setTextFormat(Qt::PlainText); QTextFrameFormat f = ui_.te->document()->rootFrame()->frameFormat(); f.setBackground(QBrush(Qt::black)); ui_.te->document()->rootFrame()->setFrameFormat(f); connect(ui_.pb_clear, SIGNAL(clicked()), SLOT(clear())); connect(ui_.pb_input, SIGNAL(clicked()), SLOT(insertXml())); connect(ui_.pb_close, SIGNAL(clicked()), SLOT(close())); connect(ui_.pb_dumpRingbuf, SIGNAL(clicked()), SLOT(dumpRingbuf())); connect(ui_.ck_enable, SIGNAL(clicked(bool)), ui_.gb_filter, SLOT(setEnabled(bool))); #ifdef DEFAULT_XMLCONSOLE enable(); #endif #ifdef YAPSI YaStyle::makeMeNativeLooking(this); #endif resize(560,400); }
void MainWindow::newLetter(){ chatbox->clear(); QTextCursor cursor(chatbox->textCursor()); cursor.movePosition(QTextCursor::Start); QTextFrame *topFrame = cursor.currentFrame(); QTextFrameFormat topFrameFormat = topFrame->frameFormat(); topFrameFormat.setPadding(16); topFrame->setFrameFormat(topFrameFormat); QTextCharFormat textFormat; QTextCharFormat boldFormat; boldFormat.setFontWeight(QFont::Bold); QTextCharFormat italicFormat; italicFormat.setFontItalic(true); /*QTextTableFormat tableFormat; tableFormat.setBorder(1); tableFormat.setCellPadding(16); tableFormat.setAlignment(Qt::AlignRight); cursor.insertTable(1, 1, tableFormat); cursor.insertText("The Firm", boldFormat); cursor.insertBlock(); cursor.insertText("321 City Street", textFormat); cursor.insertBlock(); cursor.insertText("Industry Park"); cursor.insertBlock(); cursor.insertText("Some Country"); */ cursor.setPosition(topFrame->lastPosition()); cursor.insertText("Railguy: ", boldFormat); cursor.insertText("lol nub", textFormat); cursor.insertBlock(); cursor.insertText("Chaos: ", boldFormat); cursor.insertText("nou", textFormat); cursor.insertBlock(); QFont font = chattitle->font(); font.setBold(true); chattitle->setFont(font); chattitle->setText("#General"); }
void KoSectionStyle::applyStyle(QTextFrameFormat &format) const { if (d->parentStyle) { d->parentStyle->applyStyle(format); } QList<int> keys = d->stylesPrivate.keys(); for (int i = 0; i < keys.count(); i++) { QVariant variant = d->stylesPrivate.value(keys[i]); format.setProperty(keys[i], variant); } }
/*! * \class TextCursorChangeBorder * \author Anders Fernström * \date 2005-11-03 * \date 2005-11-07 (update) * * \brief Command for changing border * * 2005-11-07 AF, implemented the function */ void TextCursorChangeBorder::execute() { QTextEdit *editor = document()->getCursor()->currentCell()->textEdit(); if( editor ) { QTextFrameFormat format = editor->document()->rootFrame()->frameFormat(); format.setBorder( border_ ); editor->document()->rootFrame()->setFrameFormat( format ); // create a rule for the border QString ruleValue; ruleValue.setNum( border_ ); Rule *rule = new Rule( "OMNotebook_Border", ruleValue ); document()->getCursor()->currentCell()->addRule( rule ); // update the cells style document()->getCursor()->currentCell()->style()->textFrameFormat()->setBorder( border_ ); } }
/* QSize PsiTipLabel::sizeForWidth(int w) const { QRect br; int hextra = 2 * margin; int vextra = hextra; if (isRichText) { hextra = 1; vextra = 1; } PsiRichText::ensureTextLayouted(doc, w); const qreal oldTextWidth = doc->textWidth(); doc->adjustSize(); br = QRect(QPoint(0, 0), doc->size().toSize()); doc->setTextWidth(oldTextWidth); QFontMetrics fm(font()); QSize extra(hextra + 1, vextra); // Make it look good with the default ToolTip font on Mac, which has a small descent. if (fm.descent() == 2 && fm.ascent() >= 11) vextra++; const QSize contentsSize(br.width() + hextra, br.height() + vextra); return contentsSize; } */ QSize PsiTipLabel::sizeHint() const { QTextFrameFormat fmt = doc->rootFrame()->frameFormat(); fmt.setMargin(0); doc->rootFrame()->setFrameFormat(fmt); // PsiRichText::ensureTextLayouted(doc, -1); doc->adjustSize(); // br = QRect(QPoint(0, 0), doc->size().toSize()); // this way helps to fight empty space on the right: QSize docSize = QSize(static_cast<int>(doc->idealWidth()), doc->size().toSize().height()); QFontMetrics fm(font()); QSize extra(2*margin + 2, 2*margin + 1); // "+" for tip's frame // Make it look good with the default ToolTip font on Mac, which has a small descent. if (fm.descent() == 2 && fm.ascent() >= 11) ++extra.rheight(); return docSize + extra; }
void KDReports::Frame::build( ReportBuilder& builder ) const { // prepare the frame QTextFrameFormat format; if ( d->m_width ) { if ( d->m_widthUnit == Millimeters ) { format.setWidth( QTextLength( QTextLength::FixedLength, mmToPixels( d->m_width ) ) ); } else { format.setWidth( QTextLength( QTextLength::PercentageLength, d->m_width ) ); } } if ( d->m_height ) { if ( d->m_heightUnit == Millimeters ) { format.setHeight( QTextLength( QTextLength::FixedLength, mmToPixels( d->m_height ) ) ); } else { format.setHeight( QTextLength( QTextLength::PercentageLength, d->m_height ) ); } } format.setPadding( mmToPixels( padding() ) ); format.setBorder( d->m_border ); // TODO borderBrush like in AbstractTableElement format.setPosition( QTextFrameFormat::InFlow ); QTextCursor& textDocCursor = builder.cursor(); QTextFrame *frame = textDocCursor.insertFrame(format); QTextCursor contentsCursor = frame->firstCursorPosition(); ReportBuilder contentsBuilder( builder.currentDocumentData(), contentsCursor, builder.report() ); contentsBuilder.copyStateFrom( builder ); foreach( const KDReports::ElementData& ed, d->m_elements ) { switch ( ed.m_type ) { case KDReports::ElementData::Inline: contentsBuilder.addInlineElement( *ed.m_element ); break; case KDReports::ElementData::Block: contentsBuilder.addBlockElement( *ed.m_element, ed.m_align ); break; case KDReports::ElementData::Variable: contentsBuilder.addVariable( ed.m_variableType ); break; } } textDocCursor.movePosition( QTextCursor::End ); }
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(); }
/*! * \author Anders Fernström * \date 2005-10-27 * \date 2006-03-02 (update) * * \brief Set cell style * * IMPORTANT: User shouldn't be able to change style on inputcells * so this function always use "Input" as style. * * 2005-11-03 AF, updated so the text is selected when the style * is changed, after the text is unselected. * 2006-03-02 AF, set chapter style * * \param style The cell style that is to be applyed to the cell */ void InputCell::setStyle(CellStyle style) { if( style.name() == "Input" ) { Cell::setStyle( style ); // select all the text input_->selectAll(); // set the new style settings input_->setAlignment( (Qt::AlignmentFlag)style_.alignment() ); input_->mergeCurrentCharFormat( (*style_.textCharFormat()) ); input_->document()->rootFrame()->setFrameFormat( (*style_.textFrameFormat()) ); // unselect the text QTextCursor cursor( input_->textCursor() ); cursor.clearSelection(); input_->setTextCursor( cursor ); // 2006-03-02 AF, set chapter counter style chaptercounter_->selectAll(); chaptercounter_->mergeCurrentCharFormat( (*style_.textCharFormat()) ); QTextFrameFormat format = chaptercounter_->document()->rootFrame()->frameFormat(); format.setMargin( style_.textFrameFormat()->margin() + style_.textFrameFormat()->border() + style_.textFrameFormat()->padding() ); chaptercounter_->document()->rootFrame()->setFrameFormat( format ); chaptercounter_->setAlignment( (Qt::AlignmentFlag)Qt::AlignRight ); cursor = chaptercounter_->textCursor(); cursor.clearSelection(); chaptercounter_->setTextCursor( cursor ); } else { setStyle( "Input" ); } }
void QQuickTextNodeEngine::addFrameDecorations(QTextDocument *document, QTextFrame *frame) { QTextDocumentLayout *documentLayout = qobject_cast<QTextDocumentLayout *>(document->documentLayout()); QTextFrameFormat frameFormat = frame->format().toFrameFormat(); QTextTable *table = qobject_cast<QTextTable *>(frame); QRectF boundingRect = table == 0 ? documentLayout->frameBoundingRect(frame) : documentLayout->tableBoundingRect(table); QBrush bg = frame->frameFormat().background(); if (bg.style() != Qt::NoBrush) m_backgrounds.append(qMakePair(boundingRect, bg.color())); if (!frameFormat.hasProperty(QTextFormat::FrameBorder)) return; qreal borderWidth = frameFormat.border(); if (qFuzzyIsNull(borderWidth)) return; QBrush borderBrush = frameFormat.borderBrush(); QTextFrameFormat::BorderStyle borderStyle = frameFormat.borderStyle(); if (borderStyle == QTextFrameFormat::BorderStyle_None) return; addBorder(boundingRect.adjusted(frameFormat.leftMargin(), frameFormat.topMargin(), -frameFormat.rightMargin(), -frameFormat.bottomMargin()), borderWidth, borderStyle, borderBrush); if (table != 0) { int rows = table->rows(); int columns = table->columns(); for (int row=0; row<rows; ++row) { for (int column=0; column<columns; ++column) { QTextTableCell cell = table->cellAt(row, column); QRectF cellRect = documentLayout->tableCellBoundingRect(table, cell); addBorder(cellRect.adjusted(-borderWidth, -borderWidth, 0, 0), borderWidth, borderStyle, borderBrush); } } } }