forked from 1b-agent/opencadstudio-upstream
fix: open-issue sweep — drawing, plot, snap, layout and UI fixes
Fixes: - Font prompt no longer lists bundled ltypeshp/qcadshp shape files (#1626) - Wide polylines step at a discontinuous segment width; PEDIT marks the current vertex; keyword steps refresh the command preview (#1628) - Radius-0 fillet drops the zero-length segment it left, so the corner fillets again (#1422) - FILLET Trim / No trim option (#1558) - True-colour wires plot in their own colour; colour picker stores the value it shows (#1621) - Model tab keeps its page setup; "Save changes to layout" in Model (#1620) - QNEW default template in Options > Files; .dwt in the open dialog (#1134, #1113) - GRIDUNIT / GRIDMODE / PERSPECTIVE variables (#1618, #1524) - PTYPE (#1433) - ZOOM nX / nXP (#1465) - CHSPACE between model and paper space through a viewport (#1428) - Moving a dimension keeps its automatic text placement - Shell icon; "&&" button labels (#1554) - LINETYPE Load from a .lin file (#1588) - XLINE / RAY hide the crosshair arms (#1437) - Dynamic-input boxes keep clear of the crosshair and each other (#1546) - Snap marker colour setting, dark default on light canvases (#1497, #1229, #1128) - Dimension style precision as a 0.00 pattern dropdown (#1426) - Node graph nodes left of the origin no longer clip away (#1592) - Collapse button in the command history header (#1094) - Freeze-in-current-viewport toggle in the ribbon layer list (#1466) - Geometric Center object snap for closed polylines (#1369) New strings translated in all 21 locales. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
abf302eba5
commit
178c7dff41
70 files changed
+1227
-145
No files matched your search
+28
-22
@@ -384,6 +384,29 @@ pub fn view_window<'a>(
|
||||
};
|
||||
|
||||
// Linear unit formats shared by DIMLUNIT / DIMALTU.
|
||||
// Precision reads as the number pattern it produces (#1426).
|
||||
const OPT_PREC: &[(&str, &str)] = &[
|
||||
("0", "0"),
|
||||
("1", "0.0"),
|
||||
("2", "0.00"),
|
||||
("3", "0.000"),
|
||||
("4", "0.0000"),
|
||||
("5", "0.00000"),
|
||||
("6", "0.000000"),
|
||||
("7", "0.0000000"),
|
||||
("8", "0.00000000"),
|
||||
];
|
||||
// A precision dropdown, or the read-only value while the option is off.
|
||||
let prec_field = move |label: Cow<'static, str>, fld: DsField, val: &'a str, enabled: bool| -> Element<'a, Message> {
|
||||
if enabled {
|
||||
enum_field(label, fld, val, OPT_PREC)
|
||||
} else {
|
||||
row![lbl(label), mk_field_enabled(fld, val, false)]
|
||||
.spacing(8)
|
||||
.align_y(iced::Center)
|
||||
.into()
|
||||
}
|
||||
};
|
||||
const OPT_LUNIT: &[(&str, &str)] = &[
|
||||
("1", "Scientific"),
|
||||
("2", "Decimal"),
|
||||
@@ -900,8 +923,7 @@ pub fn view_window<'a>(
|
||||
4 => column![
|
||||
text(t!("Linear dimensions")).size(11).style(primary_style),
|
||||
enum_field(t!("Unit format"), DsField::Dimlunit, vals.dimlunit, OPT_LUNIT),
|
||||
row![lbl(t!("Precision")), mk_field(DsField::Dimdec, vals.dimdec)]
|
||||
.spacing(8).align_y(iced::Center),
|
||||
prec_field(t!("Precision"), DsField::Dimdec, vals.dimdec, true),
|
||||
if matches!(vals.dimlunit.trim(), "4" | "5") {
|
||||
enum_field(
|
||||
t!("Fraction format"),
|
||||
@@ -946,8 +968,7 @@ pub fn view_window<'a>(
|
||||
vals.dimaunit,
|
||||
&[("0", "Decimal degrees"), ("1", "Degrees, minutes, seconds"), ("2", "Gradians"), ("3", "Radians"), ("4", "Surveyor's units")],
|
||||
),
|
||||
row![lbl(t!("Precision")), mk_field(DsField::Dimadec, vals.dimadec)]
|
||||
.spacing(8).align_y(iced::Center),
|
||||
prec_field(t!("Precision"), DsField::Dimadec, vals.dimadec, true),
|
||||
enum_field(
|
||||
t!("Zero suppression"),
|
||||
DsField::Dimazin,
|
||||
@@ -970,24 +991,14 @@ pub fn view_window<'a>(
|
||||
]
|
||||
.spacing(8)
|
||||
.align_y(iced::Center),
|
||||
row![
|
||||
lbl(t!("Precision")),
|
||||
mk_field_enabled(DsField::Dimaltd, vals.dimaltd, vals.dimalt)
|
||||
]
|
||||
.spacing(8)
|
||||
.align_y(iced::Center),
|
||||
prec_field(t!("Precision"), DsField::Dimaltd, vals.dimaltd, vals.dimalt),
|
||||
if vals.dimalt {
|
||||
enum_field(t!("Unit format"), DsField::Dimaltu, vals.dimaltu, OPT_LUNIT)
|
||||
} else {
|
||||
row![lbl(t!("Unit format")), container(text(alternate_unit_name).size(11).style(muted_style)).padding([4, 7]).width(150)]
|
||||
.spacing(8).align_y(iced::Center).into()
|
||||
},
|
||||
row![
|
||||
lbl(t!("Tolerance precision")),
|
||||
mk_field_enabled(DsField::Dimalttd, vals.dimalttd, vals.dimalt)
|
||||
]
|
||||
.spacing(8)
|
||||
.align_y(iced::Center),
|
||||
prec_field(t!("Tolerance precision"), DsField::Dimalttd, vals.dimalttd, vals.dimalt),
|
||||
row![
|
||||
lbl(t!("Round off")),
|
||||
mk_field_enabled(DsField::Dimaltrnd, vals.dimaltrnd, vals.dimalt)
|
||||
@@ -1042,12 +1053,7 @@ pub fn view_window<'a>(
|
||||
]
|
||||
.spacing(8)
|
||||
.align_y(iced::Center),
|
||||
row![
|
||||
lbl(t!("Precision")),
|
||||
mk_field_enabled(DsField::Dimtdec, vals.dimtdec, vals.dimtol || vals.dimlim)
|
||||
]
|
||||
.spacing(8)
|
||||
.align_y(iced::Center),
|
||||
prec_field(t!("Precision"), DsField::Dimtdec, vals.dimtdec, vals.dimtol || vals.dimlim),
|
||||
row![
|
||||
lbl(t!("Height scale")),
|
||||
mk_field_enabled(DsField::Dimtfac, vals.dimtfac, vals.dimtol || vals.dimlim)
|
||||
|
||||
Reference in new issue
Block a user