diff options
author | kintel <kintel@b57f626f-c46c-0410-a088-ec61d464b74c> | 2010-01-06 04:12:50 (GMT) |
---|---|---|
committer | kintel <kintel@b57f626f-c46c-0410-a088-ec61d464b74c> | 2010-01-06 04:12:50 (GMT) |
commit | b45ac89d5028460bd61181eebae74d26fc3d5f66 (patch) | |
tree | 7f9e1f073e804f85751ac6dd7370e218c7d8c139 | |
parent | c484e4ea39acaca960711cb1386defcc14a8a35d (diff) |
Automatically add missing suffix to save filename
git-svn-id: http://svn.clifford.at/openscad/trunk@211 b57f626f-c46c-0410-a088-ec61d464b74c
-rw-r--r-- | mainwin.cc | 21 |
1 files changed, 20 insertions, 1 deletions
@@ -715,8 +715,27 @@ void MainWindow::actionSave() void MainWindow::actionSaveAs() { - QString new_filename = QFileDialog::getSaveFileName(this, "Save File", this->fileName, "OpenSCAD Designs (*.scad)"); + QString new_filename = + QFileDialog::getSaveFileName(this, "Save File", + this->fileName.isEmpty()?"Untitled.scad":this->fileName, + "OpenSCAD Designs (*.scad)"); if (!new_filename.isEmpty()) { + if (QFileInfo(new_filename).suffix().isEmpty()) { + new_filename.append(".scad"); + + // Manual overwrite check since Qt doesn't do it, when using the + // defaultSuffix property + QFileInfo info(new_filename); + if (info.exists()) { + if (QMessageBox::warning(this, windowTitle(), + tr("%1 already exists.\nDo you want to replace it?") + .arg(info.fileName()), + QMessageBox::Yes | QMessageBox::No, QMessageBox::No) + != QMessageBox::Yes) { + return; + } + } + } setFileName(new_filename); actionSave(); } |