fix(hatch): pattern-scale edits take effect + background on/off
Property edits on a hatch were invisible: fills render from the prebuilt model cache, which move/copy refreshed but the properties path never did — so a pattern-scale change (which must also rescale the stored final pattern lines by the ratio) changed nothing on screen (#415). invalidate_property_targets now rebuilds the edited fill's cached model via Scene::refresh_fill_model. The background row gains an on/off box: off removes the HATCHBACKGROUNDCOLOR record entirely (the colour could never be reverted before), on seeds ByLayer. The codec covers the full colour-method range (ByLayer / ByBlock / RGB / ACI) and the backdrop resolves ByLayer / ByBlock through the style chain. "More Colors…" on the background picker now opens the palette window targeting the background colour — it used to just close the picker. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
a7fd9ecb45
commit
9bfcad18b9
6 changed files with 154 additions and 16 deletions
|
|
@ -831,6 +831,8 @@ pub enum ColorPickTarget {
|
|||
Table(u8, &'static str),
|
||||
/// Selected entities' colour (left properties panel).
|
||||
Properties,
|
||||
/// Selected entities' background colour (hatch / MTEXT background row).
|
||||
PropertiesBg,
|
||||
/// Current creation colour (ribbon).
|
||||
Ribbon,
|
||||
/// A layer's colour, by panel row index.
|
||||
|
|
|
|||
|
|
@ -1087,6 +1087,10 @@ impl OpenCADStudio {
|
|||
pub(super) fn invalidate_property_targets(&mut self, i: usize, handles: &[Handle]) {
|
||||
for &handle in handles {
|
||||
self.tabs[i].scene.mark_entity_dirty(handle);
|
||||
// Hatch / SOLID fills render from prebuilt cached models; rebuild
|
||||
// them or pattern edits (scale, background, …) stay invisible
|
||||
// (#415).
|
||||
self.tabs[i].scene.refresh_fill_model(handle);
|
||||
}
|
||||
// Solid (ACIS) meshes bake their colour into the mesh, so a colour /
|
||||
// layer change needs an explicit recolour — re-tessellating wires
|
||||
|
|
|
|||
|
|
@ -981,6 +981,9 @@ pub(super) fn on_text_style_dialog_open(&mut self) -> Task<Message> {
|
|||
Some(crate::app::ColorPickTarget::Properties) => {
|
||||
Some(Message::PropColorChanged(color))
|
||||
}
|
||||
Some(crate::app::ColorPickTarget::PropertiesBg) => {
|
||||
Some(Message::PropBgColorChanged(color))
|
||||
}
|
||||
Some(crate::app::ColorPickTarget::MText) => {
|
||||
Some(Message::MTextColorChanged(color))
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue