Merge remote-tracking branch 'origin/fix/bug59621' into develop

This commit is contained in:
Elena.Subbotina
2023-01-12 16:08:39 +03:00
29 changed files with 212 additions and 189 deletions

View File

@ -4680,9 +4680,7 @@ void DocxConverter::convert(OOX::Logic::CTr *oox_table_row)
if (styled && oox_table_row->m_pTableRowProperties->m_oTblHeader.IsInit()
&& oox_table_row->m_pTableRowProperties->m_oTblHeader->m_oVal.ToBool() )is_header = true;
if (is_header)odt_context->start_table_header_rows();
odt_context->start_table_row(styled);
odt_context->start_table_row(styled, is_header);
convert(oox_table_row->m_pTableRowProperties);
@ -4700,8 +4698,6 @@ void DocxConverter::convert(OOX::Logic::CTr *oox_table_row)
}
odt_context->end_table_row();
if (is_header)odt_context->end_table_header_rows();
if (id_insert_row >= 0)
odt_context->end_change(id_insert_row, 1);

View File

@ -1684,11 +1684,23 @@ void odt_conversion_context::end_table_header_rows()
{
text_context()->end_element();
}
void odt_conversion_context::start_table_row(bool styled)
void odt_conversion_context::start_table_row(bool styled, bool header)
{
office_element_ptr elm;
create_element(L"table", L"table-row", elm, this);
if (header && !table_row_header_state_)
{
start_table_header_rows();
table_row_header_state_ = true;
}
if (!header && table_row_header_state_)
{
end_table_header_rows();
table_row_header_state_ = false;
}
if (styled)
{
styles_context()->create_style(L"", odf_types::style_family::TableRow, true, false, -1);

View File

@ -172,9 +172,7 @@ public:
void start_table_columns ();
void add_table_column (double width = -1);
void end_table_columns ();
void start_table_header_rows();
void end_table_header_rows ();
void start_table_row (bool styled = false);
void start_table_row (bool styled = false, bool header = false);
void add_default_cell ();
void start_table_cell (int col, bool covered, bool styled = false);
void end_table_cell ();
@ -202,6 +200,9 @@ public:
bool empty() {return current_root_elements_.empty();}
private:
void start_table_header_rows();
void end_table_header_rows ();
office_text* root_text_;
office_element_ptr root_document_;
@ -265,6 +266,8 @@ private:
std::vector<int> current_types;
}text_changes_state_;
bool table_row_header_state_ = false;
bool is_hyperlink_;
struct _drop_cap_state