Merge pull request #1064 from UserDevtec/main

This commit is contained in:
Hakan Seven committed 2026-09-08 12:09:07 +03:00
commit 08cd0041a5
3 files changed
+31 -13

No files matched your search

+6 -6
View File
@@ -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
View File
@@ -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.
+3 -3
View File
@@ -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)