diff --git a/src/plugins/coreplugin/outputwindow.cpp b/src/plugins/coreplugin/outputwindow.cpp index 4183a8457ca..d4d2a898895 100644 --- a/src/plugins/coreplugin/outputwindow.cpp +++ b/src/plugins/coreplugin/outputwindow.cpp @@ -13,9 +13,12 @@ #include +#include #include #include +#include + #include #include #include @@ -294,7 +297,16 @@ void OutputWindow::contextMenuEvent(QContextMenuEvent *event) menu->addSeparator(); QAction *saveAction = menu->addAction(Tr::tr("Save Contents...")); connect(saveAction, &QAction::triggered, this, [this] { - QFileDialog::saveFileContent(toPlainText().toUtf8(), d->outputFileNameHint); + const FilePath file = FileUtils::getSaveFilePath( + ICore::dialogParent(), {}, FileUtils::homePath() / d->outputFileNameHint); + if (!file.isEmpty()) { + QString error; + Utils::TextFileFormat format; + format.codec = EditorManager::defaultTextCodec(); + format.lineTerminationMode = EditorManager::defaultLineEnding(); + if (!format.writeFile(file, toPlainText(), &error)) + MessageManager::writeDisrupting(error); + } }); saveAction->setEnabled(!document()->isEmpty());