void PQTextEditor::slotUnindent() { QTextBlockFormat format = mEditor->textCursor().blockFormat(); if (format.indent() > 0) { format.setIndent(format.indent() - 1); } }
void MainWindow::decreaseIndent() { QTextBlockFormat blockFmt = ui->textNote->textCursor().blockFormat(); QTextCursor cursor = ui->textNote->textCursor(); if(blockFmt.indent() > 0) blockFmt.setIndent(blockFmt.indent()-1); else blockFmt.setIndent(0); cursor.setBlockFormat(blockFmt); }
void GraphicTextDialog::textStyle(int styleIndex) { QTextCursor cursor = textEdit->textCursor(); if(styleIndex != 0) { QTextListFormat::Style style = QTextListFormat::ListDisc; switch (styleIndex) { default: case 1: style = QTextListFormat::ListDisc; break; case 2: style = QTextListFormat::ListCircle; break; case 3: style = QTextListFormat::ListSquare; break; case 4: style = QTextListFormat::ListDecimal; break; case 5: style = QTextListFormat::ListLowerAlpha; break; case 6: style = QTextListFormat::ListUpperAlpha; break; } cursor.beginEditBlock(); QTextBlockFormat blockFmt = cursor.blockFormat(); QTextListFormat listFmt; if(cursor.currentList()) { listFmt = cursor.currentList()->format(); } else { listFmt.setIndent(blockFmt.indent() + 1); blockFmt.setIndent(0); cursor.setBlockFormat(blockFmt); } listFmt.setStyle(style); cursor.createList(listFmt); cursor.endEditBlock(); } else { // #### QTextBlockFormat bfmt; bfmt.setObjectIndex(-1); cursor.mergeBlockFormat(bfmt); } }
void MRichTextEdit::list(bool checked, QTextListFormat::Style style) { QTextCursor cursor = f_textedit->textCursor(); cursor.beginEditBlock(); if (!checked) { QTextBlockFormat obfmt = cursor.blockFormat(); QTextBlockFormat bfmt; bfmt.setIndent(obfmt.indent()); cursor.setBlockFormat(bfmt); } else { QTextListFormat listFmt; if (cursor.currentList()) { listFmt = cursor.currentList()->format(); } listFmt.setStyle(style); cursor.createList(listFmt); } cursor.endEditBlock(); }
void KNoteEdit::textList() { QTextCursor c = textCursor(); c.beginEditBlock(); if ( m_textList->isChecked() ) { QTextListFormat lf; QTextBlockFormat bf = c.blockFormat(); lf.setIndent( bf.indent() + 1 ); bf.setIndent( 0 ); lf.setStyle( QTextListFormat::ListDisc ); c.setBlockFormat( bf ); c.createList( lf ); } else { QTextBlockFormat bf; bf.setObjectIndex( -1 ); c.setBlockFormat( bf ); } c.endEditBlock(); }
//段落标号、编号 void MyChild::setStyle(int style) { QTextCursor cursor = this->textCursor(); if (style != 0) { QTextListFormat::Style stylename = QTextListFormat::ListDisc; switch (style) { default: case 1: stylename = QTextListFormat::ListDisc; break; case 2: stylename = QTextListFormat::ListCircle; break; case 3: stylename = QTextListFormat::ListSquare; break; case 4: stylename = QTextListFormat::ListDecimal; break; case 5: stylename = QTextListFormat::ListLowerAlpha; break; case 6: stylename = QTextListFormat::ListUpperAlpha; break; case 7: stylename = QTextListFormat::ListLowerRoman; break; case 8: stylename = QTextListFormat::ListUpperRoman; break; } cursor.beginEditBlock(); QTextBlockFormat blockFmt = cursor.blockFormat(); QTextListFormat listFmt; if (cursor.currentList()) { listFmt = cursor.currentList()->format(); } else { listFmt.setIndent(blockFmt.indent() + 1); blockFmt.setIndent(0); cursor.setBlockFormat(blockFmt); } listFmt.setStyle(stylename); cursor.createList(listFmt); cursor.endEditBlock(); } else { QTextBlockFormat bfmt; bfmt.setObjectIndex(-1); cursor.mergeBlockFormat(bfmt); } }
void TextTools::indentLessClicked() { QTextList* list = cursor()->currentList(); if (list == 0) { QTextBlockFormat format = cursor()->blockFormat(); int indent = format.indent(); if (indent) { indent--; format.setIndent(indent); cursor()->insertBlock(format); updateText(); } return; } QTextCharFormat format = cursor()->blockCharFormat(); QTextListFormat listFormat = list->format(); QTextBlock block = cursor()->block(); if (block.next().isValid()) block = block.next(); else { block = QTextBlock(); } cursor()->insertBlock(block.blockFormat()); cursor()->setCharFormat(block.charFormat()); updateText(); }
/*! Removes the given \a block from the list. \sa add(), removeItem() */ void QTextList::remove(const QTextBlock &block) { QTextBlockFormat fmt = block.blockFormat(); fmt.setIndent(fmt.indent() + format().indent()); fmt.setObjectIndex(-1); block.docHandle()->setBlockFormat(block, block, fmt, QTextDocumentPrivate::SetFormat); }
void MainWindow::increaseIndent() { QTextBlockFormat blockFmt = ui->textNote->textCursor().blockFormat(); QTextCursor cursor = ui->textNote->textCursor(); blockFmt.setIndent(blockFmt.indent()+1); cursor.setBlockFormat(blockFmt); }
void Stack::increaseIndent() { m_current_document->setRichText(true); QTextCursor cursor = m_current_document->text()->textCursor(); QTextBlockFormat format = cursor.blockFormat(); format.setIndent(format.indent() + 1); cursor.setBlockFormat(format); emit updateFormatActions(); }
void KNoteEdit::textDecreaseIndent() { QTextBlockFormat f = textCursor().blockFormat(); short int curIndent = f.indent(); if ( curIndent > 0 ) { f.setIndent( curIndent - 1 ); } textCursor().setBlockFormat( f ); }
void TextTools::indentMoreClicked() { QTextList* list = cursor()->currentList(); if (list == 0) { QTextBlockFormat format = cursor()->blockFormat(); format.setIndent(format.indent() + 1); cursor()->insertBlock(format); updateText(); return; } unorderedListClicked(); }
bool OdtWriter::writeParagraphStyle(const QTextBlockFormat& format, const QString& name) { QXmlStreamAttributes attributes; bool rtl = format.layoutDirection() == Qt::RightToLeft; if (rtl) { attributes.append(QString::fromLatin1("style:writing-mode"), QString::fromLatin1("rl")); } Qt::Alignment align = format.alignment(); if (rtl && (align & Qt::AlignLeft)) { attributes.append(QString::fromLatin1("fo:text-align"), QString::fromLatin1("left")); } else if (align & Qt::AlignRight) { attributes.append(QString::fromLatin1("fo:text-align"), QString::fromLatin1("right")); } else if (align & Qt::AlignCenter) { attributes.append(QString::fromLatin1("fo:text-align"), QString::fromLatin1("center")); } else if (align & Qt::AlignJustify) { attributes.append(QString::fromLatin1("fo:text-align"), QString::fromLatin1("justify")); } if (format.indent() > 0) { attributes.append(QString::fromLatin1("fo:margin-left"), QString::number(format.indent() * 0.5) + QString::fromLatin1("in")); } if (attributes.isEmpty()) { return false; } m_xml.writeStartElement(QString::fromLatin1("style:style")); m_xml.writeAttribute(QString::fromLatin1("style:name"), name); m_xml.writeAttribute(QString::fromLatin1("style:family"), QString::fromLatin1("paragraph")); m_xml.writeAttribute(QString::fromLatin1("style:parent-style-name"), QString::fromLatin1("Normal")); m_xml.writeEmptyElement(QString::fromLatin1("style:paragraph-properties")); m_xml.writeAttributes(attributes); m_xml.writeEndElement(); return true; }
void MRichTextEdit::indent(int delta) { QTextCursor cursor = f_textedit->textCursor(); cursor.beginEditBlock(); QTextBlockFormat bfmt = cursor.blockFormat(); int ind = bfmt.indent(); if (ind + delta >= 0) { bfmt.setIndent(ind + delta); } cursor.setBlockFormat(bfmt); cursor.endEditBlock(); }
void MainWindow::toggleList(QTextListFormat::Style style) { QTextCursor cursor = ui->textNote->textCursor(); QTextBlockFormat blockFmt = cursor.blockFormat(); QTextListFormat listFmt; bool list = (cursor.currentList() != 0); // change style if list exists and is a different style if(list && cursor.currentList()->format().style() != style) { listFmt.setStyle(style); cursor.currentList()->setFormat(listFmt); } // remove list if exists and matches style else if(list&& cursor.currentList()->format().style() == style) { cursor.currentList()->removeItem(0); blockFmt = ui->textNote->textCursor().blockFormat(); cursor = ui->textNote->textCursor(); blockFmt.setIndent(0); cursor.setBlockFormat(blockFmt); // create list if not exists } else { cursor.beginEditBlock(); if (cursor.currentList()) { listFmt = cursor.currentList()->format(); } else { listFmt.setIndent(blockFmt.indent() + 1); blockFmt.setIndent(0); cursor.setBlockFormat(blockFmt); } listFmt.setStyle(style); cursor.createList(listFmt); cursor.endEditBlock(); } updateMenus(); }
void KNoteEdit::textIncreaseIndent() { QTextBlockFormat f = textCursor().blockFormat(); f.setIndent( f.indent() + 1 ); textCursor().setBlockFormat( f ); }
void PQTextEditor::slotIndent() { QTextBlockFormat format = mEditor->textCursor().blockFormat(); format.setIndent(format.indent() + 1); }
void HtmlExporter::emitBlockAttributes( const QTextBlock &block ) { // kDebug() << "html" << html; QTextBlockFormat format = block.blockFormat(); if (format.hasProperty( QTextFormat::LayoutDirection ) ) { Qt::LayoutDirection dir = format.layoutDirection(); // if (dir == Qt::LeftToRight) { // mDefaultBlockFormat.setAlignment(Qt::AlignLeft); // } else { // mDefaultBlockFormat.setAlignment(Qt::AlignRight); // } // if ( dir != mDefaultBlockFormat.layoutDirection() ) { // assume default to not bloat the html too much if ( dir == Qt::LeftToRight ) { html += QLatin1String( " dir=\"ltr\"" ); // mDefaultBlockFormat.setAlignment(Qt::AlignLeft); } else { html += QLatin1String( " dir=\"rtl\"" ); // mDefaultBlockFormat.setAlignment(Qt::AlignRight); } } if ( format.hasProperty( QTextFormat::BlockAlignment ) ) { emitAlignment( format.alignment() ); } bool attributesEmitted = false; QLatin1String style( " style=\"" ); //html += style; // if (block.begin().atEnd()) { // html += QLatin1String("-qt-paragraph-type:empty;"); // } if ( format.hasProperty( QTextBlockFormat::FrameMargin ) ) { if ( !attributesEmitted ) { html += style; attributesEmitted = true; } emitMargins( QString::number( format.topMargin() ), QString::number( format.bottomMargin() ), QString::number( format.leftMargin() ), QString::number( format.rightMargin() ) ); } if ( format.hasProperty( QTextBlockFormat::BlockIndent ) ) { // if (format.indent() == 0) { if ( format.indent() == mDefaultBlockFormat.indent() ) { // assume default not to bloat the html too much } else { if ( !attributesEmitted ) { html += style; attributesEmitted = true; } html += QLatin1String( " -qt-block-indent:" ); html += QString::number( format.indent() ); html += QLatin1Char( ';' ); } } if ( format.hasProperty( QTextBlockFormat::TextIndent ) ) { // if (format.textIndent() == 0) { if ( format.textIndent() == mDefaultBlockFormat.textIndent() ) { // assume default not to bloat the html too much } else { if ( !attributesEmitted ) { html += style; attributesEmitted = true; } html += QLatin1String( " text-indent:" ); html += QString::number( format.textIndent() ); html += QLatin1String( "px;" ); } } //QTextCharFormat diff = formatDifference(defaultCharFormat, block.charFormat()).toCharFormat(); //if (!diff.properties().isEmpty()) //emitCharFormatStyle(diff); if ( attributesEmitted ) { html += QLatin1Char( '"' ); } // QBrush bg = format.background(); // if (bg != Qt::NoBrush) // emitAttribute("bgcolor", bg.color().name()); }
void QTextOdfWriter::writeBlockFormat(QXmlStreamWriter &writer, QTextBlockFormat format, int formatIndex) const { writer.writeStartElement(styleNS, QString::fromLatin1("style")); writer.writeAttribute(styleNS, QString::fromLatin1("name"), QString::fromLatin1("p%1").arg(formatIndex)); writer.writeAttribute(styleNS, QString::fromLatin1("family"), QString::fromLatin1("paragraph")); writer.writeStartElement(styleNS, QString::fromLatin1("paragraph-properties")); if (format.hasProperty(QTextFormat::BlockAlignment)) { const Qt::Alignment alignment = format.alignment() & Qt::AlignHorizontal_Mask; QString value; if (alignment == Qt::AlignLeading) value = QString::fromLatin1("start"); else if (alignment == Qt::AlignTrailing) value = QString::fromLatin1("end"); else if (alignment == (Qt::AlignLeft | Qt::AlignAbsolute)) value = QString::fromLatin1("left"); else if (alignment == (Qt::AlignRight | Qt::AlignAbsolute)) value = QString::fromLatin1("right"); else if (alignment == Qt::AlignHCenter) value = QString::fromLatin1("center"); else if (alignment == Qt::AlignJustify) value = QString::fromLatin1("justify"); else qWarning() << "QTextOdfWriter: unsupported paragraph alignment; " << format.alignment(); if (! value.isNull()) writer.writeAttribute(foNS, QString::fromLatin1("text-align"), value); } if (format.hasProperty(QTextFormat::BlockTopMargin)) writer.writeAttribute(foNS, QString::fromLatin1("margin-top"), pixelToPoint(qMax(qreal(0.), format.topMargin())) ); if (format.hasProperty(QTextFormat::BlockBottomMargin)) writer.writeAttribute(foNS, QString::fromLatin1("margin-bottom"), pixelToPoint(qMax(qreal(0.), format.bottomMargin())) ); if (format.hasProperty(QTextFormat::BlockLeftMargin) || format.hasProperty(QTextFormat::BlockIndent)) writer.writeAttribute(foNS, QString::fromLatin1("margin-left"), pixelToPoint(qMax(qreal(0.), format.leftMargin() + format.indent()))); if (format.hasProperty(QTextFormat::BlockRightMargin)) writer.writeAttribute(foNS, QString::fromLatin1("margin-right"), pixelToPoint(qMax(qreal(0.), format.rightMargin())) ); if (format.hasProperty(QTextFormat::TextIndent)) writer.writeAttribute(foNS, QString::fromLatin1("text-indent"), pixelToPoint(format.textIndent())); if (format.hasProperty(QTextFormat::PageBreakPolicy)) { if (format.pageBreakPolicy() & QTextFormat::PageBreak_AlwaysBefore) writer.writeAttribute(foNS, QString::fromLatin1("break-before"), QString::fromLatin1("page")); if (format.pageBreakPolicy() & QTextFormat::PageBreak_AlwaysAfter) writer.writeAttribute(foNS, QString::fromLatin1("break-after"), QString::fromLatin1("page")); } if (format.hasProperty(QTextFormat::BackgroundBrush)) { QBrush brush = format.background(); writer.writeAttribute(foNS, QString::fromLatin1("background-color"), brush.color().name()); } if (format.hasProperty(QTextFormat::BlockNonBreakableLines)) writer.writeAttribute(foNS, QString::fromLatin1("keep-together"), format.nonBreakableLines() ? QString::fromLatin1("true") : QString::fromLatin1("false")); if (format.hasProperty(QTextFormat::TabPositions)) { QList<QTextOption::Tab> tabs = format.tabPositions(); writer.writeStartElement(styleNS, QString::fromLatin1("tab-stops")); QList<QTextOption::Tab>::Iterator iterator = tabs.begin(); while(iterator != tabs.end()) { writer.writeEmptyElement(styleNS, QString::fromLatin1("tab-stop")); writer.writeAttribute(styleNS, QString::fromLatin1("position"), pixelToPoint(iterator->position) ); QString type; switch(iterator->type) { case QTextOption::DelimiterTab: type = QString::fromLatin1("char"); break; case QTextOption::LeftTab: type = QString::fromLatin1("left"); break; case QTextOption::RightTab: type = QString::fromLatin1("right"); break; case QTextOption::CenterTab: type = QString::fromLatin1("center"); break; } writer.writeAttribute(styleNS, QString::fromLatin1("type"), type); if (iterator->delimiter != 0) writer.writeAttribute(styleNS, QString::fromLatin1("char"), iterator->delimiter); ++iterator; } writer.writeEndElement(); // tab-stops } writer.writeEndElement(); // paragraph-properties writer.writeEndElement(); // style }
QString Format::frameToString( QTextFrame *frame ) { QString out; QTextFrame::iterator it; for( it = frame->begin(); it != frame->end(); ++it ) { QTextBlock block = it.currentBlock(); if ( block.isValid() ) { out += "<block"; QTextCursor c( block ); QDateTime dt = TextFormats::lastModified( c ); if ( dt.isValid() ) { out += " lastmodified=\"" + dt.toString( Qt::ISODate ) + "\""; } if ( TextFormats::isTitle( c ) ) { out += " titlestyle=\"title\""; } else if ( TextFormats::isSubTitle( c ) ) { out += " titlestyle=\"subtitle\""; } QTextBlockFormat blockFormat = block.blockFormat(); if ( blockFormat.isValid() ) { QTextList *list = block.textList(); if ( list ) { QTextListFormat f = list->format(); out += " liststyle=\""; switch( f.style() ) { default: case QTextListFormat::ListDisc: out += "disc"; break; case QTextListFormat::ListDecimal: out += "decimal"; break; } out += "\""; out += " listindent=\"" + QString::number( f.indent() ) + "\""; } else { if ( blockFormat.indent() != 0 ) { out += " blockindent=\"" + QString::number( blockFormat.indent() ) + "\""; } } } out += ">\n"; QTextBlock::iterator it2; for( it2 = block.begin(); it2 != block.end(); ++it2 ) { QTextFragment fragment = it2.fragment(); if ( !fragment.isValid() ) continue; QString text = fragment.text(); QString outText; for( int i = 0; i < text.size(); ++i ) { if ( text.at( i ) == 0xfffc ) { outText += "<todo status=\""; QTextImageFormat imageFormat = fragment.charFormat().toImageFormat(); if ( imageFormat.isValid() ) { if ( imageFormat.name().contains( "done" ) ) outText += "done"; else outText += "todo"; } else { dbg() << "NO IMAGE FORMAT" << endl; } outText += "\"/>"; } else { outText += escape( QString( text.at( i ) ) ); } } out += " <fragment"; QTextCharFormat format = fragment.charFormat(); if ( !format.anchorHref().isEmpty() ) { out += " link=\"" + escape( format.anchorHref() ) + "\""; } if ( format.fontWeight() == QFont::Bold ) { out += " bold=\"true\""; } if ( format.fontItalic() ) { out += " italic=\"true\""; } if ( format.hasProperty( QTextFormat::FontPointSize ) && format.fontPointSize() != 10 ) { out += " fontsize=\"" + QString::number( format.fontPointSize() ) + "\""; } if ( outText.trimmed().isEmpty() ) outText.replace( " ", "[FIXME:space]" ); out += ">" + outText + "</fragment>\n"; } out += "</block>"; out += "\n"; } QTextFrame *f = it.currentFrame(); if ( f ) { QTextFrameFormat format = f->frameFormat(); out += "<frame"; if ( format.hasProperty( TextFormats::FrameType ) ) { out += " type="; if ( format.property( TextFormats::FrameType ) == TextFormats::CodeFrame ) { out += "\"code\""; } else { out += "\"undefined\""; } } out += ">\n"; out += frameToString( f ); out += "</frame>\n"; } } return out; }