diff --git a/base/src/user_model/common.rs b/base/src/user_model/common.rs index d89428a..48cdc4f 100644 --- a/base/src/user_model/common.rs +++ b/base/src/user_model/common.rs @@ -659,8 +659,12 @@ impl UserModel { Ok(()) } - fn clear_column_formatting(&mut self, sheet: u32, column: i32) -> Result<(), String> { - let mut diff_list = Vec::new(); + fn clear_column_formatting( + &mut self, + sheet: u32, + column: i32, + diff_list: &mut Vec, + ) -> Result<(), String> { let old_value = self.model.get_column_style(sheet, column)?; self.model.delete_column_style(sheet, column)?; diff_list.push(Diff::DeleteColumnStyle { @@ -739,12 +743,15 @@ impl UserModel { } } } - self.push_diff_list(diff_list); Ok(()) } - fn clear_row_formatting(&mut self, sheet: u32, row: i32) -> Result<(), String> { - let mut diff_list = Vec::new(); + fn clear_row_formatting( + &mut self, + sheet: u32, + row: i32, + diff_list: &mut Vec, + ) -> Result<(), String> { let old_value = self.model.get_row_style(sheet, row)?; self.model.delete_row_style(sheet, row)?; diff_list.push(Diff::DeleteRowStyle { @@ -791,8 +798,6 @@ impl UserModel { } } } - self.push_diff_list(diff_list); - Ok(()) } @@ -803,19 +808,21 @@ impl UserModel { /// * [UserModel::range_clear_contents] pub fn range_clear_formatting(&mut self, range: &Area) -> Result<(), String> { let sheet = range.sheet; + let mut diff_list = Vec::new(); if range.row == 1 && range.height == LAST_ROW { for column in range.column..range.column + range.width { - self.clear_column_formatting(sheet, column)?; + self.clear_column_formatting(sheet, column, &mut diff_list)?; } + self.push_diff_list(diff_list); return Ok(()); } if range.column == 1 && range.width == LAST_COLUMN { for row in range.row..range.row + range.height { - self.clear_row_formatting(sheet, row)?; + self.clear_row_formatting(sheet, row, &mut diff_list)?; } + self.push_diff_list(diff_list); return Ok(()); } - let mut diff_list = Vec::new(); for row in range.row..range.row + range.height { for column in range.column..range.column + range.width { if let Some(old_style) = self.model.get_cell_style_or_none(sheet, row, column)? {