FIX: Removing styles of full columns or rows are a single diff list
Fixes #400
This commit is contained in:
committed by
Nicolás Hatcher Andrés
parent
b4aed93bbb
commit
483cd43041
@@ -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<Diff>,
|
||||
) -> 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<Diff>,
|
||||
) -> 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)? {
|
||||
|
||||
Reference in New Issue
Block a user