Remove internal clones of pb BrowserRow structs

This commit is contained in:
RumovZ 2021-04-10 09:49:29 +02:00
parent 48b70873cb
commit 331df75b72
2 changed files with 16 additions and 77 deletions

View file

@ -27,37 +27,3 @@ impl From<pb::StringList> for Vec<browser_table::Column> {
.collect() .collect()
} }
} }
impl From<browser_table::Row> for pb::BrowserRow {
fn from(row: browser_table::Row) -> Self {
pb::BrowserRow {
cells: row.cells.into_iter().map(Into::into).collect(),
color: row.color.into(),
font_name: row.font.name,
font_size: row.font.size,
}
}
}
impl From<browser_table::Cell> for pb::browser_row::Cell {
fn from(cell: browser_table::Cell) -> Self {
pb::browser_row::Cell {
text: cell.text,
is_rtl: cell.is_rtl,
}
}
}
impl From<browser_table::Color> for i32 {
fn from(color: browser_table::Color) -> Self {
match color {
browser_table::Color::Default => pb::browser_row::Color::Default as i32,
browser_table::Color::Marked => pb::browser_row::Color::Marked as i32,
browser_table::Color::Suspended => pb::browser_row::Color::Suspended as i32,
browser_table::Color::FlagRed => pb::browser_row::Color::FlagRed as i32,
browser_table::Color::FlagOrange => pb::browser_row::Color::FlagOrange as i32,
browser_table::Color::FlagGreen => pb::browser_row::Color::FlagGreen as i32,
browser_table::Color::FlagBlue => pb::browser_row::Color::FlagBlue as i32,
}
}
}

View file

@ -73,36 +73,6 @@ impl Default for Column {
} }
} }
#[derive(Debug, PartialEq)]
pub struct Row {
pub cells: Vec<Cell>,
pub color: Color,
pub font: Font,
}
#[derive(Debug, PartialEq)]
pub struct Cell {
pub text: String,
pub is_rtl: bool,
}
#[derive(Debug, PartialEq)]
pub enum Color {
Default,
Marked,
Suspended,
FlagRed,
FlagOrange,
FlagGreen,
FlagBlue,
}
#[derive(Debug, PartialEq)]
pub struct Font {
pub name: String,
pub size: u32,
}
struct RowContext { struct RowContext {
notes_mode: bool, notes_mode: bool,
cards: Vec<Card>, cards: Vec<Card>,
@ -244,7 +214,7 @@ impl Collection {
pb::BrowserColumns { columns } pb::BrowserColumns { columns }
} }
pub fn browser_row_for_id(&mut self, id: i64) -> Result<Row> { pub fn browser_row_for_id(&mut self, id: i64) -> Result<pb::BrowserRow> {
let notes_mode = self.get_bool(BoolKey::BrowserTableShowNotesMode); let notes_mode = self.get_bool(BoolKey::BrowserTableShowNotesMode);
let columns = Arc::clone( let columns = Arc::clone(
self.state self.state
@ -349,19 +319,20 @@ impl RowContext {
}) })
} }
fn browser_row(&self, columns: &[Column]) -> Result<Row> { fn browser_row(&self, columns: &[Column]) -> Result<pb::BrowserRow> {
Ok(Row { Ok(pb::BrowserRow {
cells: columns cells: columns
.iter() .iter()
.map(|&column| self.get_cell(column)) .map(|&column| self.get_cell(column))
.collect::<Result<_>>()?, .collect::<Result<_>>()?,
color: self.get_row_color(), color: self.get_row_color() as i32,
font: self.get_row_font()?, font_name: self.get_row_font_name()?,
font_size: self.get_row_font_size()?,
}) })
} }
fn get_cell(&self, column: Column) -> Result<Cell> { fn get_cell(&self, column: Column) -> Result<pb::browser_row::Cell> {
Ok(Cell { Ok(pb::browser_row::Cell {
text: self.get_cell_text(column)?, text: self.get_cell_text(column)?,
is_rtl: self.get_is_rtl(column), is_rtl: self.get_is_rtl(column),
}) })
@ -554,14 +525,16 @@ impl RowContext {
html_to_text_line(&self.render_context.as_ref().unwrap().question).to_string() html_to_text_line(&self.render_context.as_ref().unwrap().question).to_string()
} }
fn get_row_font(&self) -> Result<Font> { fn get_row_font_name(&self) -> Result<String> {
Ok(Font { Ok(self.template()?.config.browser_font_name.to_owned())
name: self.template()?.config.browser_font_name.to_owned(),
size: self.template()?.config.browser_font_size,
})
} }
fn get_row_color(&self) -> Color { fn get_row_font_size(&self) -> Result<u32> {
Ok(self.template()?.config.browser_font_size)
}
fn get_row_color(&self) -> pb::browser_row::Color {
use pb::browser_row::Color;
if self.notes_mode { if self.notes_mode {
if self.note.is_marked() { if self.note.is_marked() {
Color::Marked Color::Marked