#include "frontends/Alert.h"
#include "gettext.h"
#include "tabular_funcs.h"
+#include "lyxtextclasslist.h"
#include <algorithm>
#include <cstdlib>
/* activates all lines and sets all widths to 0 */
void LyXTabular::Init(BufferParams const & bp,
- int rows_arg, int columns_arg, LyXTabular const * lt)
+ int rows_arg, int columns_arg, LyXTabular const * lt)
{
rows_ = rows_arg;
columns_ = columns_arg;
if (old_val != cell_info[row][column2].width_of_cell) {
// in this case we have to recalculate all multicolumn cells which
// have this column as one of theirs but not as last one
+ calculate_width_of_column_NMC(i);
recalculateMulticolumnsOfColumn(i);
+ calculate_width_of_column(i);
}
return true;
}
//
-// calculate the with of the column without regarding REAL MultiColumn
-// cells. This means MultiColumn-cells spanning more than 1 column.
+// Calculate the columns regarding ONLY the normal cells and if this
+// column is inside a multicolumn cell then use it only if its the last
+// column of this multicolumn cell as this gives an added with to the
+// column, all the rest should be adapted!
//
bool LyXTabular::calculate_width_of_column_NMC(int column)
{
int const old_column_width = column_info[column].width_of_column;
int max = 0;
for (int i = 0; i < rows_; ++i) {
- if (!IsMultiColumn(GetCellNumber(i, column), true) &&
- (cell_info[i][column].width_of_cell > max)) {
+ int cell = GetCellNumber(i, column);
+ bool ismulti = IsMultiColumn(cell, true);
+ if ((!ismulti || (column == right_column_of_cell(cell))) &&
+ (cell_info[i][column].width_of_cell > max))
+ {
max = cell_info[i][column].width_of_cell;
}
}
void LyXTabular::OldFormatRead(BufferParams const & bp,
- LyXLex & lex, string const & fl)
+ LyXLex & lex, string const & fl)
{
int version;
int i;
Paragraph * par = new Paragraph;
Paragraph * return_par = 0;
+ par->layout(textclasslist[bp.textclass].defaultLayoutName());
string tmptok;
int pos = 0;
Paragraph::depth_type depth = 0;