void visit(QTextBlock &block) const { QTextBlockFormat format = block.blockFormat(); // TODO make the 10 configurable. format.setLeftMargin(qMax(qreal(0.0), format.leftMargin() - 10)); if (block.textList()) { const QTextListFormat listFormat = block.textList()->format(); if (format.leftMargin() < listFormat.doubleProperty(KoListStyle::Margin)) { format.setLeftMargin(listFormat.doubleProperty(KoListStyle::Margin)); } } QTextCursor cursor(block); cursor.setBlockFormat(format); }
void InputWidget::currentChanged(const QModelIndex ¤t, const QModelIndex &previous) { BufferId currentBufferId = current.data(NetworkModel::BufferIdRole).value<BufferId>(); BufferId previousBufferId = previous.data(NetworkModel::BufferIdRole).value<BufferId>(); if (_perChatHistory) { //backup historyMap[previousBufferId].history = inputLine()->history(); historyMap[previousBufferId].tempHistory = inputLine()->tempHistory(); historyMap[previousBufferId].idx = inputLine()->idx(); historyMap[previousBufferId].inputLine = inputLine()->html(); //restore inputLine()->setHistory(historyMap[currentBufferId].history); inputLine()->setTempHistory(historyMap[currentBufferId].tempHistory); inputLine()->setIdx(historyMap[currentBufferId].idx); inputLine()->setHtml(historyMap[currentBufferId].inputLine); inputLine()->moveCursor(QTextCursor::End, QTextCursor::MoveAnchor); // FIXME this really should be in MultiLineEdit (and the const int on top removed) QTextBlockFormat format = inputLine()->textCursor().blockFormat(); format.setLeftMargin(leftMargin); // we want a little space between the frame and the contents inputLine()->textCursor().setBlockFormat(format); } NetworkId networkId = current.data(NetworkModel::NetworkIdRole).value<NetworkId>(); if (networkId == _networkId) return; setNetwork(networkId); updateNickSelector(); updateEnabledState(); }
void CreateBlogMsg::blockQuote() { QTextBlockFormat blockFormat = ui.msgEdit->textCursor().blockFormat(); QTextBlockFormat f; if ( blockFormat.hasProperty( TextFormat::IsBlockQuote ) && blockFormat.boolProperty( TextFormat::IsBlockQuote ) ) { f.setProperty( TextFormat::IsBlockQuote, QVariant( false ) ); f.setLeftMargin( 0 ); f.setRightMargin( 0 ); } else { f.setProperty( TextFormat::IsBlockQuote, QVariant( true ) ); f.setLeftMargin( 40 ); f.setRightMargin( 40 ); } ui.msgEdit->textCursor().mergeBlockFormat( f ); }
void visit(QTextBlock &block) const { QTextBlockFormat format = block.blockFormat(); // TODO make the 10 configurable. if (!block.textList()) { format.setLeftMargin(format.leftMargin() + 10); } else { const QTextListFormat listFormat = block.textList()->format(); if (format.leftMargin() == 0) { format.setLeftMargin(listFormat.doubleProperty(KoListStyle::Margin) + 10); } else { format.setLeftMargin(format.leftMargin() + 10); } } QTextCursor cursor(block); cursor.setBlockFormat(format); }
/* set all margin to zero qt4 send 12 top 12 bottom by default */ QTextBlockFormat DefaultMargin( QTextBlockFormat rootformats ) { rootformats.setBottomMargin(4); rootformats.setTopMargin(4); rootformats.setRightMargin(0); rootformats.setLeftMargin(0); rootformats.setAlignment( Qt::AlignLeft ); return rootformats; }
void Dialog_report::buat_table() { int i; QTextCursor cursor( ui->edit->textCursor()); cursor.movePosition(QTextCursor::Start); ui->edit->setText("Ini report"); /* QTextTableFormat format; format.setHeight( 600 ); format.setWidth( 800 ); format.setCellPadding( 1 ); format.setCellSpacing( 1 ); format.setHeaderRowCount( 2 ); QTextTable *table = cursor.insertTable(10, 5, format); */ QTextTable *table = cursor.insertTable(10, 5 ); QTextBlockFormat centerAlignment; centerAlignment.setAlignment(Qt::AlignHCenter); centerAlignment.setLineHeight( 30, QTextBlockFormat::FixedHeight); centerAlignment.setLeftMargin( 10 ); centerAlignment.setRightMargin( 10 ); QTextCursor cursor2; cursor2 = table->cellAt(0, 0).firstCursorPosition(); cursor2.insertText(QString::fromUtf8("No")); cursor2.setBlockFormat(centerAlignment); for (i=1; i<9; i++) { cursor2 = table->cellAt(i, 0).firstCursorPosition(); cursor2.setBlockFormat(centerAlignment); cursor2.insertText(QString::number(i+1) + "Sil"); } /* int i, y; for (i=0; i<4; i++) { for (y=0;y<5; y++) QTextTable *table = cursor.insertTable( y, i ); //QTextTable *table = cursor.insertTable( y, i, tableFormat); }*/ //QTextTable *tbl; //tbl = new QTextTable( ui->edit ); }
void TextZone::changeTextStyleSlot(int styleIndex) { QTextBlockFormat blockFormat; blockFormat.setBottomMargin(textStyles->blockBottomMarginAt(styleIndex)); blockFormat.setTextIndent(textStyles->blockFirstLineIndentAt(styleIndex)); blockFormat.setLeftMargin(textStyles->blockLeftMarginAt(styleIndex)); blockFormat.setAlignment(textStyles->blockAlignmentTrueNameAt(styleIndex)); blockFormat.setTopMargin(0); blockFormat.setRightMargin(0); QTextCharFormat charFormat; charFormat.setFontPointSize(textStyles->fontSizeAt(styleIndex)); charFormat.setFontFamily(textStyles->fontFamilyAt(styleIndex)); // charFormat.setFontItalic(textStyles->fontItalicAt(styleIndex)); // if (textStyles->fontBoldAt(styleIndex) == true) // charFormat.setFontWeight(75); // else // charFormat.setFontWeight(50); // charFormat.setFontUnderline(textStyles->fontUnderlineAt(styleIndex)); // charFormat.setFontStrikeOut(textStyles->fontStrikeOutAt(styleIndex)); // charFormat.clearForeground(); QTextCursor tCursor = this->textCursor(); // select all of the blocks selected : QTextCursor tStartCursor = this->textCursor(); tStartCursor.setPosition(tCursor.selectionStart()); tStartCursor.movePosition(QTextCursor::StartOfBlock); int startFirstBlock = tStartCursor.position(); QTextCursor tEndCursor = this->textCursor(); tEndCursor.setPosition(tCursor.selectionEnd()); tEndCursor.movePosition(QTextCursor::EndOfBlock); int endLastBlock = tEndCursor.position(); tCursor.setPosition(startFirstBlock); tCursor.setPosition(endLastBlock, QTextCursor::KeepAnchor); // merge : tCursor.mergeBlockFormat(blockFormat); tCursor.mergeCharFormat(charFormat); this->mergeCurrentCharFormat(charFormat); }
void PrintDialog::insertHeaderResult(QTextCursor & cursor, const QString & location, const QString & date) { QTextBlockFormat blockHeaderFormat; blockHeaderFormat.setAlignment(Qt::AlignLeft); blockHeaderFormat.setTopMargin(5.0); blockHeaderFormat.setBottomMargin(0.0); blockHeaderFormat.setLeftMargin(20.0); QTextCharFormat headerFormat1; headerFormat1.setFontPointSize(10); headerFormat1.setFontWeight(50); QTextCharFormat headerFormat2; headerFormat2.setFontPointSize(10); headerFormat2.setFontWeight(50); cursor.insertBlock(blockHeaderFormat); cursor.insertText(tr("Location : "), headerFormat1); cursor.insertText(location, headerFormat2); cursor.insertBlock(blockHeaderFormat); cursor.insertText(tr("Date : "), headerFormat1); cursor.insertText(date, headerFormat2); }
void TextZone::insertFromMimeData (const QMimeData *source ) { QTextCursor cursor = this->textCursor(); int bottMargin; int textIndent; int leftMargin; Qt::Alignment textAlignment; int textHeight; QString fontFamily; if(cursor.atStart() == true || cursor.position() == 1 || cursor.position() == 0){ int defaultIndex = textStyles->defaultStyleIndex(); bottMargin = textStyles->blockBottomMarginAt(defaultIndex); textIndent = textStyles->blockFirstLineIndentAt(defaultIndex); leftMargin = textStyles->blockLeftMarginAt(defaultIndex); textAlignment = textStyles->blockAlignmentTrueNameAt(defaultIndex); textHeight = textStyles->fontSizeAt(defaultIndex); fontFamily = textStyles->fontFamilyAt(defaultIndex); } else{ bottMargin = cursor.blockFormat().bottomMargin(); textIndent = cursor.blockFormat().textIndent(); leftMargin = cursor.blockFormat().leftMargin(); textAlignment = cursor.blockFormat().alignment(); textHeight = cursor.charFormat().fontPointSize(); fontFamily = cursor.charFormat().fontFamily(); } if(source->hasHtml() && !forceCopyWithoutFormatting){ QByteArray richtext; if (source->hasFormat(QLatin1String("text/rtf"))) { richtext = source->data(QLatin1String("text/rtf")); } else if (source->hasHtml()) { richtext = mimeToRtf(source); } QTextEdit *textEdit = new QTextEdit(0); RTF::Reader reader; QBuffer buffer(&richtext); buffer.open(QIODevice::ReadOnly); reader.read(&buffer, textEdit->textCursor()); buffer.close(); QString sourceString = textEdit->toHtml(); sourceString.remove(QChar::ReplacementCharacter); sourceString.remove(QChar::ObjectReplacementCharacter); sourceString.remove(QChar::Null); //htmlText QTextDocument *document = new QTextDocument; document->setHtml(Utils::parseHtmlText(sourceString)); QTextBlockFormat blockFormat; blockFormat.setBottomMargin(bottMargin); blockFormat.setTextIndent(textIndent); blockFormat.setLeftMargin(leftMargin); blockFormat.setAlignment(textAlignment); blockFormat.setRightMargin(0); QTextCharFormat charFormat; charFormat.setFontPointSize(textHeight); charFormat.setFontFamily(fontFamily); charFormat.setBackground(QBrush(Qt::NoBrush)); charFormat.setForeground(QBrush(Qt::NoBrush)); charFormat.setAnchor(false); charFormat.setUnderlineStyle(QTextCharFormat::NoUnderline); charFormat.setFontStrikeOut(false); QTextCursor *tCursor = new QTextCursor(document); tCursor->movePosition(QTextCursor::Start, QTextCursor::MoveAnchor,1); tCursor->movePosition(QTextCursor::End, QTextCursor::KeepAnchor,1); tCursor->mergeCharFormat(charFormat); tCursor->mergeBlockFormat(blockFormat); QTextCursor cursor = this->textCursor(); cursor.insertHtml(document->toHtml("utf-8")); qDebug() << "insertFromMimeData Html"; } else if(source->hasText() || forceCopyWithoutFormatting){ QTextDocument *document = new QTextDocument; document->setPlainText(qvariant_cast<QString>(source->text())); QTextBlockFormat blockFormat; blockFormat.setBottomMargin(bottMargin); blockFormat.setTextIndent(textIndent); blockFormat.setLeftMargin(leftMargin); blockFormat.setAlignment(textAlignment); blockFormat.setRightMargin(0); QTextCharFormat charFormat; charFormat.setFontPointSize(textHeight); charFormat.setFontFamily(fontFamily); charFormat.clearForeground(); charFormat.setBackground(QBrush(Qt::NoBrush)); charFormat.setForeground(QBrush(Qt::NoBrush)); charFormat.setAnchor(false); charFormat.setUnderlineStyle(QTextCharFormat::NoUnderline); charFormat.setFontStrikeOut(false); QTextCursor *tCursor = new QTextCursor(document); tCursor->movePosition(QTextCursor::Start, QTextCursor::MoveAnchor,1); tCursor->movePosition(QTextCursor::End, QTextCursor::KeepAnchor,1); tCursor->mergeCharFormat(charFormat); tCursor->mergeBlockFormat(blockFormat); QTextCursor cursor = this->textCursor(); cursor.insertHtml(document->toHtml("utf-8")); qDebug() << "insertFromMimeData plainText"; } }
int main(int argc, char *argv[]) { QApplication app(argc, argv); //! [0] QTextEdit *editor = new QTextEdit(); QTextCursor cursor(editor->textCursor()); //! [0] cursor.movePosition(QTextCursor::Start); QTextBlockFormat blockFormat = cursor.blockFormat(); blockFormat.setTopMargin(4); blockFormat.setLeftMargin(4); blockFormat.setRightMargin(4); blockFormat.setBottomMargin(4); cursor.setBlockFormat(blockFormat); cursor.insertText(tr("This contains plain text inside a " "text block with margins to keep it separate " "from other parts of the document.")); cursor.insertBlock(); //! [1] QTextBlockFormat backgroundFormat = blockFormat; backgroundFormat.setBackground(QColor("lightGray")); cursor.setBlockFormat(backgroundFormat); //! [1] cursor.insertText(tr("The background color of a text block can be " "changed to highlight text.")); cursor.insertBlock(); QTextBlockFormat rightAlignedFormat = blockFormat; rightAlignedFormat.setAlignment(Qt::AlignRight); cursor.setBlockFormat(rightAlignedFormat); cursor.insertText(tr("The alignment of the text within a block is " "controlled by the alignment properties of " "the block itself. This text block is " "right-aligned.")); cursor.insertBlock(); QTextBlockFormat paragraphFormat = blockFormat; paragraphFormat.setAlignment(Qt::AlignJustify); paragraphFormat.setTextIndent(32); cursor.setBlockFormat(paragraphFormat); cursor.insertText(tr("Text can be formatted so that the first " "line in a paragraph has its own margin. " "This makes the text more readable.")); cursor.insertBlock(); QTextBlockFormat reverseFormat = blockFormat; reverseFormat.setAlignment(Qt::AlignJustify); reverseFormat.setTextIndent(32); cursor.setBlockFormat(reverseFormat); cursor.insertText(tr("The direction of the text can be reversed. " "This is useful for right-to-left " "languages.")); editor->setWindowTitle(tr("Text Block Formats")); editor->resize(480, 480); editor->show(); return app.exec(); }
ScriptFormatter::ScriptFormatter( QQmlEngine* newEngine, QObject *parent ) : QObject(parent) { QFont baseFont; //The base from which all other fonts are derived baseFont.setBold( false ); baseFont.setCapitalization( QFont::MixedCase ); baseFont.setFamily( "Courier" ); baseFont.setItalic( false ); baseFont.setPointSize( 12 ); baseFont.setStyleHint( QFont::Courier ); QTextBlockFormat baseFormat; baseFormat.setAlignment( Qt::AlignLeft ); baseFormat.setIndent( 0 ); baseFormat.setLineHeight( 1, QTextBlockFormat::SingleHeight ); //The first argument should be ignored according to the documentation, since we're setting the LineHeightType (2nd argument) to single height baseFormat.setNonBreakableLines( false ); //baseFormat.setPageBreakPolicy( QTextFormat::PageBreak_Auto ); baseFormat.setTextIndent( 0 ); baseFormat.setTopMargin( 0 ); baseFormat.setBottomMargin( 0 ); baseFormat.setLeftMargin( 0 ); baseFormat.setRightMargin( 0 ); baseFormat.setNonBreakableLines( false ); //Scenes are left-aligned, bold, and all caps sceneFont = QFont( baseFont ); sceneFont.setBold( true ); sceneFont.setCapitalization( QFont::AllUppercase ); sceneBlockFormat = QTextBlockFormat( baseFormat ); sceneBlockFormat.setAlignment( Qt::AlignLeft ); //sceneBlockFormat.setPageBreakPolicy( QTextFormat::PageBreak_AlwaysBefore ); //Actions are left-aligned actionFont = QFont( baseFont ); actionBlockFormat = QTextBlockFormat( baseFormat ); actionBlockFormat.setAlignment( Qt::AlignLeft ); //Character names are centered and all caps characterFont = QFont( baseFont ); characterFont.setCapitalization( QFont::AllUppercase ); characterBlockFormat = QTextBlockFormat( baseFormat ); characterBlockFormat.setAlignment( Qt::AlignHCenter ); //characterBlockFormat.setPageBreakPolicy( QTextFormat::PageBreak_AlwaysBefore ); //Dialog is centered dialogFont = QFont( baseFont ); dialogBlockFormat = QTextBlockFormat( baseFormat ); dialogBlockFormat.setAlignment( Qt::AlignHCenter ); //dialogBlockFormat.setPageBreakPolicy( QTextFormat::PageBreak_AlwaysAfter ); //Parentheticals are centered and italicized parentheticalFont = QFont( baseFont ); parentheticalFont.setItalic( true ); parentheticalBlockFormat = QTextBlockFormat( baseFormat ); parentheticalBlockFormat.setAlignment( Qt::AlignHCenter ); //Transitions are right-aligned and all caps transitionFont = QFont( baseFont ); transitionFont.setCapitalization( QFont::AllUppercase ); transitionBlockFormat = QTextBlockFormat( baseFormat ); transitionBlockFormat.setAlignment( Qt::AlignRight ); //Shots are left-aligned and all caps shotFont = QFont( baseFont ); shotFont.setCapitalization( QFont::AllUppercase ); shotBlockFormat = QTextBlockFormat( baseFormat ); shotBlockFormat.setAlignment( Qt::AlignLeft ); //Act breaks are centered, bold, and underlined actBreakFont = QFont( baseFont ); actBreakFont.setBold( true ); actBreakFont.setUnderline( true ); actBreakBlockFormat = QTextBlockFormat( baseFormat ); actBreakBlockFormat.setAlignment( Qt::AlignHCenter ); }