fix(save): append format extension to bare filename

The save dialog wrote the typed name verbatim, so entering "foo" with
DWG 2018 selected produced an extensionless "foo". The extension was
only added when the format pick-list changed, not on confirm.

Now confirm appends the selected format's extension when the name has
none (empty name falls back to drawing.<ext>); a name that already
carries an extension is left untouched.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
This commit is contained in:
Hakan SevenandClaude Opus 4.8 committed 2026-06-09 18:38:35 +03:00
1 parent 4b878b88c4
commit 0ee8f5265d
1 file changed
+13 -2
+13 -2
View File
@@ -646,8 +646,19 @@ impl OpenCADStudio {
}
Message::SaveDialogConfirm => {
let path = self.save_dialog_folder.join(&self.save_dialog_filename);
let (_, version) = crate::io::parse_save_format(&self.save_dialog_format);
let (ext, version) = crate::io::parse_save_format(&self.save_dialog_format);
// The user need not type an extension: append the selected
// format's one when the entered name carries none.
let name = self.save_dialog_filename.trim();
let filename = if name.is_empty() {
format!("drawing.{ext}")
} else if std::path::Path::new(name).extension().is_none() {
format!("{name}.{ext}")
} else {
name.to_string()
};
self.save_dialog_filename = filename.clone();
let path = self.save_dialog_folder.join(&filename);
let close = self.close_save_dialog_window();
let i = self.active_tab;
sync_annotation_scale_header(&mut self.tabs[i].scene);