mirror of
https://github.com/zaphar/sheetsui.git
synced 2025-07-22 13:00:22 -04:00
wip: sheet renaming and col sizing with UserModel
This commit is contained in:
parent
d8b3191612
commit
43f07f58bc
@ -141,8 +141,8 @@ impl Book {
|
|||||||
Ok(&self.get_sheet()?.name)
|
Ok(&self.get_sheet()?.name)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn set_sheet_name(&mut self, idx: usize, sheet_name: &str) -> Result<()> {
|
pub fn set_sheet_name(&mut self, idx: u32, sheet_name: &str) -> Result<()> {
|
||||||
self.get_sheet_by_idx_mut(idx)?.set_name(sheet_name);
|
self.model.rename_sheet(idx, sheet_name).map_err(|e| anyhow!(e))?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -150,7 +150,7 @@ impl Book {
|
|||||||
self.model.new_sheet().map_err(|e| anyhow!(e))?;
|
self.model.new_sheet().map_err(|e| anyhow!(e))?;
|
||||||
let idx = self.model.get_selected_sheet();
|
let idx = self.model.get_selected_sheet();
|
||||||
if let Some(name) = sheet_name {
|
if let Some(name) = sheet_name {
|
||||||
self.set_sheet_name(idx as usize, name)?;
|
self.set_sheet_name(idx, name)?;
|
||||||
}
|
}
|
||||||
self.model.set_selected_sheet(self.current_sheet).map_err(|e| anyhow!(e))?;
|
self.model.set_selected_sheet(self.current_sheet).map_err(|e| anyhow!(e))?;
|
||||||
Ok(())
|
Ok(())
|
||||||
@ -353,7 +353,7 @@ impl Book {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn set_col_style(&mut self, style: &Style, sheet: u32, col: usize) -> Result<()> {
|
pub fn set_col_style(&mut self, style: &[(&str, &str)], sheet: u32, col: usize) -> Result<()> {
|
||||||
todo!()
|
todo!()
|
||||||
//let idx = self.create_or_get_style_idx(style);
|
//let idx = self.create_or_get_style_idx(style);
|
||||||
//let sheet = self.model.workbook.worksheet_mut(sheet)
|
//let sheet = self.model.workbook.worksheet_mut(sheet)
|
||||||
@ -367,7 +367,7 @@ impl Book {
|
|||||||
//Ok(())
|
//Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn set_row_style(&mut self, style: &Style, sheet: u32, row: usize) -> Result<()> {
|
pub fn set_row_style(&mut self, style: &[(&str, &str)], sheet: u32, row: usize) -> Result<()> {
|
||||||
todo!()
|
todo!()
|
||||||
//let idx = self.create_or_get_style_idx(style);
|
//let idx = self.create_or_get_style_idx(style);
|
||||||
//self.model.workbook.worksheet_mut(sheet)
|
//self.model.workbook.worksheet_mut(sheet)
|
||||||
@ -466,16 +466,21 @@ impl Book {
|
|||||||
|
|
||||||
/// Get column size
|
/// Get column size
|
||||||
pub fn get_col_size(&self, idx: usize) -> Result<usize> {
|
pub fn get_col_size(&self, idx: usize) -> Result<usize> {
|
||||||
Ok((self
|
self.get_column_size_for_sheet(self.current_sheet, idx)
|
||||||
.get_sheet()?
|
}
|
||||||
.get_column_width(idx as i32)
|
|
||||||
|
pub fn get_column_size_for_sheet(&self, sheet: u32, idx: usize) -> std::result::Result<usize, anyhow::Error> {
|
||||||
|
Ok((self.model.get_column_width(sheet, idx as i32)
|
||||||
.map_err(|e| anyhow!("Error getting column width: {:?}", e))?
|
.map_err(|e| anyhow!("Error getting column width: {:?}", e))?
|
||||||
/ COL_PIXELS) as usize)
|
/ COL_PIXELS) as usize)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn set_col_size(&mut self, idx: usize, cols: usize) -> Result<()> {
|
pub fn set_col_size(&mut self, col: usize, width: usize) -> Result<()> {
|
||||||
self.get_sheet_mut()?
|
self.set_column_size_for_sheet(self.current_sheet, col, width)
|
||||||
.set_column_width(idx as i32, cols as f64 * COL_PIXELS)
|
}
|
||||||
|
|
||||||
|
pub fn set_column_size_for_sheet(&mut self, sheet: u32, col: usize, width: usize) -> std::result::Result<(), anyhow::Error> {
|
||||||
|
self.model.set_column_width(sheet, col as i32, width as f64 * COL_PIXELS)
|
||||||
.map_err(|e| anyhow!("Error setting column width: {:?}", e))?;
|
.map_err(|e| anyhow!("Error setting column width: {:?}", e))?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
@ -563,15 +568,6 @@ impl Book {
|
|||||||
.map_err(|s| anyhow!("Invalid Worksheet id: {}: error: {}", self.current_sheet, s))?)
|
.map_err(|s| anyhow!("Invalid Worksheet id: {}: error: {}", self.current_sheet, s))?)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) fn get_sheet_mut(&mut self) -> Result<&mut Worksheet> {
|
|
||||||
todo!("Is there a clean way to do this with UserModel?")
|
|
||||||
//Ok(self
|
|
||||||
// .model.get_model()
|
|
||||||
// .workbook
|
|
||||||
// .worksheet_mut(self.current_sheet)
|
|
||||||
// .map_err(|s| anyhow!("Invalid Worksheet: {}", s))?)
|
|
||||||
}
|
|
||||||
|
|
||||||
pub(crate) fn get_sheet_name_by_idx(&self, idx: usize) -> Result<&str> {
|
pub(crate) fn get_sheet_name_by_idx(&self, idx: usize) -> Result<&str> {
|
||||||
// TODO(jwall): Is there a cleaner way to do this with UserModel?
|
// TODO(jwall): Is there a cleaner way to do this with UserModel?
|
||||||
Ok(&self
|
Ok(&self
|
||||||
@ -581,15 +577,6 @@ impl Book {
|
|||||||
.map_err(|s| anyhow!("Invalid Worksheet: {}", s))?
|
.map_err(|s| anyhow!("Invalid Worksheet: {}", s))?
|
||||||
.name)
|
.name)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) fn get_sheet_by_idx_mut(&mut self, idx: usize) -> Result<&mut Worksheet> {
|
|
||||||
todo!("Is there a clean way to do this with UserModel?")
|
|
||||||
//Ok(self
|
|
||||||
// .model
|
|
||||||
// .workbook
|
|
||||||
// .worksheet_mut(idx as u32)
|
|
||||||
// .map_err(|s| anyhow!("Invalid Worksheet: {}", s))?)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Default for Book {
|
impl Default for Book {
|
||||||
|
@ -445,11 +445,11 @@ impl<'ws> Workspace<'ws> {
|
|||||||
Ok(Some(Cmd::RenameSheet(idx, name))) => {
|
Ok(Some(Cmd::RenameSheet(idx, name))) => {
|
||||||
match idx {
|
match idx {
|
||||||
Some(idx) => {
|
Some(idx) => {
|
||||||
self.book.set_sheet_name(idx, name)?;
|
self.book.set_sheet_name(idx as u32, name)?;
|
||||||
}
|
}
|
||||||
_ => {
|
_ => {
|
||||||
self.book
|
self.book
|
||||||
.set_sheet_name(self.book.current_sheet as usize, name)?;
|
.set_sheet_name(self.book.current_sheet, name)?;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Ok(None)
|
Ok(None)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user