forked from 1b-agent/opencadstudio-upstream
Merge pull request #1064 from UserDevtec/main
This commit is contained in:
commit
08cd0041a5
3 files changed
+31
-13
No files matched your search
@@ -2771,7 +2771,7 @@ annotate =
|
||||
.mleader = MLeader
|
||||
.mtext-specify-insertion-point = MTEXT Plaatsingspunt specificeren:
|
||||
.markup = Markering
|
||||
.multileader = Multiverwijslijn
|
||||
.multileader = Multiverwijs Lijn
|
||||
.multileader-draw-order = Tekenvolgorde multiverwijslijn:
|
||||
.multiline-text =
|
||||
Multiline
|
||||
@@ -3142,7 +3142,7 @@ model =
|
||||
.revolve-entity = Rotatieobject
|
||||
.revolve-flags = Vlaggen omdraaien
|
||||
.spherical = Sferisch
|
||||
.subtract = Aftrekken
|
||||
.subtract = Verschil
|
||||
.surface-construction = Oppervlaktebouw
|
||||
.sweep-path = Vegen / Pad
|
||||
.sweep-entity = Sweepobject
|
||||
@@ -3154,7 +3154,7 @@ model =
|
||||
.u-vector-1 = U-vector 1
|
||||
.u-vector-2 = U-vector 2
|
||||
.uid = UID
|
||||
.union = Unie
|
||||
.union = Samenvoegen
|
||||
.v-isolines = V-isolijnen
|
||||
.v-vector-1 = Vector 1
|
||||
.v-vector-2 = Vector 2
|
||||
@@ -3879,9 +3879,9 @@ properties =
|
||||
.mode = Modus
|
||||
.monochrome = Monochroom
|
||||
.more-colors = Meer kleuren...
|
||||
.multileader = Multiverwijslijn
|
||||
.multiline = Multiline
|
||||
.multileader-style = Multiverwijslijnstijl
|
||||
.multileader = Multiverwijs Lijn
|
||||
.multiline = Multilijn Tekst
|
||||
.multileader-style = Multiverwijs Lijnstijl
|
||||
.multiple-lines = Meerdere regels
|
||||
.n-closed = N gesloten
|
||||
.n-density = N-dichtheid
|
||||
|
||||
+22
-4
@@ -175,8 +175,7 @@ pub fn export_pdf(
|
||||
plot_style,
|
||||
options,
|
||||
);
|
||||
let mut file = std::fs::File::create(path).map_err(|e| e.to_string())?;
|
||||
file.write_all(&bytes).map_err(|e| e.to_string())
|
||||
write_pdf_atomically(path, &bytes)
|
||||
}
|
||||
|
||||
/// Export several independently sized pages into one PDF file.
|
||||
@@ -190,8 +189,27 @@ pub fn export_pdf_pages(
|
||||
return Err("No pages were selected.".into());
|
||||
}
|
||||
let bytes = build_pdf_pages(pages, plot_style);
|
||||
let mut file = std::fs::File::create(path).map_err(|e| e.to_string())?;
|
||||
file.write_all(&bytes).map_err(|e| e.to_string())
|
||||
write_pdf_atomically(path, &bytes)
|
||||
}
|
||||
|
||||
/// Atomically write PDF bytes to a file. Writes to a temporary file first,
|
||||
/// then renames it to the target path to avoid crashes when overwriting
|
||||
/// a file that is locked by another process (e.g., PDF reader).
|
||||
#[cfg(not(target_arch = "wasm32"))]
|
||||
fn write_pdf_atomically(path: &Path, bytes: &[u8]) -> Result<(), String> {
|
||||
let dir = path.parent().unwrap_or_else(|| std::path::Path::new("."));
|
||||
let file_name = path.file_name()
|
||||
.and_then(|n| n.to_str())
|
||||
.ok_or_else(|| "Invalid file path".to_string())?;
|
||||
let temp_path = dir.join(format!(".{}.tmp", file_name));
|
||||
|
||||
let mut file = std::fs::File::create(&temp_path)
|
||||
.map_err(|e| format!("Failed to create temporary PDF file: {}", e))?;
|
||||
file.write_all(bytes)
|
||||
.map_err(|e| format!("Failed to write PDF data: {}", e))?;
|
||||
|
||||
std::fs::rename(&temp_path, path)
|
||||
.map_err(|e| format!("Failed to write PDF file: {} (the file may be open in another application)", e))
|
||||
}
|
||||
|
||||
/// Show a parented PDF save-file dialog and return the chosen path.
|
||||
|
||||
@@ -132,7 +132,7 @@ fn measure_large_width(renderer: &iced::Renderer, label: &str) -> f32 {
|
||||
renderer,
|
||||
label,
|
||||
width,
|
||||
advanced_text::Wrapping::WordOrGlyph,
|
||||
advanced_text::Wrapping::Word,
|
||||
)
|
||||
.height
|
||||
<= max_label_height
|
||||
@@ -685,7 +685,7 @@ pub(super) fn render_large_dropdown<'a>(
|
||||
.size(10)
|
||||
.width(Fill)
|
||||
.align_x(iced::Center)
|
||||
.wrapping(advanced_text::Wrapping::WordOrGlyph),
|
||||
.wrapping(advanced_text::Wrapping::Word),
|
||||
]
|
||||
.align_x(iced::Center)
|
||||
.spacing(0)
|
||||
@@ -818,7 +818,7 @@ pub(super) fn render_large<'a>(
|
||||
.size(10)
|
||||
.width(Fill)
|
||||
.align_x(iced::Center)
|
||||
.wrapping(advanced_text::Wrapping::WordOrGlyph),
|
||||
.wrapping(advanced_text::Wrapping::Word),
|
||||
]
|
||||
.align_x(iced::Center)
|
||||
.spacing(0)
|
||||
|
||||
Reference in new issue
Block a user