diff --git a/src/kfindtreeview.cpp b/src/kfindtreeview.cpp --- a/src/kfindtreeview.cpp +++ b/src/kfindtreeview.cpp @@ -430,13 +430,23 @@ void KFindTreeView::saveResults() { - QString selectedFilter; - QUrl u = QFileDialog::getSaveFileUrl(this, - i18nc("@title:window", "Save Results As"), - QUrl(), QStringLiteral("*.html|%1\n*.txt|%2").arg(i18n("HTML page"), i18n("Text file")), - &selectedFilter); + QFileDialog dialog; + dialog.setAcceptMode(QFileDialog::AcceptSave); + dialog.setWindowTitle(i18nc("@title:window", "Save Results As")); + dialog.setMimeTypeFilters({ + QStringLiteral("text/html"), + QStringLiteral("text/plain") + }); + + if (!dialog.exec()) { + return; + } + if (dialog.selectedUrls().isEmpty()) { + return; + } + const QUrl u = dialog.selectedUrls().constFirst(); if (!u.isValid() || !u.isLocalFile()) { return; } @@ -453,7 +463,7 @@ stream.setCodec(QTextCodec::codecForLocale()); const QList itemList = m_model->getItemList(); - if (selectedFilter == QLatin1String("*.html")) { + if (dialog.selectedMimeTypeFilter() == QLatin1String("text/html")) { stream << QString::fromLatin1("\n" "\n"