icon-themes/breeze/sc/res/sidebar/CellBorder_CrissCross_18x18.png            
|binary
 icon-themes/breeze_dark/sc/res/sidebar/CellBorder_CrissCross_18x18.png       
|binary
 icon-themes/breeze_dark_svg/sc/res/sidebar/CellBorder_CrissCross_18x18.svg   | 
   7 
 icon-themes/breeze_svg/sc/res/sidebar/CellBorder_CrissCross_18x18.svg        | 
   7 
 icon-themes/colibre/sc/res/sidebar/CellBorder_CrissCross_18x18.png           
|binary
 icon-themes/colibre_dark/sc/res/sidebar/CellBorder_CrissCross_18x18.png      
|binary
 icon-themes/colibre_dark_svg/sc/res/sidebar/CellBorder_CrissCross_18x18.svg  | 
   7 
 icon-themes/colibre_svg/sc/res/sidebar/CellBorder_CrissCross_18x18.svg       | 
   7 
 icon-themes/elementary/sc/res/sidebar/CellBorder_CrissCross_18x18.png        
|binary
 icon-themes/elementary_svg/sc/res/sidebar/CellBorder_CrissCross_18x18.svg    | 
  24 +
 icon-themes/karasa_jaga/sc/res/sidebar/CellBorder_CrissCross_18x18.png       
|binary
 icon-themes/karasa_jaga_svg/sc/res/sidebar/CellBorder_CrissCross_18x18.svg   | 
  39 +++
 icon-themes/sifr/sc/res/sidebar/CellBorder_CrissCross_18x18.png              
|binary
 icon-themes/sifr_dark/sc/res/sidebar/CellBorder_CrissCross_18x18.png         
|binary
 icon-themes/sifr_dark_svg/sc/res/sidebar/CellBorder_CrissCross_18x18.svg     | 
   8 
 icon-themes/sifr_svg/sc/res/sidebar/CellBorder_CrissCross_18x18.svg          | 
   8 
 icon-themes/sukapura/sc/res/sidebar/CellBorder_CrissCross_18x18.png          
|binary
 icon-themes/sukapura_dark/sc/res/sidebar/CellBorder_CrissCross_18x18.png     
|binary
 icon-themes/sukapura_dark_svg/sc/res/sidebar/CellBorder_CrissCross_18x18.svg | 
   7 
 icon-themes/sukapura_svg/sc/res/sidebar/CellBorder_CrissCross_18x18.svg      | 
   7 
 sc/source/ui/sidebar/CellBorderStyleControl.cxx                              | 
 105 +-------
 sc/source/ui/sidebar/CellBorderStyleControl.hxx                              | 
   1 
 sc/uiconfig/scalc/ui/floatingborderstyle.ui                                  | 
  71 -----
 svx/source/tbxctrls/tbcontrl.cxx                                             | 
 123 +++++-----
 24 files changed, 223 insertions(+), 198 deletions(-)

New commits:
commit 21eeaf5f50ca4ca7a8815110d33fb005fe01d694
Author:     Manas Todi <manastodi1...@gmail.com>
AuthorDate: Tue Aug 19 20:45:55 2025 +0530
Commit:     Heiko Tietze <heiko.tie...@documentfoundation.org>
CommitDate: Thu Aug 21 09:42:14 2025 +0200

    tdf#146466: SC: Unify choices of borders between toolbar and sidebar
    
    The preset border options available in Calc via buttons were different
    between the main toolbar and the Properties sidebar, leading to a
    confusing and inconsistent user experience.
    
    As per the design team's proposal in the bug report, this patch
    reworks both controls to use a single, unified 12-option grid of
    the most common border presets.
    
    This change modifies the UI definitions for both the sidebar and
    toolbar controls and refactors the C++ logic to handle the new
    unified layout. New icons have been created for the 'criss-cross'
    style to match the various icon themes.
    
    Change-Id: I5066a41340941684c6dc55d4e1b64d4ef995cfd8
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189690
    Tested-by: Jenkins
    Reviewed-by: Heiko Tietze <heiko.tie...@documentfoundation.org>

diff --git a/icon-themes/breeze/sc/res/sidebar/CellBorder_CrissCross_18x18.png 
b/icon-themes/breeze/sc/res/sidebar/CellBorder_CrissCross_18x18.png
new file mode 100644
index 000000000000..0b2f58a5a2c6
Binary files /dev/null and 
b/icon-themes/breeze/sc/res/sidebar/CellBorder_CrissCross_18x18.png differ
diff --git 
a/icon-themes/breeze_dark/sc/res/sidebar/CellBorder_CrissCross_18x18.png 
b/icon-themes/breeze_dark/sc/res/sidebar/CellBorder_CrissCross_18x18.png
new file mode 100644
index 000000000000..8765b068a1e2
Binary files /dev/null and 
b/icon-themes/breeze_dark/sc/res/sidebar/CellBorder_CrissCross_18x18.png differ
diff --git 
a/icon-themes/breeze_dark_svg/sc/res/sidebar/CellBorder_CrissCross_18x18.svg 
b/icon-themes/breeze_dark_svg/sc/res/sidebar/CellBorder_CrissCross_18x18.svg
new file mode 100644
index 000000000000..709b74afa28d
--- /dev/null
+++ b/icon-themes/breeze_dark_svg/sc/res/sidebar/CellBorder_CrissCross_18x18.svg
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.1" viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg";>
+<path d="m0 0v18h18v-18z" stroke-width="1.125"/>
+<path d="m0 0v2h1v-2zm2 0v1h2v-1zm3 0v1h2v-1zm3 0v1h2v-1zm3 0v1h2v-1zm3 
0v1h2v-1zm3 0v2h1v-2zm-17 3v2h1v-2zm17 0v2h1v-2zm-17 4v2h1v-2zm17 0v2h1v-2zm-17 
3v2h1v-2zm17 0v2h1v-2zm-17 3v2h1v-2zm17 0v2h1v-2zm-17 3v2h1v-2zm17 
0v2h1v-2zm-15 1v1h2v-1zm3 0v1h2v-1zm3 0v1h2v-1zm3 0v1h2v-1zm3 0v1h2v-1z" 
fill="#d3d3d3"/>
+<path d="m0 0v1.416l16.584 
16.584h1.416v-1.416l-1.1426-1.1406-14.301-14.301-1.1406-1.1426z" 
fill="#eff0f1"/>
+<path d="m17.992-0.0081246v1.416l-16.584 16.584h-1.416v-1.416l1.1426-1.1406 
14.301-14.301 1.1406-1.1426z" fill="#eff0f1"/>
+</svg>
diff --git 
a/icon-themes/breeze_svg/sc/res/sidebar/CellBorder_CrissCross_18x18.svg 
b/icon-themes/breeze_svg/sc/res/sidebar/CellBorder_CrissCross_18x18.svg
new file mode 100644
index 000000000000..feb3dae96ac2
--- /dev/null
+++ b/icon-themes/breeze_svg/sc/res/sidebar/CellBorder_CrissCross_18x18.svg
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.1" viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg";>
+<path d="m0 0v18h18v-18z" fill="#fff" stroke-width="1.125"/>
+<path d="m0 0v2h1v-2zm2 0v1h2v-1zm3 0v1h2v-1zm3 0v1h2v-1zm3 0v1h2v-1zm3 
0v1h2v-1zm3 0v2h1v-2zm-17 3v2h1v-2zm17 0v2h1v-2zm-17 4v2h1v-2zm17 0v2h1v-2zm-17 
3v2h1v-2zm17 0v2h1v-2zm-17 3v2h1v-2zm17 0v2h1v-2zm-17 3v2h1v-2zm17 
0v2h1v-2zm-15 1v1h2v-1zm3 0v1h2v-1zm3 0v1h2v-1zm3 0v1h2v-1zm3 0v1h2v-1z" 
fill="#d3d3d3"/>
+<path d="m0 0v1.416l16.584 
16.584h1.416v-1.416l-1.1426-1.1406-14.301-14.301-1.1406-1.1426z" 
fill="#232629"/>
+<path d="m18 0v1.416l-16.584 16.584h-1.416v-1.416l1.1426-1.1406 14.301-14.301 
1.1406-1.1426z" fill="#232629"/>
+</svg>
diff --git a/icon-themes/colibre/sc/res/sidebar/CellBorder_CrissCross_18x18.png 
b/icon-themes/colibre/sc/res/sidebar/CellBorder_CrissCross_18x18.png
new file mode 100644
index 000000000000..2a3c324be9fe
Binary files /dev/null and 
b/icon-themes/colibre/sc/res/sidebar/CellBorder_CrissCross_18x18.png differ
diff --git 
a/icon-themes/colibre_dark/sc/res/sidebar/CellBorder_CrissCross_18x18.png 
b/icon-themes/colibre_dark/sc/res/sidebar/CellBorder_CrissCross_18x18.png
new file mode 100644
index 000000000000..31dc0bb426ce
Binary files /dev/null and 
b/icon-themes/colibre_dark/sc/res/sidebar/CellBorder_CrissCross_18x18.png differ
diff --git 
a/icon-themes/colibre_dark_svg/sc/res/sidebar/CellBorder_CrissCross_18x18.svg 
b/icon-themes/colibre_dark_svg/sc/res/sidebar/CellBorder_CrissCross_18x18.svg
new file mode 100644
index 000000000000..0c18ce8a6fc2
--- /dev/null
+++ 
b/icon-themes/colibre_dark_svg/sc/res/sidebar/CellBorder_CrissCross_18x18.svg
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.1" viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg";>
+<path d="m0 0v18h18v-18z" fill="#3a3a38" stroke-width="1.125"/>
+<path d="m0 0v2h1v-2zm2 0v1h2v-1zm3 0v1h2v-1zm3 0v1h2v-1zm3 0v1h2v-1zm3 
0v1h2v-1zm3 0v2h1v-2zm-17 3v2h1v-2zm17 0v2h1v-2zm-17 4v2h1v-2zm17 0v2h1v-2zm-17 
3v2h1v-2zm17 0v2h1v-2zm-17 3v2h1v-2zm17 0v2h1v-2zm-17 3v2h1v-2zm17 
0v2h1v-2zm-15 1v1h2v-1zm3 0v1h2v-1zm3 0v1h2v-1zm3 0v1h2v-1zm3 0v1h2v-1z" 
fill="#d3d3d3"/>
+<path d="m18 0v1.416l-16.584 16.584h-1.416v-1.416l1.1426-1.1406 14.301-14.301 
1.1406-1.1426z" fill="#fafafa"/>
+<path d="m0 0v1.416l16.584 
16.584h1.416v-1.416l-1.1426-1.1406-14.301-14.301-1.1406-1.1426z" 
fill="#fafafa"/>
+</svg>
diff --git 
a/icon-themes/colibre_svg/sc/res/sidebar/CellBorder_CrissCross_18x18.svg 
b/icon-themes/colibre_svg/sc/res/sidebar/CellBorder_CrissCross_18x18.svg
new file mode 100644
index 000000000000..0c6d4533a1d0
--- /dev/null
+++ b/icon-themes/colibre_svg/sc/res/sidebar/CellBorder_CrissCross_18x18.svg
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.1" viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg";>
+<path d="m0 0v18h18v-18z" fill="#fafafa" stroke-width="1.125"/>
+<path d="m0 0v2h1v-2zm2 0v1h2v-1zm3 0v1h2v-1zm3 0v1h2v-1zm3 0v1h2v-1zm3 
0v1h2v-1zm3 0v2h1v-2zm-17 3v2h1v-2zm17 0v2h1v-2zm-17 4v2h1v-2zm17 0v2h1v-2zm-17 
3v2h1v-2zm17 0v2h1v-2zm-17 3v2h1v-2zm17 0v2h1v-2zm-17 3v2h1v-2zm17 
0v2h1v-2zm-15 1v1h2v-1zm3 0v1h2v-1zm3 0v1h2v-1zm3 0v1h2v-1zm3 0v1h2v-1z" 
fill="#d3d3d3"/>
+<path d="m18 0v1.416l-16.584 16.584h-1.416v-1.416l1.1426-1.1406 14.301-14.301 
1.1406-1.1426z" fill="#3a3a38"/>
+<path d="m0 0v1.416l16.584 
16.584h1.416v-1.416l-1.1426-1.1406-14.301-14.301-1.1406-1.1426z" 
fill="#3a3a38"/>
+</svg>
diff --git 
a/icon-themes/elementary/sc/res/sidebar/CellBorder_CrissCross_18x18.png 
b/icon-themes/elementary/sc/res/sidebar/CellBorder_CrissCross_18x18.png
new file mode 100644
index 000000000000..0ec41edf223d
Binary files /dev/null and 
b/icon-themes/elementary/sc/res/sidebar/CellBorder_CrissCross_18x18.png differ
diff --git 
a/icon-themes/elementary_svg/sc/res/sidebar/CellBorder_CrissCross_18x18.svg 
b/icon-themes/elementary_svg/sc/res/sidebar/CellBorder_CrissCross_18x18.svg
new file mode 100644
index 000000000000..bab265200fd4
--- /dev/null
+++ b/icon-themes/elementary_svg/sc/res/sidebar/CellBorder_CrissCross_18x18.svg
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.1" viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg";>
+<linearGradient id="f" x1="9.5333" x2="9.5333" y1="-2.2" y2="18.067" 
gradientUnits="userSpaceOnUse">
+<stop stop-color="#fff" offset="0"/>
+<stop stop-color="#e9e9e9" offset="1"/>
+</linearGradient>
+<linearGradient id="e" x1="9" x2="9" y1="20" gradientTransform="matrix(.25379 
0 0 .30502 19.129 -.68548)" gradientUnits="userSpaceOnUse">
+<stop stop-opacity=".33951" offset="0"/>
+<stop stop-opacity=".24691" offset="1"/>
+</linearGradient>
+<linearGradient id="d" x1="24" x2="24" y1="6.9231" y2="46.769" 
gradientTransform="matrix(.24324 0 0 .35135 .16216 -.43243)" 
gradientUnits="userSpaceOnUse">
+<stop stop-color="#fff" offset="0"/>
+<stop stop-color="#fff" stop-opacity=".23529" offset="0"/>
+<stop stop-color="#fff" stop-opacity=".15686" offset="1"/>
+<stop stop-color="#fff" stop-opacity=".39216" offset="1"/>
+</linearGradient>
+<path d="m1 1v16h16v-16z" fill="url(#f)" stroke-width="1.0667"/>
+<g fill="none">
+<path d="m.5.5h17v17h-17z" opacity=".5" stroke="url(#e)" 
stroke-linecap="square"/>
+<path d="m16.5 16.5h-15v-15h15z" stroke="url(#d)" stroke-linecap="round"/>
+<path transform="matrix(0 1 -1 0 34.002 -.001767)" d="m1.5018 31.502 14-14" 
stroke="#f37329" stroke-linecap="square" stroke-width="2"/>
+<path d="m15.414 1.4142-14 14" stroke="#f37329" stroke-linecap="square" 
stroke-width="2"/>
+</g>
+</svg>
diff --git 
a/icon-themes/karasa_jaga/sc/res/sidebar/CellBorder_CrissCross_18x18.png 
b/icon-themes/karasa_jaga/sc/res/sidebar/CellBorder_CrissCross_18x18.png
new file mode 100644
index 000000000000..e29226e17f94
Binary files /dev/null and 
b/icon-themes/karasa_jaga/sc/res/sidebar/CellBorder_CrissCross_18x18.png differ
diff --git 
a/icon-themes/karasa_jaga_svg/sc/res/sidebar/CellBorder_CrissCross_18x18.svg 
b/icon-themes/karasa_jaga_svg/sc/res/sidebar/CellBorder_CrissCross_18x18.svg
new file mode 100644
index 000000000000..d5e619eaef4f
--- /dev/null
+++ b/icon-themes/karasa_jaga_svg/sc/res/sidebar/CellBorder_CrissCross_18x18.svg
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="18" height="18" version="1.1" viewBox="0 0 4.7625 4.7625" 
xmlns="http://www.w3.org/2000/svg";>
+<filter id="a" x="-.025986" y="-.026099" width="1.052" height="1.0522">
+<feGaussianBlur stdDeviation="1.0394514"/>
+</filter>
+<filter id="g" x="-.013037" y="-.01295" width="1.0261" height="1.0259">
+<feGaussianBlur stdDeviation=".50063244"/>
+</filter>
+<radialGradient id="f" cx="44.858" cy="306.45" r="43.679" 
gradientUnits="userSpaceOnUse">
+<stop stop-color="#00537d" offset="0"/>
+<stop stop-color="#186389" offset=".0151"/>
+<stop stop-color="#558ca8" offset=".0558"/>
+<stop stop-color="#89afc3" offset=".0964"/>
+<stop stop-color="#b3ccd8" offset=".1357"/>
+<stop stop-color="#d4e2e9" offset=".1737"/>
+<stop stop-color="#ecf2f5" offset=".2099"/>
+<stop stop-color="#fafcfd" offset=".2435"/>
+<stop stop-color="#fff" offset=".2722"/>
+</radialGradient>
+<radialGradient id="e" cx="125.3" cy="133.26" r="139.56" 
gradientTransform="matrix(.30632 0 0 .30729 -2.7043 257.93)" 
gradientUnits="userSpaceOnUse">
+<stop stop-color="#e3e4e4" offset="0"/>
+<stop stop-color="#ececed" offset=".11366"/>
+<stop stop-color="#ececec" offset=".20297"/>
+<stop stop-color="#fafafa" offset=".2363"/>
+<stop stop-color="#fff" offset=".2722"/>
+<stop stop-color="#fafafa" offset=".5313"/>
+<stop stop-color="#ebecec" offset=".8449"/>
+<stop stop-color="#e1e2e3" offset="1"/>
+</radialGradient>
+<g transform="matrix(.14062 0 0 .14062 .004657 -37.008)">
+<path transform="matrix(.32602 0 0 .32416 -6.2472 256.53)" d="m23 24.448 
0.04082 96.552h61.131l34.242-0.10366c0.375-0.375 0.586-0.884 
0.586-1.414v-95.034z" filter="url(#a)" opacity=".71507"/>
+<path transform="matrix(.32602 0 0 .32416 -6.2472 256.53)" d="m24.92 
26.379v92.69l91.574 0.0893c0.375-0.375 0.586-0.884 0.586-1.414v-91.365h-92.16z" 
filter="url(#g)" opacity=".89589"/>
+<path transform="matrix(.32602 0 0 .32416 -6.2472 256.53)" d="m23 25.414 
0.040816 95.586h61.131l34.242-0.10366c0.375-0.375 0.586-0.884 
0.586-1.414v-94.069z" filter="url(#a)" opacity=".83562"/>
+<path d="m1.8772 265.08v30.046h19.146l10.717 0.0269c0.11737-0.11735 
0.1834-0.27666 0.1834-0.44256l2e-6 -29.63z" fill="url(#f)" 
stroke-width=".31298"/>
+<path d="m4.5934663 267.58062c-.1687821 
0-.3063201.13796-.3063201.30729l.093894 24.42376c0 
.16962.1375378.30729.3063202.30729l24.6422776-.0371c.05728-.0575.08975-.13644.08975-.21724v-24.47663c0-.16932-.13723-.30729-.306317-.30729z"
 fill="url(#e)" stroke-width=".31298"/>
+<path d="m31.923 265.08v2.5998l-27.467 27.467-2.3957 
6e-3c-0.11737-0.11715-0.18345-0.27625-0.18345-0.44215v-2.3166l27.314-27.314z" 
fill="#258aff" fill-rule="evenodd"/>
+<path d="m1.8621 265.07v2.5998l27.467 27.467 2.3957 6e-3c0.11737-0.11715 
0.18345-0.27625 0.18345-0.44215v-2.3166l-27.314-27.314z" fill="#258aff" 
fill-rule="evenodd"/>
+</g>
+</svg>
diff --git a/icon-themes/sifr/sc/res/sidebar/CellBorder_CrissCross_18x18.png 
b/icon-themes/sifr/sc/res/sidebar/CellBorder_CrissCross_18x18.png
new file mode 100644
index 000000000000..7d575b9c33ce
Binary files /dev/null and 
b/icon-themes/sifr/sc/res/sidebar/CellBorder_CrissCross_18x18.png differ
diff --git 
a/icon-themes/sifr_dark/sc/res/sidebar/CellBorder_CrissCross_18x18.png 
b/icon-themes/sifr_dark/sc/res/sidebar/CellBorder_CrissCross_18x18.png
new file mode 100644
index 000000000000..9dbb6aa8b5ba
Binary files /dev/null and 
b/icon-themes/sifr_dark/sc/res/sidebar/CellBorder_CrissCross_18x18.png differ
diff --git 
a/icon-themes/sifr_dark_svg/sc/res/sidebar/CellBorder_CrissCross_18x18.svg 
b/icon-themes/sifr_dark_svg/sc/res/sidebar/CellBorder_CrissCross_18x18.svg
new file mode 100644
index 000000000000..63b62b6419f8
--- /dev/null
+++ b/icon-themes/sifr_dark_svg/sc/res/sidebar/CellBorder_CrissCross_18x18.svg
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.1" viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg";>
+<g fill="#efefef">
+<path d="m2 2v14h14v-14z" opacity=".35"/>
+<path d="m16.586 0-16.586 16.586v1.4141h1.4141l16.586-16.586v-1.4141z"/>
+<path d="m16.586 18-16.586-16.586v-1.4141h1.4141l16.586 16.586v1.4141z"/>
+</g>
+</svg>
diff --git 
a/icon-themes/sifr_svg/sc/res/sidebar/CellBorder_CrissCross_18x18.svg 
b/icon-themes/sifr_svg/sc/res/sidebar/CellBorder_CrissCross_18x18.svg
new file mode 100644
index 000000000000..3757bf10a716
--- /dev/null
+++ b/icon-themes/sifr_svg/sc/res/sidebar/CellBorder_CrissCross_18x18.svg
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.1" viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg";>
+<g fill="#2e3436">
+<path d="m2 2v14h14v-14z" opacity=".35"/>
+<path d="m16.586 0-16.586 16.586v1.4141h1.4141l16.586-16.586v-1.4141z"/>
+<path d="m1.4141 0 16.586 16.586v1.4141h-1.4141l-16.586-16.586v-1.4141z"/>
+</g>
+</svg>
diff --git 
a/icon-themes/sukapura/sc/res/sidebar/CellBorder_CrissCross_18x18.png 
b/icon-themes/sukapura/sc/res/sidebar/CellBorder_CrissCross_18x18.png
new file mode 100644
index 000000000000..3494aa376575
Binary files /dev/null and 
b/icon-themes/sukapura/sc/res/sidebar/CellBorder_CrissCross_18x18.png differ
diff --git 
a/icon-themes/sukapura_dark/sc/res/sidebar/CellBorder_CrissCross_18x18.png 
b/icon-themes/sukapura_dark/sc/res/sidebar/CellBorder_CrissCross_18x18.png
new file mode 100644
index 000000000000..c20896b5e6e0
Binary files /dev/null and 
b/icon-themes/sukapura_dark/sc/res/sidebar/CellBorder_CrissCross_18x18.png 
differ
diff --git 
a/icon-themes/sukapura_dark_svg/sc/res/sidebar/CellBorder_CrissCross_18x18.svg 
b/icon-themes/sukapura_dark_svg/sc/res/sidebar/CellBorder_CrissCross_18x18.svg
new file mode 100644
index 000000000000..b326780c80bd
--- /dev/null
+++ 
b/icon-themes/sukapura_dark_svg/sc/res/sidebar/CellBorder_CrissCross_18x18.svg
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.1" viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg";>
+<path d="m0 0v18h18v-18z" fill="#2d2d2d" stroke-width="1.125"/>
+<path d="m0 0v2h1v-2zm2 0v1h2v-1zm3 0v1h2v-1zm3 0v1h2v-1zm3 0v1h2v-1zm3 
0v1h2v-1zm3 0v2h1v-2zm-17 3v2h1v-2zm17 0v2h1v-2zm-17 4v2h1v-2zm17 0v2h1v-2zm-17 
3v2h1v-2zm17 0v2h1v-2zm-17 3v2h1v-2zm17 0v2h1v-2zm-17 3v2h1v-2zm17 
0v2h1v-2zm-15 1v1h2v-1zm3 0v1h2v-1zm3 0v1h2v-1zm3 0v1h2v-1zm3 0v1h2v-1z" 
fill="#d3d3d3"/>
+<path d="m18 0v1.416l-16.584 16.584h-1.416v-1.416l1.1426-1.1406 14.301-14.301 
1.1406-1.1426z" fill="#f2f2f7"/>
+<path d="m0 0v1.416l16.584 
16.584h1.416v-1.416l-1.1426-1.1406-14.301-14.301-1.1406-1.1426z" 
fill="#f2f2f7"/>
+</svg>
diff --git 
a/icon-themes/sukapura_svg/sc/res/sidebar/CellBorder_CrissCross_18x18.svg 
b/icon-themes/sukapura_svg/sc/res/sidebar/CellBorder_CrissCross_18x18.svg
new file mode 100644
index 000000000000..d42a0fef9a02
--- /dev/null
+++ b/icon-themes/sukapura_svg/sc/res/sidebar/CellBorder_CrissCross_18x18.svg
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.1" viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg";>
+<path d="m0 0v18h18v-18z" fill="#f2f2f7" stroke-width="1.125"/>
+<path d="m0 0v2h1v-2zm2 0v1h2v-1zm3 0v1h2v-1zm3 0v1h2v-1zm3 0v1h2v-1zm3 
0v1h2v-1zm3 0v2h1v-2zm-17 3v2h1v-2zm17 0v2h1v-2zm-17 4v2h1v-2zm17 0v2h1v-2zm-17 
3v2h1v-2zm17 0v2h1v-2zm-17 3v2h1v-2zm17 0v2h1v-2zm-17 3v2h1v-2zm17 
0v2h1v-2zm-15 1v1h2v-1zm3 0v1h2v-1zm3 0v1h2v-1zm3 0v1h2v-1zm3 0v1h2v-1z" 
fill="#d3d3d3"/>
+<path d="m18 0v1.416l-16.584 16.584h-1.416v-1.416l1.1426-1.1406 14.301-14.301 
1.1406-1.1426z" fill="#48484a"/>
+<path d="m0 0v1.416l16.584 
16.584h1.416v-1.416l-1.1426-1.1406-14.301-14.301-1.1406-1.1426z" 
fill="#48484a"/>
+</svg>
diff --git a/sc/source/ui/sidebar/CellBorderStyleControl.cxx 
b/sc/source/ui/sidebar/CellBorderStyleControl.cxx
index 1ffbc213fb19..1e71eb2bc976 100644
--- a/sc/source/ui/sidebar/CellBorderStyleControl.cxx
+++ b/sc/source/ui/sidebar/CellBorderStyleControl.cxx
@@ -48,7 +48,6 @@ CellBorderStylePopup::CellBorderStylePopup(weld::Toolbar* 
pParent, const OUStrin
     , mxTBBorder1(m_xBuilder->weld_toolbar(u"border1"_ustr))
     , mxTBBorder2(m_xBuilder->weld_toolbar(u"border2"_ustr))
     , mxTBBorder3(m_xBuilder->weld_toolbar(u"border3"_ustr))
-    , mxTBBorder4(m_xBuilder->weld_toolbar(u"border4"_ustr))
 {
     Initialize();
 }
@@ -67,12 +66,12 @@ void CellBorderStylePopup::Initialize()
     mxTBBorder1->connect_clicked ( LINK(this, CellBorderStylePopup, 
TB1SelectHdl) );
     mxTBBorder1->set_item_tooltip_text(0, 
SvxResId(RID_SVXSTR_TABLE_PRESET_NONE));
     mxTBBorder1->set_item_accessible_name(0, 
SvxResId(RID_SVXSTR_TABLE_PRESET_NONE));
-    mxTBBorder1->set_item_tooltip_text(1, 
SvxResId(RID_SVXSTR_TABLE_PRESET_OUTERALL));
-    mxTBBorder1->set_item_accessible_name(1, 
SvxResId(RID_SVXSTR_TABLE_PRESET_OUTERALL));
-    mxTBBorder1->set_item_tooltip_text(2, 
SvxResId(RID_SVXSTR_TABLE_PRESET_OUTER));
-    mxTBBorder1->set_item_accessible_name(2, 
SvxResId(RID_SVXSTR_TABLE_PRESET_OUTER));
-    mxTBBorder1->set_item_tooltip_text(3, 
SvxResId(RID_SVXSTR_TABLE_PRESET_THICK));
-    mxTBBorder1->set_item_accessible_name(3, 
SvxResId(RID_SVXSTR_TABLE_PRESET_THICK));
+    mxTBBorder1->set_item_tooltip_text(1, 
SvxResId(RID_SVXSTR_TABLE_PRESET_OUTER));
+    mxTBBorder1->set_item_accessible_name(1, 
SvxResId(RID_SVXSTR_TABLE_PRESET_OUTER));
+    mxTBBorder1->set_item_tooltip_text(2, 
SvxResId(RID_SVXSTR_TABLE_PRESET_OUTERALL));
+    mxTBBorder1->set_item_accessible_name(2, 
SvxResId(RID_SVXSTR_TABLE_PRESET_OUTERALL));
+    mxTBBorder1->set_item_tooltip_text(3, 
SvxResId(RID_SVXSTR_PARA_PRESET_CRISSCROSS));
+    mxTBBorder1->set_item_accessible_name(3, 
SvxResId(RID_SVXSTR_PARA_PRESET_CRISSCROSS));
 
     mxTBBorder2->connect_clicked ( LINK(this, CellBorderStylePopup, 
TB2and3SelectHdl) );
     mxTBBorder2->set_item_tooltip_text(0, 
SvxResId(RID_SVXSTR_PARA_PRESET_ONLYLEFT));
@@ -85,24 +84,14 @@ void CellBorderStylePopup::Initialize()
     mxTBBorder2->set_item_accessible_name(3, 
SvxResId(RID_SVXSTR_PARA_PRESET_ONLYBOTTOM));
 
     mxTBBorder3->connect_clicked ( LINK(this, CellBorderStylePopup, 
TB2and3SelectHdl) );
-    mxTBBorder3->set_item_tooltip_text(0, 
SvxResId(RID_SVXSTR_PARA_PRESET_DIAGONALUP));
-    mxTBBorder3->set_item_accessible_name(0, 
SvxResId(RID_SVXSTR_PARA_PRESET_DIAGONALUP));
-    mxTBBorder3->set_item_tooltip_text(1, 
SvxResId(RID_SVXSTR_PARA_PRESET_DIAGONALDOWN));
-    mxTBBorder3->set_item_accessible_name(1, 
SvxResId(RID_SVXSTR_PARA_PRESET_DIAGONALDOWN));
+    mxTBBorder3->set_item_tooltip_text(0, 
SvxResId(RID_SVXSTR_PARA_PRESET_DIAGONALDOWN));
+    mxTBBorder3->set_item_accessible_name(0, 
SvxResId(RID_SVXSTR_PARA_PRESET_DIAGONALDOWN));
+    mxTBBorder3->set_item_tooltip_text(1, 
SvxResId(RID_SVXSTR_PARA_PRESET_DIAGONALUP));
+    mxTBBorder3->set_item_accessible_name(1, 
SvxResId(RID_SVXSTR_PARA_PRESET_DIAGONALUP));
     mxTBBorder3->set_item_tooltip_text(2, 
SvxResId(RID_SVXSTR_PARA_PRESET_TOPBOTTOM));
     mxTBBorder3->set_item_accessible_name(2, 
SvxResId(RID_SVXSTR_PARA_PRESET_TOPBOTTOM));
     mxTBBorder3->set_item_tooltip_text(3, 
SvxResId(RID_SVXSTR_PARA_PRESET_LEFTRIGHT));
     mxTBBorder3->set_item_accessible_name(3, 
SvxResId(RID_SVXSTR_PARA_PRESET_LEFTRIGHT));
-
-    mxTBBorder4->connect_clicked ( LINK(this, CellBorderStylePopup, 
TB4SelectHdl) );
-    mxTBBorder4->set_item_tooltip_text(0, 
SvxResId(RID_SVXSTR_TABLE_PRESET_THICKBOTTOM));
-    mxTBBorder4->set_item_accessible_name(0, 
SvxResId(RID_SVXSTR_TABLE_PRESET_THICKBOTTOM));
-    mxTBBorder4->set_item_tooltip_text(1, 
SvxResId(RID_SVXSTR_TABLE_PRESET_DOUBLEBOTTOM));
-    mxTBBorder4->set_item_accessible_name(1, 
SvxResId(RID_SVXSTR_TABLE_PRESET_DOUBLEBOTTOM));
-    mxTBBorder4->set_item_tooltip_text(2, 
SvxResId(RID_SVXSTR_TABLE_PRESET_TOPTHICKBOTTOM));
-    mxTBBorder4->set_item_accessible_name(2, 
SvxResId(RID_SVXSTR_TABLE_PRESET_TOPTHICKBOTTOM));
-    mxTBBorder4->set_item_tooltip_text(3, 
SvxResId(RID_SVXSTR_TABLE_PRESET_TOPDOUBLEBOTTOM));
-    mxTBBorder4->set_item_accessible_name(3, 
SvxResId(RID_SVXSTR_TABLE_PRESET_TOPDOUBLEBOTTOM));
 }
 
 IMPL_LINK(CellBorderStylePopup, TB1SelectHdl, const OUString&, rId, void)
@@ -137,11 +126,16 @@ IMPL_LINK(CellBorderStylePopup, TB1SelectHdl, const 
OUString&, rId, void)
         pLeft = pRight = pTop = pBottom = &theDefLine;
         nValidFlags |= FRM_VALID_OUTER;
     }
-    else if (rId == "thickbox")
+    else if (rId == "crisscross")
     {
-        theDefLine.SetWidth(SvxBorderLineWidth::Thick);
-        pLeft = pRight = pTop = pBottom = &theDefLine;
-        nValidFlags |= FRM_VALID_OUTER;
+        editeng::SvxBorderLine aThinLine(nullptr, SvxBorderLineWidth::Thin);
+        SvxLineItem aDiagUpItem(SID_ATTR_BORDER_DIAG_BLTR);
+        aDiagUpItem.SetLine(&aThinLine);
+        SvxLineItem aDiagDownItem(SID_ATTR_BORDER_DIAG_TLBR);
+        aDiagDownItem.SetLine(&aThinLine);
+        mpDispatcher->ExecuteList(SID_ATTR_BORDER_DIAG_BLTR, 
SfxCallMode::RECORD, { &aDiagUpItem });
+        mpDispatcher->ExecuteList(SID_ATTR_BORDER_DIAG_TLBR, 
SfxCallMode::RECORD,
+                                  { &aDiagDownItem });
     }
 
     aBorderOuter.SetLine( pLeft, SvxBoxItemLine::LEFT );
@@ -251,67 +245,6 @@ IMPL_LINK(CellBorderStylePopup, TB2and3SelectHdl, const 
OUString&, rId, void)
     maToolButton.set_inactive();
 }
 
-IMPL_LINK(CellBorderStylePopup, TB4SelectHdl, const OUString&, rId, void)
-{
-    SvxBoxItem          aBorderOuter( SID_ATTR_BORDER_OUTER );
-    SvxBoxInfoItem      aBorderInner( SID_ATTR_BORDER_INNER );
-    std::unique_ptr<editeng::SvxBorderLine> pTop;
-    std::unique_ptr<editeng::SvxBorderLine> pBottom;
-    sal_uInt8               nValidFlags = 0;
-    using namespace ::com::sun::star::table::BorderLineStyle;
-
-    //FIXME: properly adapt to new line border model
-
-    if (rId == "thickbottom")
-    {
-        pBottom.reset(new editeng::SvxBorderLine(nullptr, 
SvxBorderLineWidth::Thick));
-        nValidFlags |= FRM_VALID_BOTTOM;
-    }
-    else if (rId == "doublebottom")
-    {
-        pBottom.reset(new editeng::SvxBorderLine(nullptr));
-        pBottom->GuessLinesWidths(SvxBorderLineStyle::DOUBLE, 
SvxBorderLineWidth::Hairline,
-                                  SvxBorderLineWidth::Hairline, 
SvxBorderLineWidth::Thin);
-        nValidFlags |= FRM_VALID_BOTTOM;
-    }
-    else if (rId == "topthickbottom")
-    {
-        pBottom.reset(new editeng::SvxBorderLine(nullptr, 
SvxBorderLineWidth::Thick));
-        pTop.reset(new editeng::SvxBorderLine(nullptr, 
SvxBorderLineWidth::Thin));
-        nValidFlags |= FRM_VALID_BOTTOM|FRM_VALID_TOP;
-    }
-    else if (rId == "topdoublebottom")
-    {
-        pBottom.reset(new editeng::SvxBorderLine(nullptr));
-        pBottom->GuessLinesWidths(SvxBorderLineStyle::DOUBLE, 
SvxBorderLineWidth::Hairline,
-                                  SvxBorderLineWidth::Hairline, 
SvxBorderLineWidth::Thin);
-        pTop.reset(new editeng::SvxBorderLine(nullptr, 
SvxBorderLineWidth::Thin));
-        nValidFlags |= FRM_VALID_BOTTOM|FRM_VALID_TOP;
-    }
-
-    aBorderOuter.SetLine( pTop.get(), SvxBoxItemLine::TOP );
-    aBorderOuter.SetLine( pBottom.get(), SvxBoxItemLine::BOTTOM );
-    aBorderOuter.SetLine( nullptr, SvxBoxItemLine::LEFT );
-    aBorderOuter.SetLine( nullptr, SvxBoxItemLine::RIGHT );
-
-    aBorderInner.SetValid( SvxBoxInfoItemValidFlags::TOP,       0 != 
(nValidFlags&FRM_VALID_TOP ));
-    aBorderInner.SetValid( SvxBoxInfoItemValidFlags::BOTTOM,    0 != 
(nValidFlags&FRM_VALID_BOTTOM ));
-    aBorderInner.SetValid( SvxBoxInfoItemValidFlags::LEFT,      0 != 
(nValidFlags&FRM_VALID_LEFT ));
-    aBorderInner.SetValid( SvxBoxInfoItemValidFlags::RIGHT,     0 != 
(nValidFlags&FRM_VALID_RIGHT ));
-    aBorderInner.SetValid( SvxBoxInfoItemValidFlags::HORI,      0 != 
(nValidFlags&FRM_VALID_HINNER ));
-    aBorderInner.SetValid( SvxBoxInfoItemValidFlags::VERT,      0 != 
(nValidFlags&FRM_VALID_VINNER));
-    aBorderInner.SetValid( SvxBoxInfoItemValidFlags::DISTANCE );
-    aBorderInner.SetValid( SvxBoxInfoItemValidFlags::DISABLE, false );
-
-    mpDispatcher->ExecuteList(
-        SID_ATTR_BORDER, SfxCallMode::RECORD, { &aBorderOuter, &aBorderInner 
});
-
-    pTop.reset();
-    pBottom.reset();
-
-    maToolButton.set_inactive();
-}
-
 } // end of namespace sc::sidebar
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/sidebar/CellBorderStyleControl.hxx 
b/sc/source/ui/sidebar/CellBorderStyleControl.hxx
index 95b6cb9b442d..14c09b761c71 100644
--- a/sc/source/ui/sidebar/CellBorderStyleControl.hxx
+++ b/sc/source/ui/sidebar/CellBorderStyleControl.hxx
@@ -33,7 +33,6 @@ private:
     std::unique_ptr<weld::Toolbar> mxTBBorder1;
     std::unique_ptr<weld::Toolbar> mxTBBorder2;
     std::unique_ptr<weld::Toolbar> mxTBBorder3;
-    std::unique_ptr<weld::Toolbar> mxTBBorder4;
 
     void Initialize();
 
diff --git a/sc/uiconfig/scalc/ui/floatingborderstyle.ui 
b/sc/uiconfig/scalc/ui/floatingborderstyle.ui
index ad2f82c50335..7452a6bbe618 100644
--- a/sc/uiconfig/scalc/ui/floatingborderstyle.ui
+++ b/sc/uiconfig/scalc/ui/floatingborderstyle.ui
@@ -38,16 +38,6 @@
                     <property name="homogeneous">True</property>
                   </packing>
                 </child>
-                <child>
-                  <object class="GtkToolButton" id="all">
-                    <property name="visible">True</property>
-                    <property 
name="icon-name">sc/res/sidebar/CellBorder_All_18x18.png</property>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="homogeneous">True</property>
-                  </packing>
-                </child>
                 <child>
                   <object class="GtkToolButton" id="outside">
                     <property name="visible">True</property>
@@ -59,51 +49,9 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkToolButton" id="thickbox">
-                    <property name="visible">True</property>
-                    <property 
name="icon-name">sc/res/sidebar/CellBorder_FourBorders_Thick_18x18.png</property>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="homogeneous">True</property>
-                  </packing>
-                </child>
-              </object>
-              <packing>
-                <property name="left-attach">0</property>
-                <property name="top-attach">0</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkToolbar" id="border4">
-                <property name="visible">True</property>
-                <property name="can-focus">True</property>
-                <property name="toolbar-style">icons</property>
-                <property name="show-arrow">False</property>
-                <child>
-                  <object class="GtkToolButton" id="thickbottom">
-                    <property name="visible">True</property>
-                    <property 
name="icon-name">sc/res/sidebar/CellBorder_Bottom_Thick_18x18.png</property>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="homogeneous">True</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkToolButton" id="doublebottom">
-                    <property name="visible">True</property>
-                    <property 
name="icon-name">sc/res/sidebar/CellBorder_Bottom_Double_18x18.png</property>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="homogeneous">True</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkToolButton" id="topthickbottom">
+                  <object class="GtkToolButton" id="all">
                     <property name="visible">True</property>
-                    <property 
name="icon-name">sc/res/sidebar/CellBorder_TopThin_BottomThick_18x18.png</property>
+                    <property 
name="icon-name">sc/res/sidebar/CellBorder_All_18x18.png</property>
                   </object>
                   <packing>
                     <property name="expand">False</property>
@@ -111,9 +59,10 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkToolButton" id="topdoublebottom">
+                  <object class="GtkToolButton" id="crisscross">
                     <property name="visible">True</property>
-                    <property 
name="icon-name">sc/res/sidebar/CellBorder_TopSingle_BottomDouble_18x18.png</property>
+                    <property 
name="icon-name">sc/res/sidebar/CellBorder_CrissCross_18x18.png</property>
+                    <property name="label" translatable="yes" 
context="sc|crisscross">Criss-cross Border</property>
                   </object>
                   <packing>
                     <property name="expand">False</property>
@@ -123,7 +72,7 @@
               </object>
               <packing>
                 <property name="left-attach">0</property>
-                <property name="top-attach">3</property>
+                <property name="top-attach">0</property>
               </packing>
             </child>
             <child>
@@ -185,10 +134,10 @@
                 <property name="toolbar-style">icons</property>
                 <property name="show-arrow">False</property>
                 <child>
-                  <object class="GtkToolButton" id="diagup">
+                  <object class="GtkToolButton" id="diagdown">
                     <property name="visible">True</property>
                     <property name="use-underline">True</property>
-                    <property 
name="icon-name">sc/res/sidebar/CellBorder_RightDiagonal_18x18.png</property>
+                    <property 
name="icon-name">sc/res/sidebar/CellBorder_LeftDiagonal_18x18.png</property>
                   </object>
                   <packing>
                     <property name="expand">False</property>
@@ -196,10 +145,10 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkToolButton" id="diagdown">
+                  <object class="GtkToolButton" id="diagup">
                     <property name="visible">True</property>
                     <property name="use-underline">True</property>
-                    <property 
name="icon-name">sc/res/sidebar/CellBorder_LeftDiagonal_18x18.png</property>
+                    <property 
name="icon-name">sc/res/sidebar/CellBorder_RightDiagonal_18x18.png</property>
                   </object>
                   <packing>
                     <property name="expand">False</property>
diff --git a/svx/source/tbxctrls/tbcontrl.cxx b/svx/source/tbxctrls/tbcontrl.cxx
index c1cdc73fe702..c370aac324c0 100644
--- a/svx/source/tbxctrls/tbcontrl.cxx
+++ b/svx/source/tbxctrls/tbcontrl.cxx
@@ -2490,32 +2490,21 @@ 
SvxFrameWindow_Impl::SvxFrameWindow_Impl(SvxFrameToolBoxControl* pControl, weld:
     AddStatusListener(u".uno:BorderReducedMode"_ustr);
     InitImageList();
 
-    /*
-     *  1       2        3         4            5
-     *  ------------------------------------------------------
-     *  NONE    LEFT     RIGHT     LEFTRIGHT    DIAGONALDOWN
-     *  TOP     BOTTOM   TOPBOTTOM OUTER        DIAGONALUP
-     *  ------------------------------------------------------
-     *  HOR     HORINNER VERINNER   ALL         CRISSCROSS      <- can be 
switched of via bParagraphMode
-     */
-
     sal_uInt16 i = 0;
 
-    // diagonal borders available only for Calc.
-    // Therefore, Calc uses 10 border types while
-    // Writer uses 8 of them - for a single cell.
-    for ( i=1; i < (m_bIsCalc ? 11 : 9); i++ )
+    // Writer and Calc uses 8 border types - for a single cell.
+    for ( i=1; i < 9; i++ )
         mxFrameSet->InsertItem(i, Image(aImgVec[i-1].first), 
aImgVec[i-1].second);
 
     //bParagraphMode should have been set in StateChanged
     if ( !bParagraphMode )
         // when multiple cell selected:
-        // Writer has 12 border types and Calc has 15 of them.
-        for ( i = (m_bIsCalc ? 11 : 9); i < (m_bIsCalc ? 16 : 13); i++ )
+        // Writer and Calc have 12 border types.
+        for ( i = 9; i < 13; i++ )
             mxFrameSet->InsertItem(i, Image(aImgVec[i-1].first), 
aImgVec[i-1].second);
 
-    // adjust frame column for Writer
-    sal_uInt16 colCount = m_bIsWriter ? 4 : 5;
+    // adjust frame column for Writer and Calc
+    sal_uInt16 colCount = 4;
     mxFrameSet->SetColCount( colCount );
     mxFrameSet->SetSelectHdl( LINK( this, SvxFrameWindow_Impl, SelectHdl ) );
     CalcSizeValueSet();
@@ -2574,15 +2563,52 @@ IMPL_LINK_NOARG(SvxFrameWindow_Impl, SelectHdl, 
ValueSet*, void)
     // cell border using the border formatting tool in the standard toolbar
     theDefLine.GuessLinesWidths(theDefLine.GetBorderLineStyle(), 
SvxBorderLineWidth::Thin);
 
-    // nSel has 15 cases which means 15 border
-    // types for Calc. But Writer uses only 12
+    // nSel has 15 cases which means 12 (9 common with writer + 3 unique) 
unique border
+    // types for Calc. But Writer uses 12 (9 common with calc + 3 unique)
     // of them - when diagonal borders excluded.
-    if (!m_bIsCalc)
+    if (m_bIsCalc)
     {
-        // add appropriate increments
-        // to match the correct borders.
-        if (nSel > 8) { nSel += 2; }
-        else if (nSel > 4) { nSel++; }
+        // This is a lookup table to map the new 1-12 order
+        // to the 'case' values of the switch statement.
+        switch (nSel)
+        {
+            case 1:
+                nSel = 1;
+                break; // None
+            case 2:
+                nSel = 8;
+                break; // Outside
+            case 3:
+                nSel = 12;
+                break; // All
+            case 4:
+                nSel = 15;
+                break; // Criss-cross
+            case 5:
+                nSel = 2;
+                break; // Left
+            case 6:
+                nSel = 3;
+                break; // Right
+            case 7:
+                nSel = 5;
+                break; // Top
+            case 8:
+                nSel = 6;
+                break; // Bottom
+            case 9:
+                nSel = 13;
+                break; // Diagonal down
+            case 10:
+                nSel = 14;
+                break; // Diagonal up
+            case 11:
+                nSel = 7;
+                break; // Top-bottom
+            case 12:
+                nSel = 4;
+                break; // Left-right
+        }
     }
 
     switch ( nSel )
@@ -2603,51 +2629,51 @@ IMPL_LINK_NOARG(SvxFrameWindow_Impl, SelectHdl, 
ValueSet*, void)
         case 4: pLeft = pRight = &theDefLine;
                 nValidFlags |=  FrmValidFlags::Right|FrmValidFlags::Left;
         break;  // LEFTRIGHT
-        case 5: dDownLineItem.SetLine(&dDownBorderLine);
+        case 13: dDownLineItem.SetLine(&dDownBorderLine);
                 SetDiagonalDownBorder(dDownLineItem);
                 bIsDiagonalBorder = true;
         break;  // DIAGONAL DOWN
-        case 6: pTop = &theDefLine;
+        case 5: pTop = &theDefLine;
                 nValidFlags |= FrmValidFlags::Top;
         break;  // TOP
-        case 7: pBottom = &theDefLine;
+        case 6: pBottom = &theDefLine;
                 nValidFlags |= FrmValidFlags::Bottom;
         break;  // BOTTOM
-        case 8: pTop =  pBottom = &theDefLine;
+        case 7: pTop =  pBottom = &theDefLine;
                 nValidFlags |= FrmValidFlags::Bottom|FrmValidFlags::Top;
         break;  // TOPBOTTOM
-        case 9: pLeft = pRight = pTop = pBottom = &theDefLine;
+        case 8: pLeft = pRight = pTop = pBottom = &theDefLine;
                 nValidFlags |= FrmValidFlags::Left | FrmValidFlags::Right | 
FrmValidFlags::Top | FrmValidFlags::Bottom;
         break;  // OUTER
-        case 10:
+        case 14:
                 dUpLineItem.SetLine(&dUpBorderLine);
                 SetDiagonalUpBorder(dUpLineItem);
                 bIsDiagonalBorder = true;
         break;  // DIAGONAL UP
 
         // Inner Table:
-        case 11: // HOR
+        case 9: // HOR
             pTop = pBottom = &theDefLine;
             aBorderInner.SetLine( &theDefLine, SvxBoxInfoItemLine::HORI );
             aBorderInner.SetLine( nullptr, SvxBoxInfoItemLine::VERT );
             nValidFlags |= 
FrmValidFlags::HInner|FrmValidFlags::Top|FrmValidFlags::Bottom;
             break;
 
-        case 12: // HORINNER
+        case 10: // HORINNER
             pLeft = pRight = pTop = pBottom = &theDefLine;
             aBorderInner.SetLine( &theDefLine, SvxBoxInfoItemLine::HORI );
             aBorderInner.SetLine( nullptr, SvxBoxInfoItemLine::VERT );
             nValidFlags |= 
FrmValidFlags::Right|FrmValidFlags::Left|FrmValidFlags::HInner|FrmValidFlags::Top|FrmValidFlags::Bottom;
             break;
 
-        case 13: // VERINNER
+        case 11: // VERINNER
             pLeft = pRight = pTop = pBottom = &theDefLine;
             aBorderInner.SetLine( nullptr, SvxBoxInfoItemLine::HORI );
             aBorderInner.SetLine( &theDefLine, SvxBoxInfoItemLine::VERT );
             nValidFlags |= 
FrmValidFlags::Right|FrmValidFlags::Left|FrmValidFlags::VInner|FrmValidFlags::Top|FrmValidFlags::Bottom;
         break;
 
-        case 14: // ALL
+        case 12: // ALL
             pLeft = pRight = pTop = pBottom = &theDefLine;
             aBorderInner.SetLine( &theDefLine, SvxBoxInfoItemLine::HORI );
             aBorderInner.SetLine( &theDefLine, SvxBoxInfoItemLine::VERT );
@@ -2743,19 +2769,19 @@ void SvxFrameWindow_Impl::statusChanged( const 
css::frame::FeatureStateEvent& rE
     if(!mxFrameSet->GetItemCount())
         return;
 
-    // set 12 border types for Writer, otherwise 15 for Calc.
-    bool bTableMode = ( mxFrameSet->GetItemCount() == 
static_cast<size_t>(m_bIsCalc ? 15 : 12) );
+    // set 12 border types for Writer and Calc.
+    bool bTableMode = ( mxFrameSet->GetItemCount() == static_cast<size_t>(12) 
);
     bool bResize    = false;
 
     if ( bTableMode && bParagraphMode )
     {
-        for ( sal_uInt16 i = (m_bIsWriter ? 9 : 11); i < (m_bIsWriter ? 13 : 
16); i++ )
+        for ( sal_uInt16 i = 9; i < 13; i++ )
             mxFrameSet->RemoveItem(i);
         bResize = true;
     }
     else if ( !bTableMode && !bParagraphMode )
     {
-        for ( sal_uInt16 i = (m_bIsWriter ? 9 : 11); i < (m_bIsWriter ? 13 : 
16); i++ )
+        for ( sal_uInt16 i = 9; i < 13; i++ )
             mxFrameSet->InsertItem(i, Image(aImgVec[i-1].first), 
aImgVec[i-1].second);
         bResize = true;
     }
@@ -2804,25 +2830,22 @@ void SvxFrameWindow_Impl::InitImageList()
     {
         // Calc has diagonal borders feature.
         // Therefore use additional 3 diagonal border types,
-        // which make border types 15 in total.
+        // which make border types for Calc 12 in total.
         aImgVec = {
             {Bitmap(RID_SVXBMP_FRAME1), 
SvxResId(RID_SVXSTR_TABLE_PRESET_NONE)},
+            {Bitmap(RID_SVXBMP_FRAME8), 
SvxResId(RID_SVXSTR_TABLE_PRESET_OUTER)},
+            {Bitmap(RID_SVXBMP_FRAME12), 
SvxResId(RID_SVXSTR_TABLE_PRESET_OUTERALL)},
+            {Bitmap(RID_SVXBMP_FRAME15), 
SvxResId(RID_SVXSTR_PARA_PRESET_CRISSCROSS)}, // criss-cross border
+
             {Bitmap(RID_SVXBMP_FRAME2), 
SvxResId(RID_SVXSTR_PARA_PRESET_ONLYLEFT)},
             {Bitmap(RID_SVXBMP_FRAME3), 
SvxResId(RID_SVXSTR_PARA_PRESET_ONLYRIGHT)},
-            {Bitmap(RID_SVXBMP_FRAME4), 
SvxResId(RID_SVXSTR_PARA_PRESET_LEFTRIGHT)},
-            {Bitmap(RID_SVXBMP_FRAME14), 
SvxResId(RID_SVXSTR_PARA_PRESET_DIAGONALDOWN)}, // diagonal down border
-
             {Bitmap(RID_SVXBMP_FRAME5), 
SvxResId(RID_SVXSTR_PARA_PRESET_ONLYTOP)},
             {Bitmap(RID_SVXBMP_FRAME6), 
SvxResId(RID_SVXSTR_PARA_PRESET_ONLYBOTTOM)},
-            {Bitmap(RID_SVXBMP_FRAME7), 
SvxResId(RID_SVXSTR_PARA_PRESET_TOPBOTTOM)},
-            {Bitmap(RID_SVXBMP_FRAME8), 
SvxResId(RID_SVXSTR_TABLE_PRESET_OUTER)},
-            {Bitmap(RID_SVXBMP_FRAME13), 
SvxResId(RID_SVXSTR_PARA_PRESET_DIAGONALUP)}, // diagonal up border
 
-            {Bitmap(RID_SVXBMP_FRAME9), 
SvxResId(RID_SVXSTR_PARA_PRESET_TOPBOTTOMHORI)},
-            {Bitmap(RID_SVXBMP_FRAME10), 
SvxResId(RID_SVXSTR_TABLE_PRESET_OUTERHORI)},
-            {Bitmap(RID_SVXBMP_FRAME11), 
SvxResId(RID_SVXSTR_TABLE_PRESET_OUTERVERI)},
-            {Bitmap(RID_SVXBMP_FRAME12), 
SvxResId(RID_SVXSTR_TABLE_PRESET_OUTERALL)},
-            {Bitmap(RID_SVXBMP_FRAME15), 
SvxResId(RID_SVXSTR_PARA_PRESET_CRISSCROSS)} // criss-cross border
+            {Bitmap(RID_SVXBMP_FRAME14), 
SvxResId(RID_SVXSTR_PARA_PRESET_DIAGONALDOWN)}, // diagonal down border
+            {Bitmap(RID_SVXBMP_FRAME13), 
SvxResId(RID_SVXSTR_PARA_PRESET_DIAGONALUP)}, // diagonal up border
+            {Bitmap(RID_SVXBMP_FRAME7), 
SvxResId(RID_SVXSTR_PARA_PRESET_TOPBOTTOM)},
+            {Bitmap(RID_SVXBMP_FRAME4), 
SvxResId(RID_SVXSTR_PARA_PRESET_LEFTRIGHT)}
         };
     }
 }

Reply via email to