diff options
author | Luciano Wolf <luciano.wolf@openbossa.org> | 2011-03-04 15:56:41 -0300 |
---|---|---|
committer | Luciano Wolf <luciano.wolf@openbossa.org> | 2011-03-04 16:30:52 -0300 |
commit | f238cebb57200ce38796fad8f78801446943ebff (patch) | |
tree | 9c9f39f73cf3d7dd095190ea7b3e145e87b54286 | |
parent | bb6612e2cb07f4ef64a5a3fd032cfc87ed8aaf30 (diff) |
Fix bug #532 - "QNetworkSession documentation formatting broken"
Reviewer: Marcelo Lira <marcelo.lira@openbossa.org>
Lauro Moura <lauro.neto@openbossa.org>
-rw-r--r-- | generators/qtdoc/qtdocgenerator.cpp | 6 | ||||
-rw-r--r-- | tests/sphinxtabletest.cpp | 58 | ||||
-rw-r--r-- | tests/sphinxtabletest.h | 1 |
3 files changed, 65 insertions, 0 deletions
diff --git a/generators/qtdoc/qtdocgenerator.cpp b/generators/qtdoc/qtdocgenerator.cpp index cd78b858e..ae7dcadf4 100644 --- a/generators/qtdoc/qtdocgenerator.cpp +++ b/generators/qtdoc/qtdocgenerator.cpp @@ -718,10 +718,14 @@ void QtXmlToSphinx::Table::normalize() int col; QtXmlToSphinx::Table& self = *this; + //QDoc3 generates tables with wrong number of columns. We have to + //check and if necessary, merge the last columns. + int maxCols = self.at(0).count(); // add col spans for (row = 0; row < count(); ++row) { for (col = 0; col < at(row).count(); ++col) { QtXmlToSphinx::TableCell& cell = self[row][col]; + bool mergeCols = (col >= maxCols); if (cell.colSpan > 0) { QtXmlToSphinx::TableCell newCell; newCell.colSpan = -1; @@ -730,6 +734,8 @@ void QtXmlToSphinx::Table::normalize() } cell.colSpan = 0; col++; + } else if (mergeCols) { + self[row][maxCols - 1].data += " " + cell.data; } } } diff --git a/tests/sphinxtabletest.cpp b/tests/sphinxtabletest.cpp index a35d11926..c1ba59e60 100644 --- a/tests/sphinxtabletest.cpp +++ b/tests/sphinxtabletest.cpp @@ -262,6 +262,64 @@ void SphinxTableTest::testRowSpan2() \n")); } +void SphinxTableTest::testBrokenTable() +{ + const char* xml = "\ +<table>\ + <header>\ + <item>\ + <para>Header 1</para>\ + </item>\ + <item>\ + <para>Header 2</para>\ + </item>\ + </header>\ + <row>\ + <item>\ + <para>1.1</para>\ + </item>\ + <item>\ + <para>1.2</para>\ + </item>\ + </row>\ + <row>\ + <item colspan=\"2\">\ + <para>2 2</para>\ + </item>\ + <item>\ + <para>2 3</para>\ + </item>\ + <item>\ + <para>2 4</para>\ + </item>\ + <item>\ + <para>2 5</para>\ + </item>\ + </row>\ + <row>\ + <item>\ + <para>3 1</para>\ + </item>\ + <item>\ + <para>3 2</para>\ + </item>\ + <item>\ + <para>3 3</para>\ + </item>\ + </row>\ +</table>"; + QCOMPARE(transformXml(xml), QString("\ + +--------+------------+\n\ + |Header 1|Header 2 |\n\ + +--------+------------+\n\ + |1.1 |1.2 |\n\ + +--------+------------+\n\ + |2 2 2 3 2 4 2 5|\n\ + +--------+------------+\n\ + |3 1 |3 2 3 3 |\n\ + +--------+------------+\n\ +\n")); +} QTEST_APPLESS_MAIN( SphinxTableTest ) diff --git a/tests/sphinxtabletest.h b/tests/sphinxtabletest.h index 57d8937d0..e056021b5 100644 --- a/tests/sphinxtabletest.h +++ b/tests/sphinxtabletest.h @@ -39,6 +39,7 @@ private slots: void testColSpan(); void testComplexTable(); void testRowSpan2(); + void testBrokenTable(); private: QtDocGenerator* m_generator; |