fix: allow editing dimension styles
This commit is contained in:
parent
aedd0b8d2d
commit
3a752029cd
4 changed files with 6 additions and 60 deletions
|
|
@ -612,21 +612,7 @@ impl OpenCADStudio {
|
|||
}
|
||||
|
||||
pub(super) fn style_delete(&mut self, kind: StyleKind) {
|
||||
let name = self.style_selected(kind);
|
||||
if matches!(kind, StyleKind::Dim)
|
||||
&& self.tabs[self.active_tab]
|
||||
.scene
|
||||
.document
|
||||
.dim_styles
|
||||
.get(&name)
|
||||
.is_some_and(|style| {
|
||||
style.xref_reference || style.xref_dependent || !style.xref_handle.is_null()
|
||||
})
|
||||
{
|
||||
self.command_line
|
||||
.push_error(crate::t!("Referenced styles are read only.").as_ref());
|
||||
return;
|
||||
}
|
||||
let name = self.style_selected(kind);
|
||||
if name.eq_ignore_ascii_case("Standard") {
|
||||
self.command_line
|
||||
.push_error(crate::t!("Cannot delete the Standard style.").as_ref());
|
||||
|
|
@ -671,20 +657,7 @@ impl OpenCADStudio {
|
|||
if new.is_empty() || new.eq_ignore_ascii_case(&old) {
|
||||
return;
|
||||
}
|
||||
if matches!(kind, StyleKind::Dim)
|
||||
&& self.tabs[self.active_tab]
|
||||
.scene
|
||||
.document
|
||||
.dim_styles
|
||||
.get(&old)
|
||||
.is_some_and(|style| {
|
||||
style.xref_reference || style.xref_dependent || !style.xref_handle.is_null()
|
||||
})
|
||||
{
|
||||
self.command_line
|
||||
.push_error(crate::t!("Referenced styles are read only.").as_ref());
|
||||
return;
|
||||
}
|
||||
|
||||
if old.eq_ignore_ascii_case("Standard") {
|
||||
self.command_line
|
||||
.push_error(crate::t!("Cannot rename the Standard style.").as_ref());
|
||||
|
|
|
|||
|
|
@ -7243,21 +7243,9 @@ impl OpenCADStudio {
|
|||
Message::DimStyleDialogSetCurrent => {
|
||||
// Staged: persists on Apply.
|
||||
let i = self.active_tab;
|
||||
let read_only = self.tabs[i]
|
||||
.scene
|
||||
.document
|
||||
.dim_styles
|
||||
.get(&self.dimstyle_selected)
|
||||
.is_some_and(|style| {
|
||||
style.xref_reference
|
||||
|| style.xref_dependent
|
||||
|| !style.xref_handle.is_null()
|
||||
});
|
||||
if read_only {
|
||||
return Task::none();
|
||||
}
|
||||
|
||||
self.tabs[i].scene.document.header.current_dimstyle_name =
|
||||
self.dimstyle_selected.clone();
|
||||
self.dimstyle_selected.clone();
|
||||
self.sync_ribbon_styles();
|
||||
self.command_line.push_output(crate::tf!(
|
||||
"Current dim style set to '{}'.",
|
||||
|
|
|
|||
|
|
@ -358,15 +358,7 @@ impl OpenCADStudio {
|
|||
|
||||
pub(in crate::app) fn apply_dimstyle_bufs(&mut self, tab: usize) {
|
||||
let doc = &mut self.tabs[tab].scene.document;
|
||||
let read_only = doc
|
||||
.dim_styles
|
||||
.get(&self.dimstyle_selected)
|
||||
.is_some_and(|style| {
|
||||
style.xref_reference || style.xref_dependent || !style.xref_handle.is_null()
|
||||
});
|
||||
if read_only {
|
||||
return;
|
||||
}
|
||||
|
||||
let text_style_handle = doc
|
||||
.text_styles
|
||||
.get(&self.ds_dimtxsty)
|
||||
|
|
@ -1185,11 +1177,6 @@ pub(super) fn on_text_style_dialog_open(&mut self) -> Task<Message> {
|
|||
"dimltex_handle" | "dimltex1_handle" | "dimltex2_handle"
|
||||
);
|
||||
let doc = &self.tabs[i].scene.document;
|
||||
if doc.dim_styles.get(&name).is_some_and(|style| {
|
||||
style.xref_reference || style.xref_dependent || !style.xref_handle.is_null()
|
||||
}) {
|
||||
return Task::none();
|
||||
}
|
||||
let handle = if value == "Default" || value == "ByBlock" {
|
||||
acadrust::types::Handle::NULL
|
||||
} else if is_lt {
|
||||
|
|
|
|||
|
|
@ -1030,9 +1030,7 @@ impl OpenCADStudio {
|
|||
}
|
||||
};
|
||||
let ds_sel = doc.dim_styles.get(&self.dimstyle_selected);
|
||||
let read_only = ds_sel.is_some_and(|style| {
|
||||
style.xref_reference || style.xref_dependent || !style.xref_handle.is_null()
|
||||
});
|
||||
let read_only = false;
|
||||
let in_use = doc.entities().any(|entity| {
|
||||
matches!(entity, acadrust::EntityType::Dimension(dimension)
|
||||
if dimension.base().style_name.eq_ignore_ascii_case(&self.dimstyle_selected))
|
||||
|
|
|
|||
Loading…
Reference in a new issue