diff --git a/src/plugins/coreplugin/editormanager/editormanager.cpp b/src/plugins/coreplugin/editormanager/editormanager.cpp index 0e71d9aaa36..7dcd49e7c41 100644 --- a/src/plugins/coreplugin/editormanager/editormanager.cpp +++ b/src/plugins/coreplugin/editormanager/editormanager.cpp @@ -1926,11 +1926,17 @@ bool EditorManagerPrivate::saveDocumentAs(IDocument *document) Utils::MimeDatabase mdb; const QString filter = Utils::MimeDatabase::allFiltersString(); QString selectedFilter; - QString filePath = document->filePath().toString(); - if (filePath.isEmpty()) - filePath = document->defaultPath() + QLatin1Char('/') + document->suggestedFileName(); - if (!filePath.isEmpty()) + const QString filePath = document->filePath().toString(); + if (!filePath.isEmpty()) { selectedFilter = mdb.mimeTypeForFile(filePath).filterString(); + } else { + const QString suggestedName = document->suggestedFileName(); + if (!suggestedName.isEmpty()) { + const QList types = mdb.mimeTypesForFileName(suggestedName); + if (!types.isEmpty()) + selectedFilter = types.first().filterString(); + } + } if (selectedFilter.isEmpty()) selectedFilter = mdb.mimeTypeForName(document->mimeType()).filterString(); const QString &absoluteFilePath =