FIX: Forces calculation after insert/delete columns/rows
This commit is contained in:
committed by
Nicolás Hatcher Andrés
parent
74be62823d
commit
91984dc920
@@ -172,3 +172,42 @@ fn row_heigh_increases_automatically() {
|
|||||||
.unwrap();
|
.unwrap();
|
||||||
assert_eq!(model.get_row_height(0, 1), Ok(2.0 * DEFAULT_ROW_HEIGHT));
|
assert_eq!(model.get_row_height(0, 1), Ok(2.0 * DEFAULT_ROW_HEIGHT));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn insert_row_evaluates() {
|
||||||
|
let model = new_empty_model();
|
||||||
|
let mut model = UserModel::from_model(model);
|
||||||
|
model.set_user_input(0, 1, 1, "42").unwrap();
|
||||||
|
model.set_user_input(0, 1, 2, "=A1*2").unwrap();
|
||||||
|
|
||||||
|
assert!(model.insert_row(0, 1).is_ok());
|
||||||
|
assert_eq!(model.get_formatted_cell_value(0, 2, 2).unwrap(), "84");
|
||||||
|
model.undo().unwrap();
|
||||||
|
assert_eq!(model.get_formatted_cell_value(0, 1, 2).unwrap(), "84");
|
||||||
|
model.redo().unwrap();
|
||||||
|
assert_eq!(model.get_formatted_cell_value(0, 2, 2).unwrap(), "84");
|
||||||
|
|
||||||
|
model.delete_row(0, 1).unwrap();
|
||||||
|
assert_eq!(model.get_formatted_cell_value(0, 1, 2).unwrap(), "84");
|
||||||
|
assert_eq!(model.get_cell_content(0, 1, 2).unwrap(), "=A1*2");
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn insert_column_evaluates() {
|
||||||
|
let model = new_empty_model();
|
||||||
|
let mut model = UserModel::from_model(model);
|
||||||
|
model.set_user_input(0, 1, 1, "42").unwrap();
|
||||||
|
model.set_user_input(0, 10, 1, "=A1*2").unwrap();
|
||||||
|
|
||||||
|
assert!(model.insert_column(0, 1).is_ok());
|
||||||
|
assert_eq!(model.get_formatted_cell_value(0, 10, 2).unwrap(), "84");
|
||||||
|
|
||||||
|
model.undo().unwrap();
|
||||||
|
assert_eq!(model.get_formatted_cell_value(0, 10, 1).unwrap(), "84");
|
||||||
|
model.redo().unwrap();
|
||||||
|
assert_eq!(model.get_formatted_cell_value(0, 10, 2).unwrap(), "84");
|
||||||
|
|
||||||
|
model.delete_column(0, 1).unwrap();
|
||||||
|
assert_eq!(model.get_formatted_cell_value(0, 10, 1).unwrap(), "84");
|
||||||
|
assert_eq!(model.get_cell_content(0, 10, 1).unwrap(), "=A1*2");
|
||||||
|
}
|
||||||
|
|||||||
@@ -843,7 +843,9 @@ impl UserModel {
|
|||||||
pub fn insert_row(&mut self, sheet: u32, row: i32) -> Result<(), String> {
|
pub fn insert_row(&mut self, sheet: u32, row: i32) -> Result<(), String> {
|
||||||
let diff_list = vec![Diff::InsertRow { sheet, row }];
|
let diff_list = vec![Diff::InsertRow { sheet, row }];
|
||||||
self.push_diff_list(diff_list);
|
self.push_diff_list(diff_list);
|
||||||
self.model.insert_rows(sheet, row, 1)
|
self.model.insert_rows(sheet, row, 1)?;
|
||||||
|
self.evaluate_if_not_paused();
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Deletes a row
|
/// Deletes a row
|
||||||
@@ -873,7 +875,9 @@ impl UserModel {
|
|||||||
old_data,
|
old_data,
|
||||||
}];
|
}];
|
||||||
self.push_diff_list(diff_list);
|
self.push_diff_list(diff_list);
|
||||||
self.model.delete_rows(sheet, row, 1)
|
self.model.delete_rows(sheet, row, 1)?;
|
||||||
|
self.evaluate_if_not_paused();
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Inserts a column
|
/// Inserts a column
|
||||||
@@ -883,7 +887,9 @@ impl UserModel {
|
|||||||
pub fn insert_column(&mut self, sheet: u32, column: i32) -> Result<(), String> {
|
pub fn insert_column(&mut self, sheet: u32, column: i32) -> Result<(), String> {
|
||||||
let diff_list = vec![Diff::InsertColumn { sheet, column }];
|
let diff_list = vec![Diff::InsertColumn { sheet, column }];
|
||||||
self.push_diff_list(diff_list);
|
self.push_diff_list(diff_list);
|
||||||
self.model.insert_columns(sheet, column, 1)
|
self.model.insert_columns(sheet, column, 1)?;
|
||||||
|
self.evaluate_if_not_paused();
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Deletes a column
|
/// Deletes a column
|
||||||
@@ -928,7 +934,9 @@ impl UserModel {
|
|||||||
}),
|
}),
|
||||||
}];
|
}];
|
||||||
self.push_diff_list(diff_list);
|
self.push_diff_list(diff_list);
|
||||||
self.model.delete_columns(sheet, column, 1)
|
self.model.delete_columns(sheet, column, 1)?;
|
||||||
|
self.evaluate_if_not_paused();
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Sets the width of a column
|
/// Sets the width of a column
|
||||||
|
|||||||
Reference in New Issue
Block a user