summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndy Shaw <andy.shaw@digia.com>2012-10-18 15:34:26 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2012-10-18 20:56:05 +0200
commitd060620e6cd3c94e7e0ff809b21593b9c0da0be2 (patch)
tree08b0de22d0ecfbe49ba96373117f807b7d882b63
parent6226fcdc3e4ace4636c58778ef53fbf69f46c36e (diff)
Use the right properties when checking the frame's margins
Changed it to check the Frame*Margin property instead of the Block*Margin property as this was incorrect for a QTextFrameFormat. Task-number: QTBUG-22173 Change-Id: I2c3066165fb592ed034874b1180593822859f933 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
-rw-r--r--src/gui/text/qtextodfwriter.cpp8
-rw-r--r--tests/auto/gui/text/qtextodfwriter/tst_qtextodfwriter.cpp19
2 files changed, 23 insertions, 4 deletions
diff --git a/src/gui/text/qtextodfwriter.cpp b/src/gui/text/qtextodfwriter.cpp
index 33c6ddd1cd..8f6025fdf0 100644
--- a/src/gui/text/qtextodfwriter.cpp
+++ b/src/gui/text/qtextodfwriter.cpp
@@ -666,13 +666,13 @@ void QTextOdfWriter::writeFrameFormat(QXmlStreamWriter &writer, QTextFrameFormat
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::BlockTopMargin))
+ if (format.hasProperty(QTextFormat::FrameTopMargin))
writer.writeAttribute(foNS, QString::fromLatin1("margin-top"), pixelToPoint(qMax(qreal(0.), format.topMargin())) );
- if (format.hasProperty(QTextFormat::BlockBottomMargin))
+ if (format.hasProperty(QTextFormat::FrameBottomMargin))
writer.writeAttribute(foNS, QString::fromLatin1("margin-bottom"), pixelToPoint(qMax(qreal(0.), format.bottomMargin())) );
- if (format.hasProperty(QTextFormat::BlockLeftMargin))
+ if (format.hasProperty(QTextFormat::FrameLeftMargin))
writer.writeAttribute(foNS, QString::fromLatin1("margin-left"), pixelToPoint(qMax(qreal(0.), format.leftMargin())) );
- if (format.hasProperty(QTextFormat::BlockRightMargin))
+ if (format.hasProperty(QTextFormat::FrameRightMargin))
writer.writeAttribute(foNS, QString::fromLatin1("margin-right"), pixelToPoint(qMax(qreal(0.), format.rightMargin())) );
writer.writeEndElement(); // style
diff --git a/tests/auto/gui/text/qtextodfwriter/tst_qtextodfwriter.cpp b/tests/auto/gui/text/qtextodfwriter/tst_qtextodfwriter.cpp
index 74a7ac95ea..c287ef30ac 100644
--- a/tests/auto/gui/text/qtextodfwriter/tst_qtextodfwriter.cpp
+++ b/tests/auto/gui/text/qtextodfwriter/tst_qtextodfwriter.cpp
@@ -69,6 +69,7 @@ private slots:
void testWriteAll();
void testWriteSection();
void testWriteTable();
+ void testWriteFrameFormat();
private:
/// closes the document and returns the part of the XML stream that the test wrote
@@ -419,5 +420,23 @@ void tst_QTextOdfWriter::testWriteTable()
QCOMPARE(getContentFromXml(), xml);
}
+void tst_QTextOdfWriter::testWriteFrameFormat()
+{
+ QTextFrameFormat tff;
+ tff.setTopMargin(20);
+ tff.setBottomMargin(20);
+ tff.setLeftMargin(20);
+ tff.setRightMargin(20);
+ QTextCursor tc(document);
+ odfWriter->writeFrameFormat(*xmlWriter, tff, 0);
+ // Value of 15pt is based on the pixelToPoint() calculation done in qtextodfwriter.cpp
+ QString xml = QString::fromLatin1(
+ "<style:style style:name=\"s0\" style:family=\"section\">"
+ "<style:section-properties fo:margin-top=\"15pt\" fo:margin-bottom=\"15pt\""
+ " fo:margin-left=\"15pt\" fo:margin-right=\"15pt\"/>"
+ "</style:style>");
+ QCOMPARE(getContentFromXml(), xml);
+}
+
QTEST_MAIN(tst_QTextOdfWriter)
#include "tst_qtextodfwriter.moc"