Added phonetics field visibility option on cells

This commit is contained in:
Kostas Dizas 2018-11-21 12:52:07 +00:00
parent 10c5781e6d
commit 48a865cd66
No known key found for this signature in database
GPG Key ID: 8D3074191407AC9E
5 changed files with 42 additions and 1 deletions

View File

@ -54,6 +54,7 @@ class workbook;
class worksheet; class worksheet;
class xlsx_consumer; class xlsx_consumer;
class xlsx_producer; class xlsx_producer;
class phonetic_pr;
struct date; struct date;
struct datetime; struct datetime;
@ -501,6 +502,18 @@ public:
/// </summary> /// </summary>
void merged(bool merged); void merged(bool merged);
// phonetics
/// <summary>
/// Returns true if this cell is set to show phonetic information.
/// </summary>
bool phonetics_visible() const;
/// <summary>
/// Enables the display of phonetic information on this cell.
/// </summary>
void show_phonetics(bool phonetics);
/// <summary> /// <summary>
/// Returns the error string that is stored in this cell. /// Returns the error string that is stored in this cell.
/// </summary> /// </summary>

View File

@ -56,6 +56,7 @@
#include <xlnt/worksheet/column_properties.hpp> #include <xlnt/worksheet/column_properties.hpp>
#include <xlnt/worksheet/row_properties.hpp> #include <xlnt/worksheet/row_properties.hpp>
#include <xlnt/worksheet/worksheet.hpp> #include <xlnt/worksheet/worksheet.hpp>
#include <xlnt/worksheet/phonetic_pr.hpp>
namespace { namespace {
@ -198,7 +199,7 @@ cell::cell(detail::cell_impl *d)
bool cell::garbage_collectible() const bool cell::garbage_collectible() const
{ {
return !(has_value() || is_merged() || has_formula() || has_format() || has_hyperlink()); return !(has_value() || is_merged() || phonetics_visible() || has_formula() || has_format() || has_hyperlink());
} }
void cell::value(std::nullptr_t) void cell::value(std::nullptr_t)
@ -329,6 +330,16 @@ bool cell::is_merged() const
return d_->is_merged_; return d_->is_merged_;
} }
bool cell::phonetics_visible() const
{
return d_->phonetics_visible_;
}
void cell::show_phonetics(bool phonetics)
{
d_->phonetics_visible_ = phonetics;
}
bool cell::is_date() const bool cell::is_date() const
{ {
return data_type() == type::number return data_type() == type::number

View File

@ -35,6 +35,7 @@ cell_impl::cell_impl()
column_(1), column_(1),
row_(1), row_(1),
is_merged_(false), is_merged_(false),
phonetics_visible_(false),
value_numeric_(0) value_numeric_(0)
{ {
} }

View File

@ -55,6 +55,7 @@ struct cell_impl
row_t row_; row_t row_;
bool is_merged_; bool is_merged_;
bool phonetics_visible_;
rich_text value_text_; rich_text value_text_;
double value_numeric_; double value_numeric_;
@ -72,6 +73,7 @@ inline bool operator==(const cell_impl &lhs, const cell_impl &rhs)
&& lhs.column_ == rhs.column_ && lhs.column_ == rhs.column_
&& lhs.row_ == rhs.row_ && lhs.row_ == rhs.row_
&& lhs.is_merged_ == rhs.is_merged_ && lhs.is_merged_ == rhs.is_merged_
&& lhs.phonetics_visible_ == rhs.phonetics_visible_
&& lhs.value_text_ == rhs.value_text_ && lhs.value_text_ == rhs.value_text_
&& lhs.value_numeric_ == rhs.value_numeric_ && lhs.value_numeric_ == rhs.value_numeric_
&& lhs.formula_ == rhs.formula_ && lhs.formula_ == rhs.formula_

View File

@ -82,6 +82,7 @@ public:
register_test(test_hyperlink); register_test(test_hyperlink);
register_test(test_comment); register_test(test_comment);
register_test(test_copy_and_compare); register_test(test_copy_and_compare);
register_test(test_cell_phonetic_properties);
} }
private: private:
@ -805,6 +806,19 @@ private:
cell3 = cell2; cell3 = cell2;
xlnt_assert_equals(cell2, cell3); xlnt_assert_equals(cell2, cell3);
} }
void test_cell_phonetic_properties()
{
xlnt::workbook wb;
auto ws = wb.active_sheet();
auto cell1 = ws.cell("A1");
xlnt_assert_equals(cell1.phonetics_visible(), false);
cell1.show_phonetics(true);
xlnt_assert_equals(cell1.phonetics_visible(), true);
cell1.show_phonetics(false);
xlnt_assert_equals(cell1.phonetics_visible(), false);
}
}; };
static cell_test_suite x{}; static cell_test_suite x{};