mirror of
https://github.com/SerenityOS/serenity.git
synced 2025-01-24 02:12:09 -05:00
Spreadsheet: Add CellChange constructor for changes in type metadata
Allows the creation of CellChanges where the change is in the type metadata instead of in data.
This commit is contained in:
parent
cd33f271b1
commit
40725c7c8c
4 changed files with 18 additions and 0 deletions
|
@ -62,6 +62,11 @@ void Cell::set_type(StringView name)
|
|||
VERIFY_NOT_REACHED();
|
||||
}
|
||||
|
||||
void Cell::set_type_metadata(CellTypeMetadata const& metadata)
|
||||
{
|
||||
m_type_metadata = metadata;
|
||||
}
|
||||
|
||||
void Cell::set_type_metadata(CellTypeMetadata&& metadata)
|
||||
{
|
||||
m_type_metadata = move(metadata);
|
||||
|
|
|
@ -74,6 +74,7 @@ struct Cell : public Weakable<Cell> {
|
|||
|
||||
void set_type(StringView name);
|
||||
void set_type(CellType const*);
|
||||
void set_type_metadata(CellTypeMetadata const&);
|
||||
void set_type_metadata(CellTypeMetadata&&);
|
||||
|
||||
Position const& position() const { return m_position; }
|
||||
|
|
|
@ -770,4 +770,11 @@ CellChange::CellChange(Cell& cell, DeprecatedString const& previous_data)
|
|||
m_new_data = cell.data();
|
||||
}
|
||||
|
||||
CellChange::CellChange(Cell& cell, CellTypeMetadata const& previous_type_metadata)
|
||||
: m_cell(cell)
|
||||
, m_previous_type_metadata(previous_type_metadata)
|
||||
{
|
||||
m_new_type_metadata = cell.type_metadata();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -25,15 +25,20 @@ namespace Spreadsheet {
|
|||
class CellChange {
|
||||
public:
|
||||
CellChange(Cell&, DeprecatedString const&);
|
||||
CellChange(Cell&, CellTypeMetadata const&);
|
||||
|
||||
auto& cell() { return m_cell; }
|
||||
auto& previous_data() { return m_previous_data; }
|
||||
auto& new_data() { return m_new_data; }
|
||||
auto& previous_type_metadata() { return m_previous_type_metadata; }
|
||||
auto& new_type_metadata() { return m_new_type_metadata; }
|
||||
|
||||
private:
|
||||
Cell& m_cell;
|
||||
DeprecatedString m_previous_data;
|
||||
DeprecatedString m_new_data;
|
||||
CellTypeMetadata m_previous_type_metadata;
|
||||
CellTypeMetadata m_new_type_metadata;
|
||||
};
|
||||
|
||||
class Sheet : public Core::Object {
|
||||
|
|
Loading…
Add table
Reference in a new issue