summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2021-08-17 16:36:42 +0200
committerhjk <hjk@qt.io>2021-08-19 08:33:22 +0000
commit584217a52f23212d1d56a2beda95ea4438c33aeb (patch)
tree4703c37de7523a3149864bd9687862163417a762 /src
parent6e8c4aa835273d4bf4d5c35f54e3c613a3542420 (diff)
downloadqt-creator-584217a52f23212d1d56a2beda95ea4438c33aeb.tar.gz
Use more FileUtils based file dialogs
Change-Id: I1e7ec0493c26afe58e17afb8923a2b1023f6dcd4 Reviewed-by: David Schulz <david.schulz@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/libs/ssh/sshkeycreationdialog.cpp7
-rw-r--r--src/libs/utils/pathlisteditor.cpp15
-rw-r--r--src/plugins/android/androidcreatekeystorecertificate.cpp6
-rw-r--r--src/plugins/autotest/testresultspane.cpp10
-rw-r--r--src/plugins/clangtools/clangtool.cpp16
-rw-r--r--src/plugins/coreplugin/documentmanager.cpp8
-rw-r--r--src/plugins/coreplugin/locator/directoryfilter.cpp10
-rw-r--r--src/plugins/cpptools/cppfilesettingspage.cpp24
-rw-r--r--src/plugins/debugger/debuggerplugin.cpp8
-rw-r--r--src/plugins/debugger/debuggersourcepathmappingwidget.cpp4
-rw-r--r--src/plugins/debugger/logwindow.cpp8
-rw-r--r--src/plugins/git/gerrit/gerritplugin.cpp7
-rw-r--r--src/plugins/git/gitclient.cpp8
-rw-r--r--src/plugins/help/docsettingspage.cpp22
-rw-r--r--src/plugins/help/generalsettingspage.cpp26
-rw-r--r--src/plugins/languageclient/lspinspector.cpp8
-rw-r--r--src/plugins/modeleditor/modeleditor.cpp8
-rw-r--r--src/plugins/perforce/perforceplugin.cpp8
-rw-r--r--src/plugins/perfprofiler/perfloaddialog.cpp18
-rw-r--r--src/plugins/perfprofiler/perfprofilertool.cpp22
-rw-r--r--src/plugins/projectexplorer/environmentwidget.cpp10
-rw-r--r--src/plugins/projectexplorer/kitmanagerconfigwidget.cpp12
-rw-r--r--src/plugins/projectexplorer/parseissuesdialog.cpp8
-rw-r--r--src/plugins/qmlprofiler/qmlprofilertool.cpp34
-rw-r--r--src/plugins/qnx/qnxsettingspage.cpp13
-rw-r--r--src/plugins/qtsupport/qtoptionspage.cpp29
-rw-r--r--src/plugins/remotelinux/publickeydeploymentdialog.cpp10
-rw-r--r--src/plugins/scxmleditor/common/mainwidget.cpp34
-rw-r--r--src/plugins/scxmleditor/outputpane/errorwidget.cpp7
-rw-r--r--src/plugins/texteditor/codestyleselectorwidget.cpp20
-rw-r--r--src/plugins/valgrind/callgrindtool.cpp11
-rw-r--r--src/plugins/valgrind/memchecktool.cpp8
-rw-r--r--src/plugins/valgrind/valgrindsettings.cpp13
33 files changed, 226 insertions, 226 deletions
diff --git a/src/libs/ssh/sshkeycreationdialog.cpp b/src/libs/ssh/sshkeycreationdialog.cpp
index 538315850a..ed4a4547a4 100644
--- a/src/libs/ssh/sshkeycreationdialog.cpp
+++ b/src/libs/ssh/sshkeycreationdialog.cpp
@@ -34,12 +34,13 @@
#include <QApplication>
#include <QDir>
#include <QFile>
-#include <QFileDialog>
#include <QFileInfo>
#include <QMessageBox>
#include <QProcess>
#include <QStandardPaths>
+using namespace Utils;
+
namespace QSsh {
SshKeyCreationDialog::SshKeyCreationDialog(QWidget *parent)
@@ -112,9 +113,9 @@ void SshKeyCreationDialog::generateKeys()
void SshKeyCreationDialog::handleBrowseButtonClicked()
{
- const QString filePath = QFileDialog::getSaveFileName(this, tr("Choose Private Key File Name"));
+ const FilePath filePath = FileUtils::getSaveFilePath(this, tr("Choose Private Key File Name"));
if (!filePath.isEmpty())
- setPrivateKeyFile(filePath);
+ setPrivateKeyFile(filePath.toString());
}
void SshKeyCreationDialog::setPrivateKeyFile(const QString &filePath)
diff --git a/src/libs/utils/pathlisteditor.cpp b/src/libs/utils/pathlisteditor.cpp
index af0341921c..61d215fd83 100644
--- a/src/libs/utils/pathlisteditor.cpp
+++ b/src/libs/utils/pathlisteditor.cpp
@@ -27,6 +27,7 @@
#include "hostosinfo.h"
#include "stringutils.h"
+#include "fileutils.h"
#include <QDebug>
#include <QFileDialog>
@@ -122,17 +123,13 @@ PathListEditor::PathListEditor(QWidget *parent) :
d(new PathListEditorPrivate)
{
setLayout(d->layout);
- addButton(tr("Insert..."), this, [this](){
- const QString dir = QFileDialog::getExistingDirectory(this, d->fileDialogTitle);
+ addButton(tr("Insert..."), this, [this] {
+ const FilePath dir = FileUtils::getExistingDirectory(this, d->fileDialogTitle);
if (!dir.isEmpty())
- insertPathAtCursor(QDir::toNativeSeparators(dir));
- });
- addButton(tr("Delete Line"), this, [this](){
- deletePathAtCursor();
- });
- addButton(tr("Clear"), this, [this](){
- d->edit->clear();
+ insertPathAtCursor(dir.toUserOutput());
});
+ addButton(tr("Delete Line"), this, [this] { deletePathAtCursor(); });
+ addButton(tr("Clear"), this, [this] { d->edit->clear(); });
}
PathListEditor::~PathListEditor()
diff --git a/src/plugins/android/androidcreatekeystorecertificate.cpp b/src/plugins/android/androidcreatekeystorecertificate.cpp
index cc12edff74..44e5b290cd 100644
--- a/src/plugins/android/androidcreatekeystorecertificate.cpp
+++ b/src/plugins/android/androidcreatekeystorecertificate.cpp
@@ -169,9 +169,9 @@ void AndroidCreateKeystoreCertificate::buttonBoxAccepted()
if (!validateUserInput())
return;
- m_keystoreFilePath = Utils::FilePath::fromString(QFileDialog::getSaveFileName(this, tr("Keystore Filename"),
- QDir::homePath() + QLatin1String("/android_release.keystore"),
- tr("Keystore files (*.keystore *.jks)")));
+ m_keystoreFilePath = FileUtils::getSaveFilePath(this, tr("Keystore Filename"),
+ FileUtils::homePath() / "android_release.keystore",
+ tr("Keystore files (*.keystore *.jks)"));
if (m_keystoreFilePath.isEmpty())
return;
QString distinguishedNames(QString::fromLatin1("CN=%1, O=%2, L=%3, C=%4")
diff --git a/src/plugins/autotest/testresultspane.cpp b/src/plugins/autotest/testresultspane.cpp
index 6e3b9eb4c8..f46068ed70 100644
--- a/src/plugins/autotest/testresultspane.cpp
+++ b/src/plugins/autotest/testresultspane.cpp
@@ -68,6 +68,7 @@
#include <QVBoxLayout>
using namespace Core;
+using namespace Utils;
namespace Autotest {
namespace Internal {
@@ -712,15 +713,14 @@ void TestResultsPane::onCopyWholeTriggered()
void TestResultsPane::onSaveWholeTriggered()
{
- const QString fileName = QFileDialog::getSaveFileName(ICore::dialogParent(),
- tr("Save Output To"));
- if (fileName.isEmpty())
+ const FilePath filePath = FileUtils::getSaveFilePath(nullptr, tr("Save Output To"));
+ if (filePath.isEmpty())
return;
- Utils::FileSaver saver(Utils::FilePath::fromString(fileName), QIODevice::Text);
+ FileSaver saver(filePath, QIODevice::Text);
if (!saver.write(getWholeOutput().toUtf8()) || !saver.finalize()) {
QMessageBox::critical(ICore::dialogParent(), tr("Error"),
- tr("Failed to write \"%1\".\n\n%2").arg(fileName)
+ tr("Failed to write \"%1\".\n\n%2").arg(filePath.toUserOutput())
.arg(saver.errorString()));
}
}
diff --git a/src/plugins/clangtools/clangtool.cpp b/src/plugins/clangtools/clangtool.cpp
index 19bdf811de..e0fb65114b 100644
--- a/src/plugins/clangtools/clangtool.cpp
+++ b/src/plugins/clangtools/clangtool.cpp
@@ -790,22 +790,20 @@ void ClangTool::initDiagnosticView()
void ClangTool::loadDiagnosticsFromFiles()
{
// Ask user for files
- const QStringList filePaths
- = QFileDialog::getOpenFileNames(Core::ICore::dialogParent(),
- tr("Select YAML Files with Diagnostics"),
- QDir::homePath(),
- tr("YAML Files (*.yml *.yaml);;All Files (*)"));
+ const FilePaths filePaths
+ = FileUtils::getOpenFilePaths(nullptr,
+ tr("Select YAML Files with Diagnostics"),
+ FileUtils::homePath(),
+ tr("YAML Files (*.yml *.yaml);;All Files (*)"));
if (filePaths.isEmpty())
return;
// Load files
Diagnostics diagnostics;
QString errors;
- for (const QString &filePath : filePaths) {
+ for (const FilePath &filePath : filePaths) {
QString currentError;
- diagnostics << readExportedDiagnostics(Utils::FilePath::fromString(filePath),
- {},
- &currentError);
+ diagnostics << readExportedDiagnostics(filePath, {}, &currentError);
if (!currentError.isEmpty()) {
if (!errors.isEmpty())
diff --git a/src/plugins/coreplugin/documentmanager.cpp b/src/plugins/coreplugin/documentmanager.cpp
index 0325665b78..d1b55b9d60 100644
--- a/src/plugins/coreplugin/documentmanager.cpp
+++ b/src/plugins/coreplugin/documentmanager.cpp
@@ -797,15 +797,15 @@ QString DocumentManager::allDocumentFactoryFiltersString(QString *allFilesFilter
}
QString DocumentManager::getSaveFileName(const QString &title, const QString &pathIn,
- const QString &filter, QString *selectedFilter)
+ const QString &filter, QString *selectedFilter)
{
- const QString &path = pathIn.isEmpty() ? fileDialogInitialDirectory() : pathIn;
+ const FilePath path = FilePath::fromString(pathIn.isEmpty() ? fileDialogInitialDirectory() : pathIn);
QString fileName;
bool repeat;
do {
repeat = false;
- fileName = QFileDialog::getSaveFileName(
- ICore::dialogParent(), title, path, filter, selectedFilter, QFileDialog::DontConfirmOverwrite);
+ fileName = FileUtils::getSaveFilePath(nullptr, title, path, filter, selectedFilter,
+ QFileDialog::DontConfirmOverwrite).toString();
if (!fileName.isEmpty()) {
// If the selected filter is All Files (*) we leave the name exactly as the user
// specified. Otherwise the suffix must be one available in the selected filter. If
diff --git a/src/plugins/coreplugin/locator/directoryfilter.cpp b/src/plugins/coreplugin/locator/directoryfilter.cpp
index 69ddfc2eb3..b5e6945166 100644
--- a/src/plugins/coreplugin/locator/directoryfilter.cpp
+++ b/src/plugins/coreplugin/locator/directoryfilter.cpp
@@ -241,9 +241,9 @@ bool DirectoryFilter::openConfigDialog(QWidget *parent, bool &needsRefresh)
void DirectoryFilter::handleAddDirectory()
{
- QString dir = QFileDialog::getExistingDirectory(m_dialog, tr("Select Directory"));
+ FilePath dir = FileUtils::getExistingDirectory(m_dialog, tr("Select Directory"));
if (!dir.isEmpty())
- m_ui->directoryList->addItem(dir);
+ m_ui->directoryList->addItem(dir.toUserOutput());
}
void DirectoryFilter::handleEditDirectory()
@@ -251,10 +251,10 @@ void DirectoryFilter::handleEditDirectory()
if (m_ui->directoryList->selectedItems().count() < 1)
return;
QListWidgetItem *currentItem = m_ui->directoryList->selectedItems().at(0);
- QString dir = QFileDialog::getExistingDirectory(m_dialog, tr("Select Directory"),
- currentItem->text());
+ FilePath dir = FileUtils::getExistingDirectory(m_dialog, tr("Select Directory"),
+ FilePath::fromUserInput(currentItem->text()));
if (!dir.isEmpty())
- currentItem->setText(dir);
+ currentItem->setText(dir.toUserOutput());
}
void DirectoryFilter::handleRemoveDirectory()
diff --git a/src/plugins/cpptools/cppfilesettingspage.cpp b/src/plugins/cpptools/cppfilesettingspage.cpp
index f63eb41b24..d289e6334e 100644
--- a/src/plugins/cpptools/cppfilesettingspage.cpp
+++ b/src/plugins/cpptools/cppfilesettingspage.cpp
@@ -51,6 +51,8 @@
#include <QTextCodec>
#include <QTextStream>
+using namespace Utils;
+
namespace CppTools {
namespace Internal {
@@ -271,8 +273,8 @@ public:
private:
void slotEdit();
- QString licenseTemplatePath() const;
- void setLicenseTemplatePath(const QString &);
+ FilePath licenseTemplatePath() const;
+ void setLicenseTemplatePath(const FilePath &);
Ui::CppFileSettingsPage m_ui;
CppFileSettings *m_settings = nullptr;
@@ -301,14 +303,14 @@ CppFileSettingsWidget::CppFileSettingsWidget(CppFileSettings *settings)
setSettings(*m_settings);
}
-QString CppFileSettingsWidget::licenseTemplatePath() const
+FilePath CppFileSettingsWidget::licenseTemplatePath() const
{
- return m_ui.licenseTemplatePathChooser->filePath().toString();
+ return m_ui.licenseTemplatePathChooser->filePath();
}
-void CppFileSettingsWidget::setLicenseTemplatePath(const QString &lp)
+void CppFileSettingsWidget::setLicenseTemplatePath(const FilePath &lp)
{
- m_ui.licenseTemplatePathChooser->setPath(lp);
+ m_ui.licenseTemplatePathChooser->setFilePath(lp);
}
static QStringList trimmedPaths(const QString &paths)
@@ -330,7 +332,7 @@ void CppFileSettingsWidget::apply()
rc.sourceSuffix = m_ui.sourceSuffixComboBox->currentText();
rc.headerSearchPaths = trimmedPaths(m_ui.headerSearchPathsEdit->text());
rc.sourceSearchPaths = trimmedPaths(m_ui.sourceSearchPathsEdit->text());
- rc.licenseTemplatePath = licenseTemplatePath();
+ rc.licenseTemplatePath = licenseTemplatePath().toString();
if (rc == *m_settings)
return;
@@ -358,18 +360,18 @@ void CppFileSettingsWidget::setSettings(const CppFileSettings &s)
setComboText(m_ui.sourceSuffixComboBox, s.sourceSuffix);
m_ui.headerSearchPathsEdit->setText(s.headerSearchPaths.join(comma));
m_ui.sourceSearchPathsEdit->setText(s.sourceSearchPaths.join(comma));
- setLicenseTemplatePath(s.licenseTemplatePath);
+ setLicenseTemplatePath(FilePath::fromString(s.licenseTemplatePath));
}
void CppFileSettingsWidget::slotEdit()
{
- QString path = licenseTemplatePath();
+ FilePath path = licenseTemplatePath();
if (path.isEmpty()) {
// Pick a file name and write new template, edit with C++
- path = QFileDialog::getSaveFileName(this, tr("Choose Location for New License Template File"));
+ path = FileUtils::getSaveFilePath(this, tr("Choose Location for New License Template File"));
if (path.isEmpty())
return;
- Utils::FileSaver saver(Utils::FilePath::fromString(path), QIODevice::Text);
+ FileSaver saver(path, QIODevice::Text);
saver.write(tr(licenseTemplateTemplate).arg(Core::Constants::IDE_DISPLAY_NAME).toUtf8());
if (!saver.finalize(this))
return;
diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp
index 7e0906a537..dc84240359 100644
--- a/src/plugins/debugger/debuggerplugin.cpp
+++ b/src/plugins/debugger/debuggerplugin.cpp
@@ -1971,11 +1971,11 @@ void DebuggerPluginPrivate::dumpLog()
LogWindow *logWindow = engine->logWindow();
QTC_ASSERT(logWindow, return);
- QString fileName = QFileDialog::getSaveFileName(ICore::dialogParent(),
- tr("Save Debugger Log"), Utils::TemporaryDirectory::masterDirectoryPath());
- if (fileName.isEmpty())
+ FilePath filePath = FileUtils::getSaveFilePath(nullptr, tr("Save Debugger Log"),
+ FilePath::fromString(TemporaryDirectory::masterDirectoryPath()));
+ if (filePath.isEmpty())
return;
- FileSaver saver(Utils::FilePath::fromUserInput(fileName));
+ FileSaver saver(filePath);
if (!saver.hasError()) {
QTextStream ts(saver.file());
ts << logWindow->inputContents();
diff --git a/src/plugins/debugger/debuggersourcepathmappingwidget.cpp b/src/plugins/debugger/debuggersourcepathmappingwidget.cpp
index 4929f40c0a..1f18596ee4 100644
--- a/src/plugins/debugger/debuggersourcepathmappingwidget.cpp
+++ b/src/plugins/debugger/debuggersourcepathmappingwidget.cpp
@@ -404,11 +404,11 @@ void DebuggerSourcePathMappingWidget::slotAdd()
void DebuggerSourcePathMappingWidget::slotAddQt()
{
// Add a mapping for various Qt build locations in case of unpatched builds.
- const QString qtSourcesPath = QFileDialog::getExistingDirectory(this, tr("Qt Sources"));
+ const FilePath qtSourcesPath = FileUtils::getExistingDirectory(this, tr("Qt Sources"));
if (qtSourcesPath.isEmpty())
return;
for (const QString &buildPath : qtBuildPaths())
- m_model->addMapping(buildPath, qtSourcesPath);
+ m_model->addMapping(buildPath, qtSourcesPath.toString());
resizeColumns();
setCurrentRow(m_model->rowCount() - 1);
}
diff --git a/src/plugins/debugger/logwindow.cpp b/src/plugins/debugger/logwindow.cpp
index 9b90302399..9a3654b875 100644
--- a/src/plugins/debugger/logwindow.cpp
+++ b/src/plugins/debugger/logwindow.cpp
@@ -56,6 +56,8 @@
#include <utils/fileutils.h>
#include <utils/theme/theme.h>
+using namespace Utils;
+
namespace Debugger {
namespace Internal {
@@ -94,10 +96,10 @@ static bool writeLogContents(const QPlainTextEdit *editor, QWidget *parent)
{
bool success = false;
while (!success) {
- const QString fileName = QFileDialog::getSaveFileName(parent, LogWindow::tr("Log File"));
- if (fileName.isEmpty())
+ const FilePath filePath = FileUtils::getSaveFilePath(parent, LogWindow::tr("Log File"));
+ if (filePath.isEmpty())
break;
- Utils::FileSaver saver(Utils::FilePath::fromString(fileName), QIODevice::Text);
+ FileSaver saver(filePath, QIODevice::Text);
saver.write(editor->toPlainText().toUtf8());
if (saver.finalize(parent))
success = true;
diff --git a/src/plugins/git/gerrit/gerritplugin.cpp b/src/plugins/git/gerrit/gerritplugin.cpp
index 920e942049..71ac8da38e 100644
--- a/src/plugins/git/gerrit/gerritplugin.cpp
+++ b/src/plugins/git/gerrit/gerritplugin.cpp
@@ -454,10 +454,9 @@ void GerritPlugin::fetch(const QSharedPointer<GerritChange> &change, int mode)
// Ask the user for a repository to retrieve the change.
const QString title =
tr("Enter Local Repository for \"%1\" (%2)").arg(change->project, change->branch);
- const QString suggestedRespository =
- findLocalRepository(change->project, change->branch);
- repository = FilePath::fromString(QFileDialog::getExistingDirectory(m_dialog.data(),
- title, suggestedRespository));
+ const FilePath suggestedRespository =
+ FilePath::fromString(findLocalRepository(change->project, change->branch));
+ repository = FileUtils::getExistingDirectory(m_dialog.data(), title, suggestedRespository);
}
if (repository.isEmpty())
diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp
index de7ce01d83..e2a464baff 100644
--- a/src/plugins/git/gitclient.cpp
+++ b/src/plugins/git/gitclient.cpp
@@ -1239,16 +1239,16 @@ void GitClient::archive(const FilePath &workingDirectory, QString commit)
if (synchronousRevParseCmd(repoDirectory, commit, &output))
commit = output.trimmed();
- QString archiveName = QFileDialog::getSaveFileName(
- ICore::dialogParent(),
+ FilePath archiveName = FileUtils::getSaveFilePath(
+ nullptr,
tr("Generate %1 archive").arg(repoName),
- repoDirectory.toString() + QString("/../%1-%2").arg(repoName).arg(commit.left(8)),
+ repoDirectory.pathAppended(QString("../%1-%2").arg(repoName).arg(commit.left(8))),
filters.keys().join(";;"),
&selectedFilter);
if (archiveName.isEmpty())
return;
QString extension = filters.value(selectedFilter);
- QFileInfo archive(archiveName);
+ QFileInfo archive(archiveName.toString());
if (extension != "." + archive.completeSuffix()) {
archive = QFileInfo(archive.filePath() + extension);
}
diff --git a/src/plugins/help/docsettingspage.cpp b/src/plugins/help/docsettingspage.cpp
index b4299e6df8..2aaada872b 100644
--- a/src/plugins/help/docsettingspage.cpp
+++ b/src/plugins/help/docsettingspage.cpp
@@ -44,6 +44,8 @@
#include <algorithm>
+using namespace Utils;
+
namespace Help {
namespace Internal {
@@ -97,7 +99,7 @@ private:
Ui::DocSettingsPage m_ui;
- QString m_recentDialogPath;
+ FilePath m_recentDialogPath;
using NameSpaceToPathHash = QMultiHash<QString, QString>;
NameSpaceToPathHash m_filesToRegister;
@@ -200,29 +202,29 @@ DocSettingsPageWidget::DocSettingsPageWidget()
void DocSettingsPageWidget::addDocumentation()
{
- const QStringList &files =
- QFileDialog::getOpenFileNames(m_ui.addButton->parentWidget(),
- tr("Add Documentation"), m_recentDialogPath, tr("Qt Help Files (*.qch)"));
+ const FilePaths files =
+ FileUtils::getOpenFilePaths(m_ui.addButton->parentWidget(),
+ tr("Add Documentation"), m_recentDialogPath, tr("Qt Help Files (*.qch)"));
if (files.isEmpty())
return;
- m_recentDialogPath = QFileInfo(files.first()).canonicalPath();
+ m_recentDialogPath = files.first().canonicalPath();
NameSpaceToPathHash docsUnableToRegister;
- for (const QString &file : files) {
- const QString filePath = QDir::cleanPath(file);
+ for (const FilePath &file : files) {
+ const QString filePath = file.cleanPath().toString();
const QString &nameSpace = HelpManager::namespaceFromFile(filePath);
if (nameSpace.isEmpty()) {
- docsUnableToRegister.insert("UnknownNamespace", QDir::toNativeSeparators(filePath));
+ docsUnableToRegister.insert("UnknownNamespace", file.toUserOutput());
continue;
}
if (m_filesToRegister.contains(nameSpace)) {
- docsUnableToRegister.insert(nameSpace, QDir::toNativeSeparators(filePath));
+ docsUnableToRegister.insert(nameSpace, file.toUserOutput());
continue;
}
- m_model.insertEntry(createEntry(nameSpace, file, true /* user managed */));
+ m_model.insertEntry(createEntry(nameSpace, file.toString(), true /* user managed */));
m_filesToRegister.insert(nameSpace, filePath);
m_filesToRegisterUserManaged.insert(nameSpace, true/*user managed*/);
diff --git a/src/plugins/help/generalsettingspage.cpp b/src/plugins/help/generalsettingspage.cpp
index 9c8f8c6a2b..ac595b12cf 100644
--- a/src/plugins/help/generalsettingspage.cpp
+++ b/src/plugins/help/generalsettingspage.cpp
@@ -36,7 +36,6 @@
#include <coreplugin/coreconstants.h>
#include <coreplugin/helpmanager.h>
-#include <coreplugin/icore.h>
#include <utils/algorithm.h>
#include <utils/fileutils.h>
@@ -46,10 +45,12 @@
#include <QTextStream>
#include <QApplication>
-#include <QFileDialog>
using namespace Core;
-using namespace Help::Internal;
+using namespace Utils;
+
+namespace Help {
+namespace Internal {
GeneralSettingsPage::GeneralSettingsPage()
{
@@ -219,13 +220,13 @@ void GeneralSettingsPage::importBookmarks()
{
m_ui->errorLabel->setVisible(false);
- QString fileName = QFileDialog::getOpenFileName(ICore::dialogParent(),
- tr("Import Bookmarks"), QDir::currentPath(), tr("Files (*.xbel)"));
+ FilePath filePath = FileUtils::getOpenFilePath(nullptr,
+ tr("Import Bookmarks"), FilePath::fromString(QDir::currentPath()), tr("Files (*.xbel)"));
- if (fileName.isEmpty())
+ if (filePath.isEmpty())
return;
- QFile file(fileName);
+ QFile file(filePath.toString());
if (file.open(QIODevice::ReadOnly)) {
const BookmarkManager &manager = LocalHelpManager::bookmarkManager();
XbelReader reader(manager.treeBookmarkModel(), manager.listBookmarkModel());
@@ -241,14 +242,14 @@ void GeneralSettingsPage::exportBookmarks()
{
m_ui->errorLabel->setVisible(false);
- QString fileName = QFileDialog::getSaveFileName(ICore::dialogParent(),
+ FilePath filePath = FileUtils::getSaveFilePath(nullptr,
tr("Save File"), "untitled.xbel", tr("Files (*.xbel)"));
QLatin1String suffix(".xbel");
- if (!fileName.endsWith(suffix))
- fileName.append(suffix);
+ if (!filePath.endsWith(suffix))
+ filePath = filePath + suffix;
- Utils::FileSaver saver(Utils::FilePath::fromString(fileName));
+ Utils::FileSaver saver(filePath);
if (!saver.hasError()) {
XbelWriter writer(LocalHelpManager::bookmarkManager().treeBookmarkModel());
writer.writeToFile(saver.file());
@@ -366,3 +367,6 @@ void GeneralSettingsPage::finish()
delete m_ui;
m_ui = nullptr;
}
+
+} // Internal
+} // Help
diff --git a/src/plugins/languageclient/lspinspector.cpp b/src/plugins/languageclient/lspinspector.cpp
index 7ccab6b545..ec5927af85 100644
--- a/src/plugins/languageclient/lspinspector.cpp
+++ b/src/plugins/languageclient/lspinspector.cpp
@@ -36,7 +36,6 @@
#include <QDialog>
#include <QDialogButtonBox>
#include <QElapsedTimer>
-#include <QFileDialog>
#include <QFormLayout>
#include <QGroupBox>
#include <QHeaderView>
@@ -49,6 +48,7 @@
#include <QTreeView>
using namespace LanguageServerProtocol;
+using namespace Utils;
namespace LanguageClient {
@@ -322,10 +322,10 @@ void LspLogWidget::saveLog()
stream << "\n\n";
});
- const QString fileName = QFileDialog::getSaveFileName(this, LspInspector::tr("Log File"));
- if (fileName.isEmpty())
+ const FilePath filePath = FileUtils::getSaveFilePath(this, LspInspector::tr("Log File"));
+ if (filePath.isEmpty())
return;
- Utils::FileSaver saver(Utils::FilePath::fromString(fileName), QIODevice::Text);
+ FileSaver saver(filePath, QIODevice::Text);
saver.write(contents.toUtf8());
if (!saver.finalize(this))
saveLog();
diff --git a/src/plugins/modeleditor/modeleditor.cpp b/src/plugins/modeleditor/modeleditor.cpp
index 2be6f0aa09..286e5b560f 100644
--- a/src/plugins/modeleditor/modeleditor.cpp
+++ b/src/plugins/modeleditor/modeleditor.cpp
@@ -106,6 +106,8 @@
#include <algorithm>
+using namespace Utils;
+
namespace ModelEditor {
namespace Internal {
@@ -595,10 +597,10 @@ void ModelEditor::exportToImage(bool selectedElements)
#ifndef QT_NO_SVG
filter += tr(";;SVG (*.svg)");
#endif // QT_NO_SVG
- QString fileName = QFileDialog::getSaveFileName(
- Core::ICore::dialogParent(),
+ QString fileName = FileUtils::getSaveFilePath(
+ nullptr,
selectedElements ? tr("Export Selected Elements") : tr("Export Diagram"),
- d->lastExportDirPath, filter);
+ FilePath::fromString(d->lastExportDirPath), filter).toString();
if (!fileName.isEmpty()) {
qmt::DocumentController *documentController = d->document->documentController();
qmt::DiagramSceneModel *sceneModel = documentController->diagramsManager()->diagramSceneModel(diagram);
diff --git a/src/plugins/perforce/perforceplugin.cpp b/src/plugins/perforce/perforceplugin.cpp
index 6b5a85d594..be00bbf30c 100644
--- a/src/plugins/perforce/perforceplugin.cpp
+++ b/src/plugins/perforce/perforceplugin.cpp
@@ -841,11 +841,9 @@ void PerforcePluginPrivate::annotateCurrentFile()
void PerforcePluginPrivate::annotateFile()
{
- const QString file = QFileDialog::getOpenFileName(ICore::dialogParent(), tr("p4 annotate"));
- if (!file.isEmpty()) {
- const QFileInfo fi(file);
- annotate(FilePath::fromString(fi.absolutePath()), fi.fileName());
- }
+ const FilePath filePath = FileUtils::getOpenFilePath(nullptr, tr("p4 annotate"));
+ if (!filePath.isEmpty())
+ annotate(filePath.parentDir(), filePath.fileName());
}
void PerforcePluginPrivate::annotate(const FilePath &workingDir,
diff --git a/src/plugins/perfprofiler/perfloaddialog.cpp b/src/plugins/perfprofiler/perfloaddialog.cpp
index 964f9422ca..90de6ea989 100644
--- a/src/plugins/perfprofiler/perfloaddialog.cpp
+++ b/src/plugins/perfprofiler/perfloaddialog.cpp
@@ -33,7 +33,7 @@
#include <projectexplorer/session.h>
#include <projectexplorer/target.h>
-#include <QFileDialog>
+using namespace Utils;
namespace PerfProfiler {
namespace Internal {
@@ -75,23 +75,23 @@ ProjectExplorer::Kit *PerfLoadDialog::kit() const
void PerfLoadDialog::on_browseTraceFileButton_pressed()
{
- QString fileName = QFileDialog::getOpenFileName(
- this, tr("Choose Perf Trace"), QString(),
- tr("Perf traces (*%1)").arg(QLatin1String(Constants::TraceFileExtension)));
- if (fileName.isEmpty())
+ FilePath filePath = FileUtils::getOpenFilePath(
+ this, tr("Choose Perf Trace"), {},
+ tr("Perf traces (*%1)").arg(Constants::TraceFileExtension));
+ if (filePath.isEmpty())
return;
- ui->traceFileLineEdit->setText(fileName);
+ ui->traceFileLineEdit->setText(filePath.toUserOutput());
}
void PerfLoadDialog::on_browseExecutableDirButton_pressed()
{
- QString fileName = QFileDialog::getExistingDirectory(
+ FilePath filePath = FileUtils::getExistingDirectory(
this, tr("Choose Directory of Executable"));
- if (fileName.isEmpty())
+ if (filePath.isEmpty())
return;
- ui->executableDirLineEdit->setText(fileName);
+ ui->executableDirLineEdit->setText(filePath.toUserOutput());
}
void PerfLoadDialog::chooseDefaults()
diff --git a/src/plugins/perfprofiler/perfprofilertool.cpp b/src/plugins/perfprofiler/perfprofilertool.cpp
index ee4381f427..ca49057aed 100644
--- a/src/plugins/perfprofiler/perfprofilertool.cpp
+++ b/src/plugins/perfprofiler/perfprofilertool.cpp
@@ -619,10 +619,9 @@ void PerfProfilerTool::showLoadTraceDialog()
{
m_perspective.select();
- QString filename = QFileDialog::getOpenFileName(
- ICore::dialogParent(), tr("Load Trace File"),
- "", tr("Trace File (*.ptq)"));
- if (filename.isEmpty())
+ FilePath filePath = FileUtils::getOpenFilePath(nullptr, tr("Load Trace File"),
+ {}, tr("Trace File (*.ptq)"));
+ if (filePath.isEmpty())
return;
startLoading();
@@ -632,23 +631,22 @@ void PerfProfilerTool::showLoadTraceDialog()
const Kit *kit = target ? target->kit() : nullptr;
populateFileFinder(currentProject, kit);
- m_traceManager->loadFromTraceFile(filename);
+ m_traceManager->loadFromTraceFile(filePath.toString());
}
void PerfProfilerTool::showSaveTraceDialog()
{
m_perspective.select();
- QString filename = QFileDialog::getSaveFileName(
- ICore::dialogParent(), tr("Save Trace File"),
- "", tr("Trace File (*.ptq)"));
- if (filename.isEmpty())
+ FilePath filePath = FileUtils::getSaveFilePath(nullptr, tr("Save Trace File"),
+ {}, tr("Trace File (*.ptq)"));
+ if (filePath.isEmpty())
return;
- if (!filename.endsWith(".ptq"))
- filename += ".ptq";
+ if (!filePath.endsWith(".ptq"))
+ filePath = filePath + ".ptq";
setToolActionsEnabled(false);
- m_traceManager->saveToTraceFile(filename);
+ m_traceManager->saveToTraceFile(filePath.toString());
}
void PerfProfilerTool::setAggregated(bool aggregated)
diff --git a/src/plugins/projectexplorer/environmentwidget.cpp b/src/plugins/projectexplorer/environmentwidget.cpp
index d94ff7134d..23f3c5697a 100644
--- a/src/plugins/projectexplorer/environmentwidget.cpp
+++ b/src/plugins/projectexplorer/environmentwidget.cpp
@@ -102,10 +102,9 @@ public:
connect(buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept);
connect(buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject);
connect(addButton, &QPushButton::clicked, this, [this] {
- const QString dir = QDir::toNativeSeparators(
- QFileDialog::getExistingDirectory(this, tr("Choose Directory")));
+ const FilePath dir = FileUtils::getExistingDirectory(this, tr("Choose Directory"));
if (!dir.isEmpty())
- addPath(dir);
+ addPath(dir.toUserOutput());
});
connect(removeButton, &QPushButton::clicked, this, [this] {
const QList<QTreeWidgetItem *> selected = m_view.selectedItems();
@@ -486,12 +485,11 @@ void EnvironmentWidget::unsetEnvironmentButtonClicked()
void EnvironmentWidget::amendPathList(Utils::NameValueItem::Operation op)
{
const QString varName = d->m_model->indexToVariable(d->m_environmentView->currentIndex());
- const QString dir = QDir::toNativeSeparators(
- QFileDialog::getExistingDirectory(this, tr("Choose Directory")));
+ const FilePath dir = FileUtils::getExistingDirectory(this, tr("Choose Directory"));
if (dir.isEmpty())
return;
Utils::NameValueItems changes = d->m_model->userChanges();
- changes.append({varName, dir, op});
+ changes.append({varName, dir.toUserOutput(), op});
d->m_model->setUserChanges(changes);
}
diff --git a/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp b/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp
index 884ab33307..778beb52c8 100644
--- a/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp
+++ b/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp
@@ -308,17 +308,17 @@ void KitManagerConfigWidget::setIcon()
action->setIconVisibleInMenu(true);
}
iconMenu.addSeparator();
- iconMenu.addAction(Utils::PathChooser::browseButtonLabel(), [this] {
- const QString path = QFileDialog::getOpenFileName(this, tr("Select Icon"),
- m_modifiedKit->iconPath().toString(),
- tr("Images (*.png *.xpm *.jpg)"));
+ iconMenu.addAction(PathChooser::browseButtonLabel(), [this] {
+ const FilePath path = FileUtils::getOpenFilePath(this, tr("Select Icon"),
+ m_modifiedKit->iconPath(),
+ tr("Images (*.png *.xpm *.jpg)"));
if (path.isEmpty())
return;
- const QIcon icon(path);
+ const QIcon icon(path.toString());
if (icon.isNull())
return;
m_iconButton->setIcon(icon);
- m_modifiedKit->setIconPath(Utils::FilePath::fromString(path));
+ m_modifiedKit->setIconPath(path);
emit dirty();
});
iconMenu.exec(mapToGlobal(m_iconButton->pos()));
diff --git a/src/plugins/projectexplorer/parseissuesdialog.cpp b/src/plugins/projectexplorer/parseissuesdialog.cpp
index d68c0ec0ae..75be7e7bcb 100644
--- a/src/plugins/projectexplorer/parseissuesdialog.cpp
+++ b/src/plugins/projectexplorer/parseissuesdialog.cpp
@@ -49,6 +49,8 @@
#include <memory>
+using namespace Utils;
+
namespace ProjectExplorer {
namespace Internal {
@@ -73,14 +75,14 @@ ParseIssuesDialog::ParseIssuesDialog(QWidget *parent) : QDialog(parent), d(new P
const auto loadFileButton = new QPushButton(tr("Load from File..."));
connect(loadFileButton, &QPushButton::clicked, this, [this] {
- const QString filePath = QFileDialog::getOpenFileName(this, tr("Choose File"));
+ const FilePath filePath = FileUtils::getOpenFilePath(this, tr("Choose File"));
if (filePath.isEmpty())
return;
- QFile file(filePath);
+ QFile file(filePath.toString());
if (!file.open(QIODevice::ReadOnly)) {
QMessageBox::critical(this, tr("Could Not Open File"),
tr("Could not open file: \"%1\": %2")
- .arg(filePath, file.errorString()));
+ .arg(filePath.toUserOutput(), file.errorString()));
return;
}
d->compileOutputEdit.setPlainText(QString::fromLocal8Bit(file.readAll()));
diff --git a/src/plugins/qmlprofiler/qmlprofilertool.cpp b/src/plugins/qmlprofiler/qmlprofilertool.cpp
index 3d49dbd59d..2dc1b402a6 100644
--- a/src/plugins/qmlprofiler/qmlprofilertool.cpp
+++ b/src/plugins/qmlprofiler/qmlprofilertool.cpp
@@ -586,11 +586,11 @@ void QmlProfilerTool::showErrorDialog(const QString &error)
errorDialog->show();
}
-void saveLastTraceFile(const QString &filename)
+static void saveLastTraceFile(const FilePath &filePath)
{
QmlProfilerSettings *settings = QmlProfilerPlugin::globalSettings();
- if (filename != settings->lastTraceFile.value()) {
- settings->lastTraceFile.setValue(filename);
+ if (filePath != settings->lastTraceFile.filePath()) {
+ settings->lastTraceFile.setFilePath(filePath);
settings->writeGlobalSettings();
}
}
@@ -599,16 +599,16 @@ void QmlProfilerTool::showSaveDialog()
{
QLatin1String tFile(QtdFileExtension);
QLatin1String zFile(QztFileExtension);
- QString filename = QFileDialog::getSaveFileName(
- ICore::dialogParent(), tr("Save QML Trace"),
- QmlProfilerPlugin::globalSettings()->lastTraceFile.value(),
+ FilePath filePath = FileUtils::getSaveFilePath(
+ nullptr, tr("Save QML Trace"),
+ QmlProfilerPlugin::globalSettings()->lastTraceFile.filePath(),
tr("QML traces (*%1 *%2)").arg(zFile).arg(tFile));
- if (!filename.isEmpty()) {
- if (!filename.endsWith(zFile) && !filename.endsWith(tFile))
- filename += zFile;
- saveLastTraceFile(filename);
+ if (!filePath.isEmpty()) {
+ if (!filePath.endsWith(zFile) && !filePath.endsWith(tFile))
+ filePath = filePath + zFile;
+ saveLastTraceFile(filePath);
Debugger::enableMainWindow(false);
- Core::ProgressManager::addTask(d->m_profilerModelManager->save(filename),
+ Core::ProgressManager::addTask(d->m_profilerModelManager->save(filePath.toString()),
tr("Saving Trace Data"), TASK_SAVE,
Core::ProgressManager::ShowInApplicationIcon);
}
@@ -623,18 +623,18 @@ void QmlProfilerTool::showLoadDialog()
QLatin1String tFile(QtdFileExtension);
QLatin1String zFile(QztFileExtension);
- QString filename = QFileDialog::getOpenFileName(
- ICore::dialogParent(), tr("Load QML Trace"),
- QmlProfilerPlugin::globalSettings()->lastTraceFile.value(),
+ FilePath filePath = FileUtils::getOpenFilePath(
+ nullptr, tr("Load QML Trace"),
+ QmlProfilerPlugin::globalSettings()->lastTraceFile.filePath(),
tr("QML traces (*%1 *%2)").arg(zFile).arg(tFile));
- if (!filename.isEmpty()) {
- saveLastTraceFile(filename);
+ if (!filePath.isEmpty()) {
+ saveLastTraceFile(filePath);
Debugger::enableMainWindow(false);
connect(d->m_profilerModelManager, &QmlProfilerModelManager::recordedFeaturesChanged,
this, &QmlProfilerTool::setRecordedFeatures);
d->m_profilerModelManager->populateFileFinder();
- Core::ProgressManager::addTask(d->m_profilerModelManager->load(filename),
+ Core::ProgressManager::addTask(d->m_profilerModelManager->load(filePath.toString()),
tr("Loading Trace Data"), TASK_LOAD);
}
}
diff --git a/src/plugins/qnx/qnxsettingspage.cpp b/src/plugins/qnx/qnxsettingspage.cpp
index dc35222b9e..b8b5a8ce0a 100644
--- a/src/plugins/qnx/qnxsettingspage.cpp
+++ b/src/plugins/qnx/qnxsettingspage.cpp
@@ -35,9 +35,10 @@
#include <qtsupport/qtversionmanager.h>
-#include <QFileDialog>
#include <QMessageBox>
+using namespace Utils;
+
namespace Qnx {
namespace Internal {
@@ -107,16 +108,16 @@ void QnxSettingsWidget::addConfiguration()
{
QString filter;
if (Utils::HostOsInfo::isWindowsHost())
- filter = QLatin1String("*.bat file");
+ filter = "*.bat file";
else
- filter = QLatin1String("*.sh file");
+ filter = "*.sh file";
- const QString envFile = QFileDialog::getOpenFileName(this, tr("Select QNX Environment File"),
- QString(), filter);
+ const FilePath envFile = FileUtils::getOpenFilePath(this, tr("Select QNX Environment File"),
+ {}, filter);
if (envFile.isEmpty())
return;
- QnxConfiguration *config = new QnxConfiguration(Utils::FilePath::fromString(envFile));
+ QnxConfiguration *config = new QnxConfiguration(envFile);
if (m_qnxConfigManager->configurations().contains(config)
|| !config->isValid()) {
QMessageBox::warning(Core::ICore::dialogParent(),
diff --git a/src/plugins/qtsupport/qtoptionspage.cpp b/src/plugins/qtsupport/qtoptionspage.cpp
index ebc9a44174..c15f670307 100644
--- a/src/plugins/qtsupport/qtoptionspage.cpp
+++ b/src/plugins/qtsupport/qtoptionspage.cpp
@@ -58,7 +58,6 @@
#include <QDesktopServices>
#include <QDir>
-#include <QFileDialog>
#include <QMessageBox>
#include <QSortFilterProxyModel>
#include <QTextBrowser>
@@ -602,13 +601,12 @@ QtOptionsPageWidget::~QtOptionsPageWidget()
void QtOptionsPageWidget::addQtDir()
{
- FilePath qtVersion = FilePath::fromString(
- QFileDialog::getOpenFileName(this,
- tr("Select a qmake Executable"),
- QString(),
- BuildableHelperLibrary::filterForQmakeFileDialog(),
- 0,
- QFileDialog::DontResolveSymlinks));
+ FilePath qtVersion = FileUtils::getOpenFilePath(this,
+ tr("Select a qmake Executable"),
+ {},
+ BuildableHelperLibrary::filterForQmakeFileDialog(),
+ 0,
+ QFileDialog::DontResolveSymlinks);
if (qtVersion.isEmpty())
return;
@@ -672,14 +670,13 @@ void QtOptionsPageWidget::removeQtDir()
void QtOptionsPageWidget::editPath()
{
BaseQtVersion *current = currentVersion();
- QString dir = currentVersion()->qmakeFilePath().toFileInfo().absolutePath();
- FilePath qtVersion = FilePath::fromString(
- QFileDialog::getOpenFileName(this,
- tr("Select a qmake Executable"),
- dir,
- BuildableHelperLibrary::filterForQmakeFileDialog(),
- nullptr,
- QFileDialog::DontResolveSymlinks));
+ FilePath qtVersion =
+ FileUtils::getOpenFilePath(this,
+ tr("Select a qmake Executable"),
+ current->qmakeFilePath().absolutePath(),
+ BuildableHelperLibrary::filterForQmakeFileDialog(),
+ nullptr,
+ QFileDialog::DontResolveSymlinks);
if (qtVersion.isEmpty())
return;
BaseQtVersion *version = QtVersionFactory::createQtVersionFromQMakePath(qtVersion);
diff --git a/src/plugins/remotelinux/publickeydeploymentdialog.cpp b/src/plugins/remotelinux/publickeydeploymentdialog.cpp
index c3cdcddc6e..363d1dfddd 100644
--- a/src/plugins/remotelinux/publickeydeploymentdialog.cpp
+++ b/src/plugins/remotelinux/publickeydeploymentdialog.cpp
@@ -31,9 +31,8 @@
#include <ssh/sshconnection.h>
#include <utils/theme/theme.h>
-#include <QFileDialog>
-
using namespace ProjectExplorer;
+using namespace Utils;
namespace RemoteLinux {
namespace Internal {
@@ -50,14 +49,13 @@ using namespace Internal;
PublicKeyDeploymentDialog *PublicKeyDeploymentDialog::createDialog(
const IDevice::ConstPtr &deviceConfig, QWidget *parent)
{
- const QString &dir = QFileInfo(deviceConfig->sshParameters().privateKeyFile).path();
- const QString publicKeyFileName = QFileDialog::getOpenFileName(parent
- ? parent : Core::ICore::dialogParent(),
+ const FilePath dir = FilePath::fromString(deviceConfig->sshParameters().privateKeyFile).parentDir();
+ const FilePath publicKeyFileName = FileUtils::getOpenFilePath(nullptr,
tr("Choose Public Key File"), dir,
tr("Public Key Files (*.pub);;All Files (*)"));
if (publicKeyFileName.isEmpty())
return nullptr;
- return new PublicKeyDeploymentDialog(deviceConfig, publicKeyFileName, parent);
+ return new PublicKeyDeploymentDialog(deviceConfig, publicKeyFileName.toString(), parent);
}
PublicKeyDeploymentDialog::PublicKeyDeploymentDialog(const IDevice::ConstPtr &deviceConfig,
diff --git a/src/plugins/scxmleditor/common/mainwidget.cpp b/src/plugins/scxmleditor/common/mainwidget.cpp
index 4f8e3e0759..cbad62b8f5 100644
--- a/src/plugins/scxmleditor/common/mainwidget.cpp
+++ b/src/plugins/scxmleditor/common/mainwidget.cpp
@@ -426,11 +426,11 @@ void MainWidget::exportToImage()
.arg(lastFolder)
.arg(suggestedFileName)
.arg(QDateTime::currentDateTime().toString("yyyyMMddhhmmss"));
- const QString selectedFileName = QFileDialog::getSaveFileName(this,
- tr("Export Canvas to Image"),
- suggestedFileName,
- saveImageFileFilter());
- if (!selectedFileName.isEmpty()) {
+ const FilePath filePath = FileUtils::getSaveFilePath(this,
+ tr("Export Canvas to Image"),
+ FilePath::fromString(suggestedFileName),
+ saveImageFileFilter());
+ if (!filePath.isEmpty()) {
const QRectF r = view->scene()->itemsBoundingRect();
QImage image(r.size().toSize(), QImage::Format_ARGB32);
image.fill(QColor(0xef, 0xef, 0xef));
@@ -438,9 +438,8 @@ void MainWidget::exportToImage()
QPainter painter(&image);
view->scene()->render(&painter, QRectF(), r);
- if (image.save(selectedFileName)) {
- s->setValue(Constants::C_SETTINGS_LASTEXPORTFOLDER,
- QFileInfo(selectedFileName).absolutePath());
+ if (image.save(filePath.toString())) {
+ s->setValue(Constants::C_SETTINGS_LASTEXPORTFOLDER, filePath.parentDir().toString());
} else {
QMessageBox::warning(this, tr("Export Failed"), tr("Could not export to image."));
}
@@ -455,18 +454,17 @@ void MainWidget::saveScreenShot()
QSettings *s = Core::ICore::settings();
const QString documentsLocation = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation);
- const QString lastFolder =
- s->value(Constants::C_SETTINGS_LASTSAVESCREENSHOTFOLDER, documentsLocation).toString();
- const QString filename = QFileDialog::getSaveFileName(this,
- tr("Save Screenshot"),
- lastFolder + "/scxml_screenshot.png",
- saveImageFileFilter());
- if (!filename.isEmpty()) {
+ const FilePath lastFolder = FilePath::fromVariant(
+ s->value(Constants::C_SETTINGS_LASTSAVESCREENSHOTFOLDER, documentsLocation));
+ const FilePath filePath = FileUtils::getSaveFilePath(this,
+ tr("Save Screenshot"),
+ lastFolder / "scxml_screenshot.png",
+ saveImageFileFilter());
+ if (!filePath.isEmpty()) {
const QImage image = view->view()->grabView();
- if (image.save(filename)) {
- s->setValue(Constants::C_SETTINGS_LASTSAVESCREENSHOTFOLDER,
- QFileInfo(filename).absolutePath());
+ if (image.save(filePath.toString())) {
+ s->setValue(Constants::C_SETTINGS_LASTSAVESCREENSHOTFOLDER, filePath.parentDir().toVariant());
} else {
QMessageBox::warning(this, tr("Saving Failed"), tr("Could not save the screenshot."));
}
diff --git a/src/plugins/scxmleditor/outputpane/errorwidget.cpp b/src/plugins/scxmleditor/outputpane/errorwidget.cpp
index bd53724e7f..2fb79fd6d0 100644
--- a/src/plugins/scxmleditor/outputpane/errorwidget.cpp
+++ b/src/plugins/scxmleditor/outputpane/errorwidget.cpp
@@ -41,6 +41,7 @@
#include <utils/utilsicons.h>
using namespace ScxmlEditor::OutputPane;
+using namespace Utils;
ErrorWidget::ErrorWidget(QWidget *parent)
: OutputPane(parent)
@@ -203,13 +204,13 @@ QString ErrorWidget::modifyExportedValue(const QString &val)
void ErrorWidget::exportWarnings()
{
- QString fileName = QFileDialog::getSaveFileName(this, tr("Export to File"), QString(), tr("CSV files (*.csv)"));
+ FilePath fileName = FileUtils::getSaveFilePath(this, tr("Export to File"), {}, tr("CSV files (*.csv)"));
if (fileName.isEmpty())
return;
- QFile file(fileName);
+ QFile file(fileName.toString());
if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) {
- QMessageBox::warning(this, tr("Export Failed"), tr("Cannot open file %1.").arg(fileName));
+ QMessageBox::warning(this, tr("Export Failed"), tr("Cannot open file %1.").arg(fileName.toUserOutput()));
file.close();
return;
}
diff --git a/src/plugins/texteditor/codestyleselectorwidget.cpp b/src/plugins/texteditor/codestyleselectorwidget.cpp
index 2d6f9dd2e0..3e06dcea10 100644
--- a/src/plugins/texteditor/codestyleselectorwidget.cpp
+++ b/src/plugins/texteditor/codestyleselectorwidget.cpp
@@ -43,6 +43,7 @@
#include <QDebug>
using namespace TextEditor;
+using namespace Utils;
namespace TextEditor {
namespace Internal {
@@ -150,8 +151,7 @@ CodeStyleDialog::~CodeStyleDialog()
delete m_codeStyle;
}
-}
-}
+} // Internal
CodeStyleSelectorWidget::CodeStyleSelectorWidget(ICodeStylePreferencesFactory *factory, QWidget *parent) :
QWidget(parent),
@@ -326,9 +326,9 @@ void CodeStyleSelectorWidget::slotRemoveClicked()
void CodeStyleSelectorWidget::slotImportClicked()
{
- const Utils::FilePath fileName =
- Utils::FilePath::fromString(QFileDialog::getOpenFileName(this, tr("Import Code Style"), QString(),
- tr("Code styles (*.xml);;All files (*)")));
+ const FilePath fileName =
+ FileUtils::getOpenFilePath(this, tr("Import Code Style"), {},
+ tr("Code styles (*.xml);;All files (*)"));
if (!fileName.isEmpty()) {
CodeStylePool *codeStylePool = m_codeStyle->delegatingPool();
ICodeStylePreferences *importedStyle = codeStylePool->importCodeStyle(fileName);
@@ -343,12 +343,12 @@ void CodeStyleSelectorWidget::slotImportClicked()
void CodeStyleSelectorWidget::slotExportClicked()
{
ICodeStylePreferences *currentPreferences = m_codeStyle->currentPreferences();
- const QString fileName = QFileDialog::getSaveFileName(this, tr("Export Code Style"),
- QString::fromUtf8(currentPreferences->id() + ".xml"),
+ const FilePath filePath = FileUtils::getSaveFilePath(this, tr("Export Code Style"),
+ FilePath::fromString(QString::fromUtf8(currentPreferences->id() + ".xml")),
tr("Code styles (*.xml);;All files (*)"));
- if (!fileName.isEmpty()) {
+ if (!filePath.isEmpty()) {
CodeStylePool *codeStylePool = m_codeStyle->delegatingPool();
- codeStylePool->exportCodeStyle(Utils::FilePath::fromString(fileName), currentPreferences);
+ codeStylePool->exportCodeStyle(filePath, currentPreferences);
}
}
@@ -422,4 +422,6 @@ QString CodeStyleSelectorWidget::displayName(ICodeStylePreferences *codeStyle) c
return name;
}
+} // TextEditor
+
#include "codestyleselectorwidget.moc"
diff --git a/src/plugins/valgrind/callgrindtool.cpp b/src/plugins/valgrind/callgrindtool.cpp
index 148f030772..0c3ed37883 100644
--- a/src/plugins/valgrind/callgrindtool.cpp
+++ b/src/plugins/valgrind/callgrindtool.cpp
@@ -874,17 +874,18 @@ void CallgrindToolPrivate::slotRequestDump()
void CallgrindToolPrivate::loadExternalLogFile()
{
- const QString filePath = QFileDialog::getOpenFileName(
- ICore::dialogParent(),
+ const FilePath filePath = FileUtils::getOpenFilePath(
+ nullptr,
CallgrindTool::tr("Open Callgrind Log File"),
- QString(),
+ {},
CallgrindTool::tr("Callgrind Output (callgrind.out*);;All Files (*)"));
if (filePath.isEmpty())
return;
- QFile logFile(filePath);
+ QFile logFile(filePath.toString());
if (!logFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
- QString msg = CallgrindTool::tr("Callgrind: Failed to open file for reading: %1").arg(filePath);
+ QString msg = CallgrindTool::tr("Callgrind: Failed to open file for reading: %1")
+ .arg(filePath.toUserOutput());
TaskHub::addTask(Task::Error, msg, Debugger::Constants::ANALYZERTASK_ID);
TaskHub::requestPopup();
return;
diff --git a/src/plugins/valgrind/memchecktool.cpp b/src/plugins/valgrind/memchecktool.cpp
index 9fcb7919a3..366b3dc178 100644
--- a/src/plugins/valgrind/memchecktool.cpp
+++ b/src/plugins/valgrind/memchecktool.cpp
@@ -1017,16 +1017,16 @@ void MemcheckToolPrivate::loadShowXmlLogFile(const QString &filePath, const QStr
void MemcheckToolPrivate::loadExternalXmlLogFile()
{
- const QString filePath = QFileDialog::getOpenFileName(
- ICore::dialogParent(),
+ const FilePath filePath = FileUtils::getOpenFilePath(
+ nullptr,
MemcheckTool::tr("Open Memcheck XML Log File"),
- QString(),
+ {},
MemcheckTool::tr("XML Files (*.xml);;All Files (*)"));
if (filePath.isEmpty())
return;
m_exitMsg.clear();
- loadXmlLogFile(filePath);
+ loadXmlLogFile(filePath.toString());
}
void MemcheckToolPrivate::loadXmlLogFile(const QString &filePath)
diff --git a/src/plugins/valgrind/valgrindsettings.cpp b/src/plugins/valgrind/valgrindsettings.cpp
index 8d5bcb573a..c5a2238c41 100644
--- a/src/plugins/valgrind/valgrindsettings.cpp
+++ b/src/plugins/valgrind/valgrindsettings.cpp
@@ -38,7 +38,6 @@
#include <valgrind/xmlprotocol/error.h>
#include <QDebug>
-#include <QFileDialog>
#include <QListView>
#include <QPushButton>
#include <QSettings>
@@ -104,16 +103,16 @@ void SuppressionAspectPrivate::slotAddSuppression()
{
ValgrindGlobalSettings *conf = ValgrindGlobalSettings::instance();
QTC_ASSERT(conf, return);
- const QStringList files =
- QFileDialog::getOpenFileNames(Core::ICore::dialogParent(),
+ const FilePaths files =
+ FileUtils::getOpenFilePaths(nullptr,
tr("Valgrind Suppression Files"),
- conf->lastSuppressionDirectory.value(),
+ conf->lastSuppressionDirectory.filePath(),
tr("Valgrind Suppression File (*.supp);;All Files (*)"));
//dialog.setHistory(conf->lastSuppressionDialogHistory());
if (!files.isEmpty()) {
- for (const QString &file : files)
- m_model.appendRow(new QStandardItem(file));
- conf->lastSuppressionDirectory.setValue(QFileInfo(files.at(0)).absolutePath());
+ for (const FilePath &file : files)
+ m_model.appendRow(new QStandardItem(file.toString()));
+ conf->lastSuppressionDirectory.setFilePath(files.at(0).absolutePath());
//conf->setLastSuppressionDialogHistory(dialog.history());
if (!isGlobal)
q->apply();