diff options
Diffstat (limited to 'src/plugins/coreplugin/dialogs')
11 files changed, 62 insertions, 67 deletions
diff --git a/src/plugins/coreplugin/dialogs/filepropertiesdialog.cpp b/src/plugins/coreplugin/dialogs/filepropertiesdialog.cpp index 33d2123238..fef059d7fa 100644 --- a/src/plugins/coreplugin/dialogs/filepropertiesdialog.cpp +++ b/src/plugins/coreplugin/dialogs/filepropertiesdialog.cpp @@ -37,7 +37,7 @@ #include <QFileInfo> #include <QLocale> -FilePropertiesDialog::FilePropertiesDialog(const Utils::FileName &fileName, QWidget *parent) : +FilePropertiesDialog::FilePropertiesDialog(const Utils::FilePath &fileName, QWidget *parent) : QDialog(parent), m_ui(new Ui::FilePropertiesDialog), m_fileName(fileName.toString()) @@ -78,11 +78,7 @@ void FilePropertiesDialog::refresh() m_ui->owner->setText(fileInfo.owner()); m_ui->group->setText(fileInfo.group()); -#if QT_VERSION >= QT_VERSION_CHECK(5, 10, 0) m_ui->size->setText(locale.formattedDataSize(fileInfo.size())); -#else - m_ui->size->setText(tr("%1 Bytes").arg(locale.toString(fileInfo.size()))); -#endif m_ui->readable->setChecked(fileInfo.isReadable()); m_ui->writable->setChecked(fileInfo.isWritable()); m_ui->executable->setChecked(fileInfo.isExecutable()); diff --git a/src/plugins/coreplugin/dialogs/filepropertiesdialog.h b/src/plugins/coreplugin/dialogs/filepropertiesdialog.h index db55abeb0e..95d8bfbceb 100644 --- a/src/plugins/coreplugin/dialogs/filepropertiesdialog.h +++ b/src/plugins/coreplugin/dialogs/filepropertiesdialog.h @@ -41,7 +41,7 @@ class FilePropertiesDialog : public QDialog Q_OBJECT public: - explicit FilePropertiesDialog(const Utils::FileName &fileName, QWidget *parent = nullptr); + explicit FilePropertiesDialog(const Utils::FilePath &fileName, QWidget *parent = nullptr); ~FilePropertiesDialog() override; private: diff --git a/src/plugins/coreplugin/dialogs/newdialog.cpp b/src/plugins/coreplugin/dialogs/newdialog.cpp index e89ea9846c..e691d826ed 100644 --- a/src/plugins/coreplugin/dialogs/newdialog.cpp +++ b/src/plugins/coreplugin/dialogs/newdialog.cpp @@ -231,7 +231,7 @@ NewDialog::NewDialog(QWidget *parent) : connect(m_ui->buttonBox, &QDialogButtonBox::rejected, this, &NewDialog::reject); connect(m_ui->comboBox, - static_cast<void (QComboBox::*)(const QString &)>(&QComboBox::currentIndexChanged), + QOverload<const QString &>::of(&QComboBox::currentIndexChanged), this, &NewDialog::setSelectedPlatform); } diff --git a/src/plugins/coreplugin/dialogs/openwithdialog.cpp b/src/plugins/coreplugin/dialogs/openwithdialog.cpp index 7452fdb319..526a32f7e5 100644 --- a/src/plugins/coreplugin/dialogs/openwithdialog.cpp +++ b/src/plugins/coreplugin/dialogs/openwithdialog.cpp @@ -37,7 +37,7 @@ OpenWithDialog::OpenWithDialog(const QString &fileName, QWidget *parent) { setupUi(this); setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); - label->setText(tr("Open file \"%1\" with:").arg(Utils::FileName::fromString(fileName).fileName())); + label->setText(tr("Open file \"%1\" with:").arg(Utils::FilePath::fromString(fileName).fileName())); buttonBox->button(QDialogButtonBox::Ok)->setDefault(true); connect(buttonBox->button(QDialogButtonBox::Ok), &QAbstractButton::clicked, diff --git a/src/plugins/coreplugin/dialogs/openwithdialog.h b/src/plugins/coreplugin/dialogs/openwithdialog.h index a3f0db0366..1833af8383 100644 --- a/src/plugins/coreplugin/dialogs/openwithdialog.h +++ b/src/plugins/coreplugin/dialogs/openwithdialog.h @@ -29,8 +29,6 @@ #include "ui_openwithdialog.h" namespace Core { - - namespace Internal { // Present the user with a file name and a list of available diff --git a/src/plugins/coreplugin/dialogs/readonlyfilesdialog.cpp b/src/plugins/coreplugin/dialogs/readonlyfilesdialog.cpp index af41349cff..9e9a8cc428 100644 --- a/src/plugins/coreplugin/dialogs/readonlyfilesdialog.cpp +++ b/src/plugins/coreplugin/dialogs/readonlyfilesdialog.cpp @@ -33,6 +33,7 @@ #include <coreplugin/iversioncontrol.h> #include <coreplugin/vcsmanager.h> +#include <utils/algorithm.h> #include <utils/fileutils.h> #include <utils/hostosinfo.h> #include <utils/stringutils.h> @@ -45,6 +46,8 @@ #include <QPushButton> #include <QRadioButton> +using namespace Utils; + namespace Core { namespace Internal { @@ -65,8 +68,8 @@ public: NumberOfColumns }; - void initDialog(const QStringList &fileNames); - void promptFailWarning(const QStringList &files, ReadOnlyFilesDialog::ReadOnlyResult type) const; + void initDialog(const FilePathList &filePaths); + void promptFailWarning(const FilePathList &files, ReadOnlyFilesDialog::ReadOnlyResult type) const; QRadioButton *createRadioButtonForItem(QTreeWidgetItem *item, QButtonGroup *group, ReadOnlyFilesTreeColumn type); void setAll(int index); @@ -77,14 +80,14 @@ public: // Buttongroups containing the operation for one file. struct ButtonGroupForFile { - QString fileName; + FilePath filePath; QButtonGroup *group; }; QList <ButtonGroupForFile> buttonGroups; QMap <int, int> setAllIndexForOperation; // The version control systems for every file, if the file isn't in VCS the value is 0. - QHash <QString, IVersionControl*> versionControls; + QHash<FilePath, IVersionControl*> versionControls; // Define if some specific operations should be allowed to make the files writable. const bool useSaveAs; @@ -140,19 +143,19 @@ using namespace Internal; * and Save As which is used to save the changes to a document in another file. */ -ReadOnlyFilesDialog::ReadOnlyFilesDialog(const QList<QString> &fileNames, QWidget *parent) +ReadOnlyFilesDialog::ReadOnlyFilesDialog(const Utils::FilePathList &filePaths, QWidget *parent) : QDialog(parent) , d(new ReadOnlyFilesDialogPrivate(this)) { setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); - d->initDialog(fileNames); + d->initDialog(filePaths); } -ReadOnlyFilesDialog::ReadOnlyFilesDialog(const QString &fileName, QWidget *parent) +ReadOnlyFilesDialog::ReadOnlyFilesDialog(const Utils::FilePath &filePath, QWidget *parent) : QDialog(parent) , d(new ReadOnlyFilesDialogPrivate(this)) { - d->initDialog(QStringList(fileName)); + d->initDialog({filePath}); } ReadOnlyFilesDialog::ReadOnlyFilesDialog(IDocument *document, QWidget *parent, @@ -160,16 +163,16 @@ ReadOnlyFilesDialog::ReadOnlyFilesDialog(IDocument *document, QWidget *parent, : QDialog(parent) , d(new ReadOnlyFilesDialogPrivate(this, document, displaySaveAs)) { - d->initDialog(QStringList(document->filePath().toString())); + d->initDialog({document->filePath()}); } ReadOnlyFilesDialog::ReadOnlyFilesDialog(const QList<IDocument *> &documents, QWidget *parent) : QDialog(parent) , d(new ReadOnlyFilesDialogPrivate(this)) { - QStringList files; - foreach (IDocument *document, documents) - files << document->filePath().toString(); + FilePathList files; + for (IDocument *document : documents) + files << document->filePath(); d->initDialog(files); } @@ -202,7 +205,7 @@ void ReadOnlyFilesDialog::setShowFailWarning(bool show, const QString &warning) * Opens a message box with an error description according to the type. * \internal */ -void ReadOnlyFilesDialogPrivate::promptFailWarning(const QStringList &files, ReadOnlyFilesDialog::ReadOnlyResult type) const +void ReadOnlyFilesDialogPrivate::promptFailWarning(const FilePathList &files, ReadOnlyFilesDialog::ReadOnlyResult type) const { if (files.isEmpty()) return; @@ -210,7 +213,7 @@ void ReadOnlyFilesDialogPrivate::promptFailWarning(const QStringList &files, Rea QString message; QString details; if (files.count() == 1) { - const QString file = files.first(); + const FilePath file = files.first(); switch (type) { case ReadOnlyFilesDialog::RO_OpenVCS: { if (IVersionControl *vc = versionControls[file]) { @@ -218,31 +221,31 @@ void ReadOnlyFilesDialogPrivate::promptFailWarning(const QStringList &files, Rea title = tr("Failed to %1 File").arg(openText); message = tr("%1 file %2 from version control system %3 failed.") .arg(openText) - .arg(QDir::toNativeSeparators(file)) + .arg(file.toUserOutput()) .arg(vc->displayName()) - + QLatin1Char('\n') + + '\n' + failWarning; } else { title = tr("No Version Control System Found"); message = tr("Cannot open file %1 from version control system.\n" "No version control system found.") - .arg(QDir::toNativeSeparators(file)) - + QLatin1Char('\n') - + failWarning;; + .arg(file.toUserOutput()) + + '\n' + + failWarning; } break; } case ReadOnlyFilesDialog::RO_MakeWritable: title = tr("Cannot Set Permissions"); message = tr("Cannot set permissions for %1 to writable.") - .arg(QDir::toNativeSeparators(file)) - + QLatin1Char('\n') + .arg(file.toUserOutput()) + + '\n' + failWarning; break; case ReadOnlyFilesDialog::RO_SaveAs: title = tr("Cannot Save File"); - message = tr("Cannot save file %1").arg(QDir::toNativeSeparators(file)) - + QLatin1Char('\n') + message = tr("Cannot save file %1").arg(file.toUserOutput()) + + '\n' + failWarning; break; default: @@ -254,7 +257,7 @@ void ReadOnlyFilesDialogPrivate::promptFailWarning(const QStringList &files, Rea title = tr("Could Not Change Permissions on Some Files"); message = failWarning + QLatin1Char('\n') + tr("See details for a complete list of files."); - details = files.join(QLatin1Char('\n')); + details = Utils::transform(files, &FilePath::toString).join('\n'); } QMessageBox msgBox(QMessageBox::Warning, title, message, QMessageBox::Ok, ICore::dialogParent()); @@ -278,34 +281,34 @@ int ReadOnlyFilesDialog::exec() return RO_Cancel; ReadOnlyResult result = RO_Cancel; - QStringList failedToMakeWritable; - foreach (ReadOnlyFilesDialogPrivate::ButtonGroupForFile buttongroup, d->buttonGroups) { + FilePathList failedToMakeWritable; + for (ReadOnlyFilesDialogPrivate::ButtonGroupForFile buttongroup : qAsConst(d->buttonGroups)) { result = static_cast<ReadOnlyResult>(buttongroup.group->checkedId()); switch (result) { case RO_MakeWritable: - if (!Utils::FileUtils::makeWritable(Utils::FileName(QFileInfo(buttongroup.fileName)))) { - failedToMakeWritable << buttongroup.fileName; + if (!Utils::FileUtils::makeWritable(buttongroup.filePath)) { + failedToMakeWritable << buttongroup.filePath; continue; } break; case RO_OpenVCS: - if (!d->versionControls[buttongroup.fileName]->vcsOpen(buttongroup.fileName)) { - failedToMakeWritable << buttongroup.fileName; + if (!d->versionControls[buttongroup.filePath]->vcsOpen(buttongroup.filePath.toString())) { + failedToMakeWritable << buttongroup.filePath; continue; } break; case RO_SaveAs: if (!EditorManagerPrivate::saveDocumentAs(d->document)) { - failedToMakeWritable << buttongroup.fileName; + failedToMakeWritable << buttongroup.filePath; continue; } break; default: - failedToMakeWritable << buttongroup.fileName; + failedToMakeWritable << buttongroup.filePath; continue; } - if (!QFileInfo(buttongroup.fileName).isWritable()) - failedToMakeWritable << buttongroup.fileName; + if (!buttongroup.filePath.toFileInfo().isWritable()) + failedToMakeWritable << buttongroup.filePath; } if (!failedToMakeWritable.isEmpty()) { if (d->showWarnings) @@ -381,11 +384,11 @@ void ReadOnlyFilesDialogPrivate::updateSelectAll() /*! * Adds files to the dialog and checks for a possible operation to make the file * writable. - * \a fileNames contains the list of the files that should be added to the + * \a filePaths contains the list of the files that should be added to the * dialog. * \internal */ -void ReadOnlyFilesDialogPrivate::initDialog(const QStringList &fileNames) +void ReadOnlyFilesDialogPrivate::initDialog(const FilePathList &filePaths) { ui.setupUi(q); ui.buttonBox->addButton(tr("Change &Permission"), QDialogButtonBox::AcceptRole); @@ -394,16 +397,16 @@ void ReadOnlyFilesDialogPrivate::initDialog(const QStringList &fileNames) QString vcsOpenTextForAll; QString vcsMakeWritableTextForAll; bool useMakeWritable = false; - foreach (const QString &fileName, fileNames) { - const QFileInfo info = QFileInfo(fileName); + for (const FilePath &filePath : filePaths) { + const QFileInfo info = filePath.toFileInfo(); const QString visibleName = info.fileName(); const QString directory = info.absolutePath(); // Setup a default entry with filename folder and make writable radio button. auto item = new QTreeWidgetItem(ui.treeWidget); item->setText(FileName, visibleName); - item->setIcon(FileName, FileIconProvider::icon(fileName)); - item->setText(Folder, Utils::FileUtils::shortNativePath(Utils::FileName(QFileInfo(directory)))); + item->setIcon(FileName, FileIconProvider::icon(info)); + item->setText(Folder, Utils::FilePath::fromFileInfo(directory).shortNativePath()); auto radioButtonGroup = new QButtonGroup; // Add a button for opening the file with a version control system @@ -411,7 +414,7 @@ void ReadOnlyFilesDialogPrivate::initDialog(const QStringList &fileNames) IVersionControl *versionControlForFile = VcsManager::findVersionControlForDirectory(directory); const bool fileManagedByVCS = versionControlForFile - && versionControlForFile->openSupportMode(fileName) != IVersionControl::NoOpen; + && versionControlForFile->openSupportMode(filePath.toString()) != IVersionControl::NoOpen; if (fileManagedByVCS) { const QString vcsOpenTextForFile = Utils::stripAccelerator(versionControlForFile->vcsOpenText()); @@ -429,7 +432,7 @@ void ReadOnlyFilesDialogPrivate::initDialog(const QStringList &fileNames) vcsMakeWritableTextForAll.clear(); } // Add make writable if it is supported by the reposetory. - if (versionControlForFile->openSupportMode(fileName) == IVersionControl::OpenOptional) { + if (versionControlForFile->openSupportMode(filePath.toString()) == IVersionControl::OpenOptional) { useMakeWritable = true; createRadioButtonForItem(item, radioButtonGroup, MakeWritable); } @@ -442,15 +445,12 @@ void ReadOnlyFilesDialogPrivate::initDialog(const QStringList &fileNames) if (useSaveAs) createRadioButtonForItem(item, radioButtonGroup, SaveAs); // If the file is managed by a version control system save the vcs for this file. - versionControls[fileName] = fileManagedByVCS ? versionControlForFile : nullptr; + versionControls[filePath] = fileManagedByVCS ? versionControlForFile : nullptr; // Also save the buttongroup for every file to get the result for each entry. - ReadOnlyFilesDialogPrivate::ButtonGroupForFile groupForFile; - groupForFile.fileName = fileName; - groupForFile.group = radioButtonGroup; - buttonGroups.append(groupForFile); - QObject::connect(radioButtonGroup, static_cast<void (QButtonGroup::*)(int)>(&QButtonGroup::buttonClicked), - [this](int) { updateSelectAll(); }); + buttonGroups.append({filePath, radioButtonGroup}); + QObject::connect(radioButtonGroup, QOverload<int>::of(&QButtonGroup::buttonClicked), + [this] { updateSelectAll(); }); } // Apply the Mac file dialog style. @@ -474,7 +474,7 @@ void ReadOnlyFilesDialogPrivate::initDialog(const QStringList &fileNames) } // If there is just one file entry, there is no need to show the select all combo box - if (fileNames.count() < 2) { + if (filePaths.count() < 2) { ui.setAll->setVisible(false); ui.setAllLabel->setVisible(false); ui.verticalLayout->removeItem(ui.setAllLayout); @@ -508,7 +508,7 @@ void ReadOnlyFilesDialogPrivate::initDialog(const QStringList &fileNames) ui.setAll->addItem(saveAsText); setAllIndexForOperation[SaveAs] = ui.setAll->count() - 1; } - QObject::connect(ui.setAll, static_cast<void (QComboBox::*)(int)>(&QComboBox::activated), + QObject::connect(ui.setAll, QOverload<int>::of(&QComboBox::activated), [this](int index) { setAll(index); }); // Filter which columns should be visible and resize them to content. diff --git a/src/plugins/coreplugin/dialogs/readonlyfilesdialog.h b/src/plugins/coreplugin/dialogs/readonlyfilesdialog.h index 6bb9afa7f5..2baf2fa883 100644 --- a/src/plugins/coreplugin/dialogs/readonlyfilesdialog.h +++ b/src/plugins/coreplugin/dialogs/readonlyfilesdialog.h @@ -27,6 +27,8 @@ #include <coreplugin/core_global.h> +#include <utils/fileutils.h> + #include <QDialog> namespace Core { @@ -57,9 +59,9 @@ public: RO_SaveAs = SaveAs }; - explicit ReadOnlyFilesDialog(const QList<QString> &fileNames, + explicit ReadOnlyFilesDialog(const Utils::FilePathList &filePaths, QWidget *parent = nullptr); - explicit ReadOnlyFilesDialog(const QString &fileName, + explicit ReadOnlyFilesDialog(const Utils::FilePath &filePath, QWidget * parent = nullptr); explicit ReadOnlyFilesDialog(IDocument *document, QWidget * parent = nullptr, diff --git a/src/plugins/coreplugin/dialogs/saveitemsdialog.cpp b/src/plugins/coreplugin/dialogs/saveitemsdialog.cpp index f3e476fed3..94c0bbddc1 100644 --- a/src/plugins/coreplugin/dialogs/saveitemsdialog.cpp +++ b/src/plugins/coreplugin/dialogs/saveitemsdialog.cpp @@ -81,7 +81,7 @@ SaveItemsDialog::SaveItemsDialog(QWidget *parent, << visibleName << QDir::toNativeSeparators(directory)); if (!fileName.isEmpty()) item->setIcon(0, FileIconProvider::icon(fileName)); - item->setData(0, Qt::UserRole, qVariantFromValue(document)); + item->setData(0, Qt::UserRole, QVariant::fromValue(document)); } m_ui.treeWidget->resizeColumnToContents(0); diff --git a/src/plugins/coreplugin/dialogs/saveitemsdialog.h b/src/plugins/coreplugin/dialogs/saveitemsdialog.h index 37d321fade..f62af24768 100644 --- a/src/plugins/coreplugin/dialogs/saveitemsdialog.h +++ b/src/plugins/coreplugin/dialogs/saveitemsdialog.h @@ -36,7 +36,6 @@ class IDocument; namespace Internal { - class SaveItemsDialog : public QDialog { Q_OBJECT diff --git a/src/plugins/coreplugin/dialogs/settingsdialog.cpp b/src/plugins/coreplugin/dialogs/settingsdialog.cpp index 596d498875..8057a9e48a 100644 --- a/src/plugins/coreplugin/dialogs/settingsdialog.cpp +++ b/src/plugins/coreplugin/dialogs/settingsdialog.cpp @@ -726,7 +726,7 @@ void SettingsDialog::done(int val) QSettings *settings = ICore::settings(); settings->setValue(QLatin1String(pageKeyC), m_currentPage.toSetting()); - ICore::saveSettings(); // save all settings + ICore::saveSettings(ICore::SettingsDialogDone); // save all settings // exit event loops in reverse order of addition for (QEventLoop *eventLoop : m_eventLoops) diff --git a/src/plugins/coreplugin/dialogs/shortcutsettings.cpp b/src/plugins/coreplugin/dialogs/shortcutsettings.cpp index 675996881d..d740b6ca20 100644 --- a/src/plugins/coreplugin/dialogs/shortcutsettings.cpp +++ b/src/plugins/coreplugin/dialogs/shortcutsettings.cpp @@ -514,7 +514,7 @@ void ShortcutSettingsWidget::initialize() if (s->m_cmd->defaultKeySequence() != s->m_key) setModified(item, true); - item->setData(0, Qt::UserRole, qVariantFromValue(s)); + item->setData(0, Qt::UserRole, QVariant::fromValue(s)); markCollisions(s); } |