From 77d03d03c46bee91c25001e030772ad70dc316c9 Mon Sep 17 00:00:00 2001 From: Jaskaran Singh Date: Thu, 14 Jul 2016 18:05:04 +0530 Subject: [PATCH 1/2] Re-implement Interface for importing border width --- include/orcus/spreadsheet/import_interface.hpp | 2 +- include/orcus/spreadsheet/styles.hpp | 2 +- src/liborcus/odf_styles_context.cpp | 2 +- src/spreadsheet/styles.cpp | 7 +++++-- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/include/orcus/spreadsheet/import_interface.hpp b/include/orcus/spreadsheet/import_interface.hpp index ff833fccb..ed67859dc 100644 --- a/include/orcus/spreadsheet/import_interface.hpp +++ b/include/orcus/spreadsheet/import_interface.hpp @@ -114,7 +114,7 @@ public: virtual void set_border_style(orcus::spreadsheet::border_direction_t dir, border_style_t style) = 0; virtual void set_border_color( orcus::spreadsheet::border_direction_t dir, color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue) = 0; - virtual void set_border_width(border_direction_t dir, length_t width) = 0; + virtual void set_border_width(border_direction_t dir, double width, orcus::length_unit_t unit) = 0; virtual size_t commit_border() = 0; // cell protection diff --git a/include/orcus/spreadsheet/styles.hpp b/include/orcus/spreadsheet/styles.hpp index de3e96b55..f6a9de873 100644 --- a/include/orcus/spreadsheet/styles.hpp +++ b/include/orcus/spreadsheet/styles.hpp @@ -171,7 +171,7 @@ public: virtual void set_border_style(border_direction_t dir, border_style_t style); virtual void set_border_color( border_direction_t dir, color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue); - virtual void set_border_width(border_direction_t dir,length_t length); + virtual void set_border_width(border_direction_t dir, double width, orcus::length_unit_t unit); virtual size_t commit_border(); virtual void set_cell_hidden(bool b); diff --git a/src/liborcus/odf_styles_context.cpp b/src/liborcus/odf_styles_context.cpp index 415ccfc47..2260e6d26 100644 --- a/src/liborcus/odf_styles_context.cpp +++ b/src/liborcus/odf_styles_context.cpp @@ -618,7 +618,7 @@ void styles_context::start_element(xmlns_id_t ns, xml_token_t name, const std::v { mp_styles->set_border_color(itr->first, 0, itr->second.red, itr->second.green, itr->second.blue); mp_styles->set_border_style(itr->first, itr->second.border_style); - mp_styles->set_border_width(itr->first, itr->second.border_width); + mp_styles->set_border_width(itr->first, itr->second.border_width.value, itr->second.border_width.unit); } } diff --git a/src/spreadsheet/styles.cpp b/src/spreadsheet/styles.cpp index 6f2397276..90ecef942 100644 --- a/src/spreadsheet/styles.cpp +++ b/src/spreadsheet/styles.cpp @@ -283,11 +283,14 @@ void import_styles::set_border_color( p->border_color = color_t(alpha, red, green, blue); } -void import_styles::set_border_width(border_direction_t dir, length_t width) +void import_styles::set_border_width(border_direction_t dir, double width, orcus::length_unit_t unit) { border_attrs_t* p = get_border_attrs(m_cur_border, dir); if (p) - p->border_width = width; + { + p->border_width.value = width; + p->border_width.unit = unit; + } } size_t import_styles::commit_border() -- GitLab From 784593d4e69ca0829bbaaa21335810cc7f135465 Mon Sep 17 00:00:00 2001 From: Jaskaran Singh Date: Fri, 15 Jul 2016 14:51:53 +0530 Subject: [PATCH 2/2] Remove un-neccessary entries for odf border style --- include/orcus/spreadsheet/types.hpp | 4 +++- src/liborcus/odf_helper.cpp | 11 ++--------- src/liborcus/odf_styles_context_test.cpp | 16 ++++++++-------- test/ods/styles/cell-styles.xml | 8 ++++---- 4 files changed, 17 insertions(+), 22 deletions(-) diff --git a/include/orcus/spreadsheet/types.hpp b/include/orcus/spreadsheet/types.hpp index 394e4b262..1abeb4b7c 100644 --- a/include/orcus/spreadsheet/types.hpp +++ b/include/orcus/spreadsheet/types.hpp @@ -55,7 +55,9 @@ enum class border_style_t medium_dashed, slant_dash_dot, thick, - thin + thin, + double_thin, + fine_dashed }; enum class formula_grammar_t diff --git a/src/liborcus/odf_helper.cpp b/src/liborcus/odf_helper.cpp index f83f8b00f..f402d795b 100644 --- a/src/liborcus/odf_helper.cpp +++ b/src/liborcus/odf_helper.cpp @@ -26,17 +26,10 @@ odf_border_style_map::entry odf_border_style_entries[] = { MDDS_ASCII("dash-dot-dot"), spreadsheet::border_style_t::dash_dot_dot}, { MDDS_ASCII("dashed"), spreadsheet::border_style_t::dashed}, { MDDS_ASCII("dotted"), spreadsheet::border_style_t::dotted}, - { MDDS_ASCII("double-border"), spreadsheet::border_style_t::double_border}, - { MDDS_ASCII("hair"), spreadsheet::border_style_t::hair}, - { MDDS_ASCII("medium"), spreadsheet::border_style_t::medium}, - { MDDS_ASCII("medium-dash-dot"), spreadsheet::border_style_t::medium_dash_dot}, - { MDDS_ASCII("medium-dash-dot-dot"), spreadsheet::border_style_t::medium_dash_dot_dot}, - { MDDS_ASCII("medium-dashed"), spreadsheet::border_style_t::medium_dashed}, + { MDDS_ASCII("double-thin"), spreadsheet::border_style_t::double_thin}, + { MDDS_ASCII("fine-dashed"), spreadsheet::border_style_t::fine_dashed}, { MDDS_ASCII("none"), spreadsheet::border_style_t::none}, - { MDDS_ASCII("slant-dash-dot"), spreadsheet::border_style_t::slant_dash_dot}, { MDDS_ASCII("solid"), spreadsheet::border_style_t::solid}, - { MDDS_ASCII("thick"), spreadsheet::border_style_t::thick}, - { MDDS_ASCII("thin"), spreadsheet::border_style_t::thin}, { MDDS_ASCII("unknown"), spreadsheet::border_style_t::unknown} }; diff --git a/src/liborcus/odf_styles_context_test.cpp b/src/liborcus/odf_styles_context_test.cpp index 95d57971a..99e31b79c 100644 --- a/src/liborcus/odf_styles_context_test.cpp +++ b/src/liborcus/odf_styles_context_test.cpp @@ -59,10 +59,10 @@ void test_odf_border(orcus::spreadsheet::import_styles &styles) assert(cell_format); const orcus::spreadsheet::border_t* cell_border = styles.get_border(border); - assert(cell_border->top.style == orcus::spreadsheet::border_style_t::thick); - assert(cell_border->bottom.style == orcus::spreadsheet::border_style_t::thick); - assert(cell_border->left.style == orcus::spreadsheet::border_style_t::thick); - assert(cell_border->right.style == orcus::spreadsheet::border_style_t::thick); + assert(cell_border->top.style == orcus::spreadsheet::border_style_t::dotted); + assert(cell_border->bottom.style == orcus::spreadsheet::border_style_t::dotted); + assert(cell_border->left.style == orcus::spreadsheet::border_style_t::dotted); + assert(cell_border->right.style == orcus::spreadsheet::border_style_t::dotted); assert(cell_border->top.border_color.red == 0xff); assert(cell_border->bottom.border_color.green == 0xcc); assert(cell_border->left.border_color.blue == 0x12); @@ -77,8 +77,8 @@ void test_odf_border(orcus::spreadsheet::import_styles &styles) assert(cell_format); cell_border = styles.get_border(border); - assert(cell_border->top.style == orcus::spreadsheet::border_style_t::solid); - assert(cell_border->bottom.style == orcus::spreadsheet::border_style_t::thin); + assert(cell_border->top.style == orcus::spreadsheet::border_style_t::fine_dashed); + assert(cell_border->bottom.style == orcus::spreadsheet::border_style_t::double_thin); assert(cell_border->left.style == orcus::spreadsheet::border_style_t::none); assert(cell_border->right.style == orcus::spreadsheet::border_style_t::dash_dot_dot); assert(cell_border->top.border_color.red == 0xff); @@ -95,8 +95,8 @@ void test_odf_border(orcus::spreadsheet::import_styles &styles) assert(cell_format); cell_border = styles.get_border(border); - assert(cell_border->diagonal_bl_tr.style == orcus::spreadsheet::border_style_t::medium); - assert(cell_border->diagonal_tl_br.style == orcus::spreadsheet::border_style_t::medium_dash_dot); + assert(cell_border->diagonal_bl_tr.style == orcus::spreadsheet::border_style_t::dashed); + assert(cell_border->diagonal_tl_br.style == orcus::spreadsheet::border_style_t::dash_dot); assert(cell_border->diagonal_bl_tr.border_color.red == 0xff); assert(cell_border->diagonal_tl_br.border_color.green == 0x00); assert(cell_border->diagonal_tl_br.border_width.value == 0.74); diff --git a/test/ods/styles/cell-styles.xml b/test/ods/styles/cell-styles.xml index 070f7ee67..f78e78997 100644 --- a/test/ods/styles/cell-styles.xml +++ b/test/ods/styles/cell-styles.xml @@ -1,16 +1,16 @@ - + - + - + - + -- GitLab