Add tabular-features set-inner-lines and fix set-all-lines behavior

Patch by Daniel Ramöller (racoon)

Fixes: #11382
(cherry picked from commit cb84f752f2)
This commit is contained in:
Juergen Spitzmueller 2018-12-28 10:11:42 +01:00
parent 98a792c9fd
commit 5518ca028e
9 changed files with 23 additions and 4 deletions

View File

@ -556,6 +556,7 @@ dist_images_DATA1X = \
images/tabular-feature_set-longtabular.svgz \ images/tabular-feature_set-longtabular.svgz \
images/tabular-feature_set-rotate-cell.svgz \ images/tabular-feature_set-rotate-cell.svgz \
images/tabular-feature_set-border-lines.svgz \ images/tabular-feature_set-border-lines.svgz \
images/tabular-feature_set-inner-lines.svgz \
images/tabular-feature_set-rotate-tabular.svgz \ images/tabular-feature_set-rotate-tabular.svgz \
images/tabular-feature_toggle-line-bottom.svgz \ images/tabular-feature_toggle-line-bottom.svgz \
images/tabular-feature_toggle-line-left.svgz \ images/tabular-feature_toggle-line-left.svgz \
@ -1826,6 +1827,7 @@ dist_imagesoxygen_DATA1X = \
images/oxygen/tabular-feature_multirow.svgz \ images/oxygen/tabular-feature_multirow.svgz \
images/oxygen/tabular-feature_set-all-lines.svgz \ images/oxygen/tabular-feature_set-all-lines.svgz \
images/oxygen/tabular-feature_set-border-lines.svgz \ images/oxygen/tabular-feature_set-border-lines.svgz \
images/oxygen/tabular-feature_set-inner-lines.svgz \
images/oxygen/tabular-feature_set-longtabular.svgz \ images/oxygen/tabular-feature_set-longtabular.svgz \
images/oxygen/tabular-feature_toggle-line-bottom.svgz \ images/oxygen/tabular-feature_toggle-line-bottom.svgz \
images/oxygen/tabular-feature_toggle-line-left.svgz \ images/oxygen/tabular-feature_toggle-line-left.svgz \
@ -2016,6 +2018,7 @@ dist_imagesclassic_DATA = \
images/classic/tabular-feature_multirow.png \ images/classic/tabular-feature_multirow.png \
images/classic/tabular-feature_set-all-lines.png \ images/classic/tabular-feature_set-all-lines.png \
images/classic/tabular-feature_set-border-lines.png \ images/classic/tabular-feature_set-border-lines.png \
images/classic/tabular-feature_set-inner-lines.png \
images/classic/tabular-feature_set-longtabular.png \ images/classic/tabular-feature_set-longtabular.png \
images/classic/tabular-feature_set-rotate-cell.png \ images/classic/tabular-feature_set-rotate-cell.png \
images/classic/tabular-feature_set-rotate-tabular.png \ images/classic/tabular-feature_set-rotate-tabular.png \

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 203 B

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Binary file not shown.

View File

@ -156,6 +156,7 @@ ToolbarSet
Item "Set right line" "tabular-feature toggle-line-right" Item "Set right line" "tabular-feature toggle-line-right"
Item "Set border lines" "tabular-feature set-border-lines" Item "Set border lines" "tabular-feature set-border-lines"
Item "Set all lines" "tabular-feature set-all-lines" Item "Set all lines" "tabular-feature set-all-lines"
Item "Set inner lines" "tabular-feature set-inner-lines"
Item "Unset all lines" "tabular-feature unset-all-lines" Item "Unset all lines" "tabular-feature unset-all-lines"
Separator Separator
Item "Align left" "command-alternatives tabular-feature m-align-left;tabular-feature align-left" Item "Align left" "command-alternatives tabular-feature m-align-left;tabular-feature align-left"

View File

@ -198,6 +198,7 @@ TabularFeature tabularFeature[] =
{ Tabular::LONGTABULAR_ALIGN_RIGHT, "longtabular-align-right", false }, { Tabular::LONGTABULAR_ALIGN_RIGHT, "longtabular-align-right", false },
{ Tabular::SET_DECIMAL_POINT, "set-decimal-point", true }, { Tabular::SET_DECIMAL_POINT, "set-decimal-point", true },
{ Tabular::SET_TABULAR_WIDTH, "set-tabular-width", true }, { Tabular::SET_TABULAR_WIDTH, "set-tabular-width", true },
{ Tabular::SET_INNER_LINES, "set-inner-lines", false },
{ Tabular::LAST_ACTION, "", false } { Tabular::LAST_ACTION, "", false }
}; };
@ -4744,6 +4745,7 @@ bool InsetTabular::getFeatureStatus(Cursor & cur, string const & s,
case Tabular::SET_ALL_LINES: case Tabular::SET_ALL_LINES:
case Tabular::UNSET_ALL_LINES: case Tabular::UNSET_ALL_LINES:
case Tabular::SET_INNER_LINES:
case Tabular::SET_BORDER_LINES: case Tabular::SET_BORDER_LINES:
status.setEnabled(!tabular.ltCaption(tabular.cellRow(cur.idx()))); status.setEnabled(!tabular.ltCaption(tabular.cellRow(cur.idx())));
break; break;
@ -5554,6 +5556,7 @@ void InsetTabular::tabularFeatures(Cursor & cur,
row_type sel_row_start; row_type sel_row_start;
row_type sel_row_end; row_type sel_row_end;
bool setLines = false; bool setLines = false;
bool setLinesInnerOnly = false;
LyXAlignment setAlign = LYX_ALIGN_LEFT; LyXAlignment setAlign = LYX_ALIGN_LEFT;
Tabular::VAlignment setVAlign = Tabular::LYX_VALIGN_TOP; Tabular::VAlignment setVAlign = Tabular::LYX_VALIGN_TOP;
@ -5899,6 +5902,9 @@ void InsetTabular::tabularFeatures(Cursor & cur,
break; break;
} }
case Tabular::SET_INNER_LINES:
setLinesInnerOnly = true;
// fall through
case Tabular::SET_ALL_LINES: case Tabular::SET_ALL_LINES:
setLines = true; setLines = true;
// fall through // fall through
@ -5906,10 +5912,16 @@ void InsetTabular::tabularFeatures(Cursor & cur,
for (row_type r = sel_row_start; r <= sel_row_end; ++r) for (row_type r = sel_row_start; r <= sel_row_end; ++r)
for (col_type c = sel_col_start; c <= sel_col_end; ++c) { for (col_type c = sel_col_start; c <= sel_col_end; ++c) {
idx_type const cell = tabular.cellIndex(r, c); idx_type const cell = tabular.cellIndex(r, c);
tabular.setTopLine(cell, setLines); if (!setLinesInnerOnly || r != sel_row_start)
tabular.setBottomLine(cell, setLines); tabular.setTopLine(cell, setLines);
tabular.setRightLine(cell, setLines); if ((!setLinesInnerOnly || r != sel_row_end)
tabular.setLeftLine(cell, setLines); && (!setLines || r == sel_row_end))
tabular.setBottomLine(cell, setLines);
if ((!setLinesInnerOnly || c != sel_col_end)
&& (!setLines || c == sel_col_end))
tabular.setRightLine(cell, setLines);
if ((!setLinesInnerOnly || c != sel_col_start))
tabular.setLeftLine(cell, setLines);
} }
break; break;

View File

@ -297,6 +297,8 @@ public:
/// ///
SET_TABULAR_WIDTH, SET_TABULAR_WIDTH,
/// ///
SET_INNER_LINES,
///
LAST_ACTION LAST_ACTION
}; };
/// ///

View File

@ -167,6 +167,7 @@ What's new
- Quote filenames when calling gunzip and avoid a crash when the filename - Quote filenames when calling gunzip and avoid a crash when the filename
of a compressed file does not end with a proper extension (bug 4269). of a compressed file does not end with a proper extension (bug 4269).
- Fix behavior of (un)setting all tabular borders (bug 11382).
* INTERNALS * INTERNALS