namespace {
void tabline(PainterInfo const & pi, int x1, int y1, int x2, int y2,
- bool drawline, int thickness = 1)
+ bool drawline, bool heavy = false)
{
ColorCode const col = drawline ? Color_tabularline : Color_tabularonoffline;
pi.pain.line(x1, y1, x2, y2, pi.textColor(col),
drawline ? Painter::line_solid : Painter::line_onoffdash,
- thickness * Painter::thin_line);
+ (heavy ? 2 : 1) * Painter::thin_line);
}
}
// Top
bool drawline = tabular.topLine(cell)
|| (row > 0 && tabular.bottomLine(tabular.cellAbove(cell)));
- int thickness = 1;
- if (drawline && tabular.use_booktabs && tabular.rowTopLine(row))
- thickness = (row == 0) ? 3 : 2;
- tabline(pi, x, y, x + w, y, drawline, thickness);
+ bool heavy = tabular.use_booktabs && row == 0 && tabular.rowTopLine(row);
+ tabline(pi, x, y, x + w, y, drawline, heavy);
// Bottom
drawline = tabular.bottomLine(cell);
- thickness = 1;
- if (drawline && tabular.use_booktabs && tabular.rowBottomLine(row))
- thickness = (row == tabular.nrows() - 1) ? 3 : 2;
- tabline(pi, x, y + h, x + w, y + h, drawline, thickness);
+ heavy = tabular.use_booktabs && row == tabular.nrows() - 1
+ && tabular.rowBottomLine(row);
+ tabline(pi, x, y + h, x + w, y + h, drawline, heavy);
// Left
col_type const col = tabular.cellColumn(cell);
if (tabular.is_long_tabular) {
switch (tabular.longtabular_alignment) {
case Tabular::LYX_LONGTABULAR_ALIGN_LEFT:
- return AlignLeft;
+ return Display | AlignLeft;
case Tabular::LYX_LONGTABULAR_ALIGN_CENTER:
- return AlignCenter;
+ return Display;
case Tabular::LYX_LONGTABULAR_ALIGN_RIGHT:
- return AlignRight;
+ return Display | AlignRight;
default:
- return AlignCenter;
+ return Display;
}
} else
return Inline;
case Tabular::SET_LINE_TOP:
case Tabular::TOGGLE_LINE_TOP: {
+ bool lineSet = (feature == Tabular::SET_LINE_TOP)
+ ? (value == "true") : !tabular.topLine(cur.idx());
for (row_type r = sel_row_start; r <= sel_row_end; ++r)
- for (col_type c = sel_col_start; c <= sel_col_end; ++c) {
- bool const lineSet = (feature == Tabular::SET_LINE_TOP)
- ? (value == "true") : !tabular.topLine(tabular.cellIndex(r, c));
+ for (col_type c = sel_col_start; c <= sel_col_end; ++c)
tabular.setTopLine(tabular.cellIndex(r, c), lineSet);
- }
break;
}
case Tabular::SET_LINE_BOTTOM:
case Tabular::TOGGLE_LINE_BOTTOM: {
+ bool lineSet = (feature == Tabular::SET_LINE_BOTTOM)
+ ? (value == "true") : !tabular.bottomLine(cur.idx());
for (row_type r = sel_row_start; r <= sel_row_end; ++r)
- for (col_type c = sel_col_start; c <= sel_col_end; ++c) {
- bool const lineSet = (feature == Tabular::SET_LINE_BOTTOM)
- ? (value == "true") : !tabular.bottomLine(tabular.cellIndex(r, c));
+ for (col_type c = sel_col_start; c <= sel_col_end; ++c)
tabular.setBottomLine(tabular.cellIndex(r, c), lineSet);
- }
break;
}
case Tabular::SET_LINE_LEFT:
case Tabular::TOGGLE_LINE_LEFT: {
+ bool lineSet = (feature == Tabular::SET_LINE_LEFT)
+ ? (value == "true") : !tabular.leftLine(cur.idx());
for (row_type r = sel_row_start; r <= sel_row_end; ++r)
- for (col_type c = sel_col_start; c <= sel_col_end; ++c) {
- bool const lineSet = (feature == Tabular::SET_LINE_LEFT)
- ? (value == "true") : !tabular.leftLine(tabular.cellIndex(r, c));
+ for (col_type c = sel_col_start; c <= sel_col_end; ++c)
tabular.setLeftLine(tabular.cellIndex(r, c), lineSet);
- }
break;
}
case Tabular::SET_LINE_RIGHT:
case Tabular::TOGGLE_LINE_RIGHT: {
+ bool lineSet = (feature == Tabular::SET_LINE_RIGHT)
+ ? (value == "true") : !tabular.rightLine(cur.idx());
for (row_type r = sel_row_start; r <= sel_row_end; ++r)
- for (col_type c = sel_col_start; c <= sel_col_end; ++c) {
- bool const lineSet = (feature == Tabular::SET_LINE_RIGHT)
- ? (value == "true") : !tabular.rightLine(tabular.cellIndex(r, c));
+ for (col_type c = sel_col_start; c <= sel_col_end; ++c)
tabular.setRightLine(tabular.cellIndex(r, c), lineSet);
- }
break;
}
cs = tabular.cellColumn(beg.idx());
ce = tabular.cellColumn(end.idx());
if (cs > ce)
- swap(cs, ce);
+ std::swap(cs, ce);
rs = tabular.cellRow(beg.idx());
re = tabular.cellRow(end.idx());
if (rs > re)
- swap(rs, re);
+ std::swap(rs, re);
}