Version: (using KDE KDE 3.4.0) Installed from: SuSE RPMs OS: Linux Problem with Table-Wizard. Basically quanta crashes after clicking ok in Table-wizard sometimes. I created a tablewith the wizard an melted/spanned (col/rowspan) some cells. I click ok. Everything as planned. I start the wizard to edit the same table. The wizard recognizes the table wrong. Wrong row-/colspans sometimes the wizards shows too many columns or rows. I change the table-width and cell-width. Then I leave the wizard by clicking ok-button. Sometimes it crashes sometimes it doesn't.
Can you at list give me an example how to create a table - or send a html file with such a table - which is not recognized by the wizard? Best if that example can be used to reproduce the crash.
SVN commit 461153 by amantia: Fix the rest of merging related table bugs found by Jens. Should fix also 112243. Please test it, if you have a chance. BUG: 112243 M +19 -6 tableeditor.cpp --- branches/KDE/3.5/kdewebdev/quanta/components/tableeditor/tableeditor.cpp #461152:461153 @@ -404,7 +404,7 @@ { maxCol = (nCol > maxCol) ? nCol : maxCol; maxCol = (maxCol == 0) ? 1 : maxCol; - for (int col = 0; col < maxCol - nCol; col++) + for (int col = nCol; col < maxCol; col++) { if (mergeMatrix[nRow - 1][col].node != 0L) { if (m_colSpin->value() < col) @@ -415,19 +415,17 @@ m_dataTable->item(nRow-1, col)->setEnabled(false); tableNode.node = new Node(0L); tableNode.node->tag = new Tag(*(n->tag)); - configureCell(nRow-1, col, tableNode.node); + configureCell(nRow-1, col, tableNode.node); newNum++; tableNode.merged = true; tableNode.mergedRow = tableN.mergedRow; tableNode.mergedCol = tableN.mergedCol; tableRowTags.append(tableNode); - // col++; - nCol++; if ((uint)nCol >= mergeMatrix[0].size()) // Check if there are enough cols for (uint i=0; i<mergeMatrix.size(); i++) mergeMatrix[i].resize(2 * mergeMatrix[i].size()); - } + } else { tableNode.node = new Node(0L); newNum++; @@ -502,7 +500,7 @@ m_dataTable->item(nRow-1, lastCol + i)->setEnabled(false); tableNode.node = new Node(0L); tableNode.node->tag = new Tag(*(n->tag)); - configureCell(nRow-1, col, tableNode.node); + configureCell(nRow-1, col, tableNode.node); newNum++; tableNode.merged = true; tableNode.mergedRow = nRow - 1; @@ -899,6 +897,21 @@ { if (m_row == -1) m_row = m_dataTable->numRows() - 1; + int i = 0; + int j = 0; + for (QValueList<QValueList<TableNode> >::Iterator it = m_tableTags->begin(); it != m_tableTags->end(); ++it) { + j = 0; + for (QValueList<TableNode>::Iterator it2 = (*it).begin(); it2 != (*it).end(); ++it2) { + if ((*it2).merged && (*it2).mergedRow == m_row) { + (*it2).merged = false; + setCellText(m_dataTable, i, j, tagContent((*it2).node)); + m_dataTable->item(i, j)->setEnabled(true); + (*it2).node->tag->deleteAttribute("colspan"); + } + j++; + } + i++; + } QValueList<QValueList<TableNode> >::Iterator it2 = m_tableTags->at(m_row); for (QValueList<TableNode>::Iterator it3 = (*it2).begin(); it3 != (*it2).end(); ++it3) { if ((*it3).merged)