From: Juergen Spitzmueller Date: Fri, 28 Dec 2018 09:11:42 +0000 (+0100) Subject: Add tabular-features set-inner-lines and fix set-all-lines behavior X-Git-Tag: 2.3.3~3 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=5518ca028e4f5dc61adeff29224261c91eea0a15;p=features.git Add tabular-features set-inner-lines and fix set-all-lines behavior Patch by Daniel Ramöller (racoon) Fixes: #11382 (cherry picked from commit cb84f752f21bb4cf4bd9ed6999df0353aba2b57e) --- diff --git a/lib/Makefile.am b/lib/Makefile.am index 95e105864d..49f95dee26 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -556,6 +556,7 @@ dist_images_DATA1X = \ images/tabular-feature_set-longtabular.svgz \ images/tabular-feature_set-rotate-cell.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_toggle-line-bottom.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_set-all-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_toggle-line-bottom.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_set-all-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-rotate-cell.png \ images/classic/tabular-feature_set-rotate-tabular.png \ diff --git a/lib/images/classic/tabular-feature_set-inner-lines.png b/lib/images/classic/tabular-feature_set-inner-lines.png new file mode 100644 index 0000000000..a8179e9559 Binary files /dev/null and b/lib/images/classic/tabular-feature_set-inner-lines.png differ diff --git a/lib/images/classic/tabular-feature_unset-all-lines.png b/lib/images/classic/tabular-feature_unset-all-lines.png index b78d50d172..27bdbdd7c0 100644 Binary files a/lib/images/classic/tabular-feature_unset-all-lines.png and b/lib/images/classic/tabular-feature_unset-all-lines.png differ diff --git a/lib/images/oxygen/tabular-feature_set-inner-lines.svgz b/lib/images/oxygen/tabular-feature_set-inner-lines.svgz new file mode 100644 index 0000000000..9ad978e1d7 Binary files /dev/null and b/lib/images/oxygen/tabular-feature_set-inner-lines.svgz differ diff --git a/lib/images/tabular-feature_set-inner-lines.svgz b/lib/images/tabular-feature_set-inner-lines.svgz new file mode 100644 index 0000000000..c9ea752710 Binary files /dev/null and b/lib/images/tabular-feature_set-inner-lines.svgz differ diff --git a/lib/ui/stdtoolbars.inc b/lib/ui/stdtoolbars.inc index 8f0f6dce3f..0e6782b09c 100644 --- a/lib/ui/stdtoolbars.inc +++ b/lib/ui/stdtoolbars.inc @@ -156,6 +156,7 @@ ToolbarSet Item "Set right line" "tabular-feature toggle-line-right" Item "Set border lines" "tabular-feature set-border-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" Separator Item "Align left" "command-alternatives tabular-feature m-align-left;tabular-feature align-left" diff --git a/src/insets/InsetTabular.cpp b/src/insets/InsetTabular.cpp index c111365f28..0e1c8499c8 100644 --- a/src/insets/InsetTabular.cpp +++ b/src/insets/InsetTabular.cpp @@ -198,6 +198,7 @@ TabularFeature tabularFeature[] = { Tabular::LONGTABULAR_ALIGN_RIGHT, "longtabular-align-right", false }, { Tabular::SET_DECIMAL_POINT, "set-decimal-point", true }, { Tabular::SET_TABULAR_WIDTH, "set-tabular-width", true }, + { Tabular::SET_INNER_LINES, "set-inner-lines", false }, { Tabular::LAST_ACTION, "", false } }; @@ -4744,6 +4745,7 @@ bool InsetTabular::getFeatureStatus(Cursor & cur, string const & s, case Tabular::SET_ALL_LINES: case Tabular::UNSET_ALL_LINES: + case Tabular::SET_INNER_LINES: case Tabular::SET_BORDER_LINES: status.setEnabled(!tabular.ltCaption(tabular.cellRow(cur.idx()))); break; @@ -5554,6 +5556,7 @@ void InsetTabular::tabularFeatures(Cursor & cur, row_type sel_row_start; row_type sel_row_end; bool setLines = false; + bool setLinesInnerOnly = false; LyXAlignment setAlign = LYX_ALIGN_LEFT; Tabular::VAlignment setVAlign = Tabular::LYX_VALIGN_TOP; @@ -5899,6 +5902,9 @@ void InsetTabular::tabularFeatures(Cursor & cur, break; } + case Tabular::SET_INNER_LINES: + setLinesInnerOnly = true; + // fall through case Tabular::SET_ALL_LINES: setLines = true; // fall through @@ -5906,10 +5912,16 @@ void InsetTabular::tabularFeatures(Cursor & cur, for (row_type r = sel_row_start; r <= sel_row_end; ++r) for (col_type c = sel_col_start; c <= sel_col_end; ++c) { idx_type const cell = tabular.cellIndex(r, c); - tabular.setTopLine(cell, setLines); - tabular.setBottomLine(cell, setLines); - tabular.setRightLine(cell, setLines); - tabular.setLeftLine(cell, setLines); + if (!setLinesInnerOnly || r != sel_row_start) + tabular.setTopLine(cell, setLines); + if ((!setLinesInnerOnly || r != sel_row_end) + && (!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; diff --git a/src/insets/InsetTabular.h b/src/insets/InsetTabular.h index be11b0413e..1a8bf33243 100644 --- a/src/insets/InsetTabular.h +++ b/src/insets/InsetTabular.h @@ -297,6 +297,8 @@ public: /// SET_TABULAR_WIDTH, /// + SET_INNER_LINES, + /// LAST_ACTION }; /// diff --git a/status.23x b/status.23x index 5216b09953..adf8b1395b 100644 --- a/status.23x +++ b/status.23x @@ -167,6 +167,7 @@ What's new - 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). +- Fix behavior of (un)setting all tabular borders (bug 11382). * INTERNALS