use bladvak::eframe::egui;
use bladvak::utils::document::DocumentTrait;
use std::path::{Path, PathBuf};
use crate::svg_render::SvgRender;
#[derive(serde::Deserialize, serde::Serialize, Debug)]
#[serde(default)]
pub(crate) struct Document {
pub(crate) saved_svg: String,
pub(crate) svg: String,
#[serde(skip)]
pub(crate) scene_rect: egui::Rect,
pub(crate) svg_render: SvgRender,
pub(crate) should_reset_view: bool,
pub(crate) filename: PathBuf,
pub(crate) svg_is_valid: bool,
}
impl Default for Document {
fn default() -> Self {
Self {
saved_svg: String::new(),
svg: String::new(),
scene_rect: egui::Rect::NAN,
svg_render: SvgRender::default(),
should_reset_view: false,
filename: PathBuf::new(),
svg_is_valid: true,
}
}
}
impl DocumentTrait for Document {
fn path(&self) -> &Path {
&self.filename
}
}