forked from 1b-agent/opencadstudio-upstream
feat: embed images (OLE2FRAME), print pipeline fixes, plot prefs, community fonts
- IMAGEEMBED: pack raster images into OLE2FRAME entities so a .dwg is self-contained; 'Embed Image' entry in the XREF attach menu; control/MCP op embed_image for external tools; dxf_name for OLE2FRAME queries. - Scene: populate_images_from_document now rebuilds OLE2FRAME and PDF underlay models too (they used to vanish after any XREF op). - Printing: add PRINTER_ENUM_NETWORK pass when listing printers; GDI spooler fallback (hayro raster at 300 DPI + StretchDIBits) for hosts whose PDF handler registers no print verb; DEVMODE orientation with a 90-degree raster rotation fallback for v4 drivers; fix the fit-scale precedence bug that printed blank pages. - PDF export dialogs on Windows use the async file dialog so the native overwrite confirmation no longer deadlocks the UI thread. - Plot dialog: persist the chosen printer (saved on selection) and the picked plot window across sessions; page setups with no device no longer reset the output device. - Community fonts: detect unresolvable .shx references on open and offer a download from the repository's fonts/ folder (contribution guide in fonts/README.md); custom font source URL setting for intranet font servers; downloaded fonts resolve from the per-user fonts directory.
This commit is contained in:
1 parent
1450fdeedf
commit
28efbffd57
27 files changed
+1767
-66
No files matched your search
@@ -160,6 +160,10 @@ pub struct PlotDialogState {
|
||||
pub upside_down: bool,
|
||||
pub copies: String,
|
||||
pub area: String,
|
||||
/// The picked world-space plot window (x0, y0, x1, y1) backing
|
||||
/// `area == "Window"`. Persisted so reopening the dialog — or the app —
|
||||
/// keeps the same window instead of reporting an empty plot area.
|
||||
pub window: Option<(f64, f64, f64, f64)>,
|
||||
pub center: bool,
|
||||
pub offset_x: String,
|
||||
pub offset_y: String,
|
||||
@@ -219,6 +223,7 @@ impl Default for PlotDialogState {
|
||||
upside_down: false,
|
||||
copies: "1".into(),
|
||||
area: "Window".into(),
|
||||
window: None,
|
||||
center: true,
|
||||
offset_x: "0.0".into(),
|
||||
offset_y: "0.0".into(),
|
||||
@@ -263,6 +268,7 @@ impl PlotDialogState {
|
||||
self.upside_down = o.upside_down;
|
||||
self.copies = o.copies.clone();
|
||||
self.area = o.area.clone();
|
||||
self.window = o.window;
|
||||
self.center = o.center;
|
||||
self.offset_x = o.offset_x.clone();
|
||||
self.offset_y = o.offset_y.clone();
|
||||
|
||||
Reference in new issue
Block a user