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(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn clear_column_formatting(&mut self, sheet: u32, column: i32) -> Result<(), String> {
|
fn clear_column_formatting(
|
||||||
let mut diff_list = Vec::new();
|
&mut self,
|
||||||
|
sheet: u32,
|
||||||
|
column: i32,
|
||||||
|
diff_list: &mut Vec<Diff>,
|
||||||
|
) -> Result<(), String> {
|
||||||
let old_value = self.model.get_column_style(sheet, column)?;
|
let old_value = self.model.get_column_style(sheet, column)?;
|
||||||
self.model.delete_column_style(sheet, column)?;
|
self.model.delete_column_style(sheet, column)?;
|
||||||
diff_list.push(Diff::DeleteColumnStyle {
|
diff_list.push(Diff::DeleteColumnStyle {
|
||||||
@@ -739,12 +743,15 @@ impl UserModel {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
self.push_diff_list(diff_list);
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn clear_row_formatting(&mut self, sheet: u32, row: i32) -> Result<(), String> {
|
fn clear_row_formatting(
|
||||||
let mut diff_list = Vec::new();
|
&mut self,
|
||||||
|
sheet: u32,
|
||||||
|
row: i32,
|
||||||
|
diff_list: &mut Vec<Diff>,
|
||||||
|
) -> Result<(), String> {
|
||||||
let old_value = self.model.get_row_style(sheet, row)?;
|
let old_value = self.model.get_row_style(sheet, row)?;
|
||||||
self.model.delete_row_style(sheet, row)?;
|
self.model.delete_row_style(sheet, row)?;
|
||||||
diff_list.push(Diff::DeleteRowStyle {
|
diff_list.push(Diff::DeleteRowStyle {
|
||||||
@@ -791,8 +798,6 @@ impl UserModel {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
self.push_diff_list(diff_list);
|
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -803,19 +808,21 @@ impl UserModel {
|
|||||||
/// * [UserModel::range_clear_contents]
|
/// * [UserModel::range_clear_contents]
|
||||||
pub fn range_clear_formatting(&mut self, range: &Area) -> Result<(), String> {
|
pub fn range_clear_formatting(&mut self, range: &Area) -> Result<(), String> {
|
||||||
let sheet = range.sheet;
|
let sheet = range.sheet;
|
||||||
|
let mut diff_list = Vec::new();
|
||||||
if range.row == 1 && range.height == LAST_ROW {
|
if range.row == 1 && range.height == LAST_ROW {
|
||||||
for column in range.column..range.column + range.width {
|
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(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
if range.column == 1 && range.width == LAST_COLUMN {
|
if range.column == 1 && range.width == LAST_COLUMN {
|
||||||
for row in range.row..range.row + range.height {
|
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(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
let mut diff_list = Vec::new();
|
|
||||||
for row in range.row..range.row + range.height {
|
for row in range.row..range.row + range.height {
|
||||||
for column in range.column..range.column + range.width {
|
for column in range.column..range.column + range.width {
|
||||||
if let Some(old_style) = self.model.get_cell_style_or_none(sheet, row, column)? {
|
if let Some(old_style) = self.model.get_cell_style_or_none(sheet, row, column)? {
|
||||||
|
|||||||
Reference in New Issue
Block a user