forked from 1b-agent/opencadstudio-upstream
feat(layer-state): add saved-state editor
This commit is contained in:
1 parent
1e624cc6b7
commit
6ecd67ff6e
12 files changed
+691
-14
No files matched your search
@@ -1572,6 +1572,7 @@ impl OpenCADStudio {
|
||||
UpdateNotice => (560, 460),
|
||||
Layers => (900, 360),
|
||||
LayerStateManager => (720, 420),
|
||||
LayerStateEditor => (1180, 560),
|
||||
Plot => (760, 540),
|
||||
LayoutManager => (640, 320),
|
||||
Plotstyle => (780, 540),
|
||||
|
||||
@@ -16,6 +16,7 @@ impl OpenCADStudio {
|
||||
Some(K::UpdateNotice) => "Update Available",
|
||||
Some(K::Layers) => "Layer Manager",
|
||||
Some(K::LayerStateManager) => "Layer State Manager",
|
||||
Some(K::LayerStateEditor) => "Edit Layer State",
|
||||
Some(K::Plot) => "Plot",
|
||||
Some(K::LayoutManager) => "Layout Manager",
|
||||
Some(K::ScaleManager) => "Scale Manager",
|
||||
@@ -134,6 +135,46 @@ impl OpenCADStudio {
|
||||
420,
|
||||
)
|
||||
}
|
||||
super::super::ModalKind::LayerStateEditor => {
|
||||
let tab = &self.tabs[self.active_tab];
|
||||
if let Some(state) = self.layer_state_edit_draft.as_ref() {
|
||||
let mut linetypes: Vec<String> = tab
|
||||
.scene
|
||||
.document
|
||||
.line_types
|
||||
.iter()
|
||||
.map(|line_type| line_type.name.clone())
|
||||
.collect();
|
||||
for layer in &state.layers {
|
||||
if !layer.line_type.is_empty()
|
||||
&& !linetypes
|
||||
.iter()
|
||||
.any(|name| name.eq_ignore_ascii_case(&layer.line_type))
|
||||
{
|
||||
linetypes.push(layer.line_type.clone());
|
||||
}
|
||||
}
|
||||
linetypes.sort_by_key(|name| name.to_lowercase());
|
||||
sized(
|
||||
crate::ui::window::layer_state_manager::view_editor(
|
||||
state,
|
||||
&self.layer_state_edit_filter,
|
||||
self.layer_state_edit_color_open,
|
||||
linetypes,
|
||||
),
|
||||
1180,
|
||||
560,
|
||||
)
|
||||
} else {
|
||||
sized(
|
||||
container(text("The selected layer state is no longer available."))
|
||||
.padding(16)
|
||||
.into(),
|
||||
520,
|
||||
180,
|
||||
)
|
||||
}
|
||||
}
|
||||
super::super::ModalKind::Plot => {
|
||||
sized(crate::ui::window::plot::view_window(&self.plot_dialog), 760, 540)
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user