diff options
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/coreplugin/locator/directoryfilter.cpp | 45 | ||||
-rw-r--r-- | src/plugins/coreplugin/locator/directoryfilter.h | 10 | ||||
-rw-r--r-- | src/plugins/projectexplorer/allprojectsfind.cpp | 29 | ||||
-rw-r--r-- | src/plugins/projectexplorer/currentprojectfind.cpp | 21 | ||||
-rw-r--r-- | src/plugins/projectexplorer/filesinallprojectsfind.cpp | 3 | ||||
-rw-r--r-- | src/plugins/projectexplorer/projectexplorer.cpp | 5 | ||||
-rw-r--r-- | src/plugins/texteditor/findincurrentfile.cpp | 8 | ||||
-rw-r--r-- | src/plugins/texteditor/findinfiles.cpp | 4 | ||||
-rw-r--r-- | src/plugins/texteditor/findinopenfiles.cpp | 9 | ||||
-rw-r--r-- | src/plugins/texteditor/textdocument.cpp | 12 | ||||
-rw-r--r-- | src/plugins/texteditor/textdocument.h | 4 | ||||
-rw-r--r-- | src/plugins/texteditor/texteditor.cpp | 8 |
12 files changed, 85 insertions, 73 deletions
diff --git a/src/plugins/coreplugin/locator/directoryfilter.cpp b/src/plugins/coreplugin/locator/directoryfilter.cpp index c1dcf9cdff..a1d0e17bfd 100644 --- a/src/plugins/coreplugin/locator/directoryfilter.cpp +++ b/src/plugins/coreplugin/locator/directoryfilter.cpp @@ -57,8 +57,11 @@ void DirectoryFilter::saveState(QJsonObject &object) const if (displayName() != defaultDisplayName()) object.insert(kDisplayNameKey, displayName()); - if (!m_directories.isEmpty()) - object.insert(kDirectoriesKey, QJsonArray::fromStringList(m_directories)); + if (!m_directories.isEmpty()) { + object.insert(kDirectoriesKey, + QJsonArray::fromStringList( + Utils::transform(m_directories, &FilePath::toString))); + } if (m_filters != kFiltersDefault) object.insert(kFiltersKey, QJsonArray::fromStringList(m_filters)); if (!m_files.isEmpty()) @@ -74,11 +77,17 @@ static QStringList toStringList(const QJsonArray &array) return Utils::transform(array.toVariantList(), &QVariant::toString); } +static FilePaths toFilePaths(const QJsonArray &array) +{ + return Utils::transform(array.toVariantList(), + [](const QVariant &v) { return FilePath::fromString(v.toString()); }); +} + void DirectoryFilter::restoreState(const QJsonObject &object) { QMutexLocker locker(&m_lock); setDisplayName(object.value(kDisplayNameKey).toString(defaultDisplayName())); - m_directories = toStringList(object.value(kDirectoriesKey).toArray()); + m_directories = toFilePaths(object.value(kDirectoriesKey).toArray()); m_filters = toStringList( object.value(kFiltersKey).toArray(QJsonArray::fromStringList(kFiltersDefault))); m_files = FileUtils::toFilePathList(toStringList(object.value(kFilesKey).toArray())); @@ -112,8 +121,11 @@ void DirectoryFilter::restoreState(const QByteArray &state) else m_exclusionFilters.clear(); - if (m_isCustomFilter) - m_directories = directories; + if (m_isCustomFilter) { + m_directories = Utils::transform(directories, [](const QString &d) { + return FilePath::fromString(d); + }); + } setDisplayName(name); setShortcutString(shortcut); setIncludedByDefault(defaultFilter); @@ -164,7 +176,7 @@ bool DirectoryFilter::openConfigDialog(QWidget *parent, bool &needsRefresh) m_ui->directoryList->clear(); // Note: assuming we only change m_directories in the Gui thread, // we don't need to protect it here with mutex - m_ui->directoryList->addItems(m_directories); + m_ui->directoryList->addItems(Utils::transform(m_directories, &FilePath::toString)); m_ui->nameLabel->setVisible(m_isCustomFilter); m_ui->nameEdit->setVisible(m_isCustomFilter); m_ui->directoryLabel->setVisible(m_isCustomFilter); @@ -192,7 +204,7 @@ bool DirectoryFilter::openConfigDialog(QWidget *parent, bool &needsRefresh) if (dialog.exec() == QDialog::Accepted) { QMutexLocker locker(&m_lock); bool directoriesChanged = false; - const QStringList oldDirectories = m_directories; + const FilePaths oldDirectories = m_directories; const QStringList oldFilters = m_filters; const QStringList oldExclusionFilters = m_exclusionFilters; setDisplayName(m_ui->nameEdit->text().trimmed()); @@ -202,7 +214,7 @@ bool DirectoryFilter::openConfigDialog(QWidget *parent, bool &needsRefresh) if (oldCount != newCount) directoriesChanged = true; for (int i = 0; i < newCount; ++i) { - m_directories.append(m_ui->directoryList->item(i)->text()); + m_directories.append(FilePath::fromString(m_ui->directoryList->item(i)->text())); if (!directoriesChanged && m_directories.at(i) != oldDirectories.at(i)) directoriesChanged = true; } @@ -258,7 +270,8 @@ void DirectoryFilter::updateFileIterator() void DirectoryFilter::refresh(QFutureInterface<void> &future) { - QStringList directories, filters, exclusionFilters; + FilePaths directories; + QStringList filters, exclusionFilters; { QMutexLocker locker(&m_lock); if (m_directories.isEmpty()) { @@ -280,7 +293,7 @@ void DirectoryFilter::refresh(QFutureInterface<void> &future) for (auto it = subDirIterator.begin(); it != end; ++it) { if (future.isCanceled()) break; - filesFound << Utils::FilePath::fromString((*it).filePath); + filesFound << (*it).filePath; if (future.isProgressUpdateNeeded() || future.progressValue() == 0 /*workaround for regression in Qt*/) { future.setProgressValueAndText(subDirIterator.currentProgress(), @@ -303,7 +316,7 @@ void DirectoryFilter::setIsCustomFilter(bool value) m_isCustomFilter = value; } -void DirectoryFilter::setDirectories(const QStringList &directories) +void DirectoryFilter::setDirectories(const FilePaths &directories) { if (directories == m_directories) return; @@ -314,19 +327,19 @@ void DirectoryFilter::setDirectories(const QStringList &directories) Internal::Locator::instance()->refresh({this}); } -void DirectoryFilter::addDirectory(const QString &directory) +void DirectoryFilter::addDirectory(const FilePath &directory) { - setDirectories(m_directories + QStringList(directory)); + setDirectories(m_directories + FilePaths{directory}); } -void DirectoryFilter::removeDirectory(const QString &directory) +void DirectoryFilter::removeDirectory(const FilePath &directory) { - QStringList directories = m_directories; + FilePaths directories = m_directories; directories.removeOne(directory); setDirectories(directories); } -QStringList DirectoryFilter::directories() const +FilePaths DirectoryFilter::directories() const { return m_directories; } diff --git a/src/plugins/coreplugin/locator/directoryfilter.h b/src/plugins/coreplugin/locator/directoryfilter.h index b3b06768d4..a0fa5da09c 100644 --- a/src/plugins/coreplugin/locator/directoryfilter.h +++ b/src/plugins/coreplugin/locator/directoryfilter.h @@ -30,10 +30,10 @@ public: void refresh(QFutureInterface<void> &future) override; void setIsCustomFilter(bool value); - void setDirectories(const QStringList &directories); - void addDirectory(const QString &directory); - void removeDirectory(const QString &directory); - QStringList directories() const; + void setDirectories(const Utils::FilePaths &directories); + void addDirectory(const Utils::FilePath &directory); + void removeDirectory(const Utils::FilePath &directory); + Utils::FilePaths directories() const; void setFilters(const QStringList &filters); void setExclusionFilters(const QStringList &exclusionFilters); @@ -48,7 +48,7 @@ private: void updateOptionButtons(); void updateFileIterator(); - QStringList m_directories; + Utils::FilePaths m_directories; QStringList m_filters; QStringList m_exclusionFilters; // Our config dialog, uses in addDirectory and editDirectory diff --git a/src/plugins/projectexplorer/allprojectsfind.cpp b/src/plugins/projectexplorer/allprojectsfind.cpp index f53f177519..a7fa9649b7 100644 --- a/src/plugins/projectexplorer/allprojectsfind.cpp +++ b/src/plugins/projectexplorer/allprojectsfind.cpp @@ -21,6 +21,7 @@ using namespace ProjectExplorer; using namespace ProjectExplorer::Internal; using namespace TextEditor; +using namespace Utils; AllProjectsFind::AllProjectsFind() : m_configWidget(nullptr) { @@ -43,37 +44,37 @@ bool AllProjectsFind::isEnabled() const return BaseFileFind::isEnabled() && SessionManager::hasProjects(); } -Utils::FileIterator *AllProjectsFind::files(const QStringList &nameFilters, - const QStringList &exclusionFilters, - const QVariant &additionalParameters) const +FileIterator *AllProjectsFind::files(const QStringList &nameFilters, + const QStringList &exclusionFilters, + const QVariant &additionalParameters) const { Q_UNUSED(additionalParameters) return filesForProjects(nameFilters, exclusionFilters, SessionManager::projects()); } -Utils::FileIterator *AllProjectsFind::filesForProjects(const QStringList &nameFilters, - const QStringList &exclusionFilters, - const QList<Project *> &projects) const +FileIterator *AllProjectsFind::filesForProjects(const QStringList &nameFilters, + const QStringList &exclusionFilters, + const QList<Project *> &projects) const { - std::function<QStringList(const QStringList &)> filterFiles = - Utils::filterFilesFunction(nameFilters, exclusionFilters); - const QMap<QString, QTextCodec *> openEditorEncodings = TextDocument::openedTextDocumentEncodings(); - QMap<QString, QTextCodec *> encodings; + std::function<FilePaths(const FilePaths &)> filterFiles + = Utils::filterFilesFunction(nameFilters, exclusionFilters); + const QMap<FilePath, QTextCodec *> openEditorEncodings + = TextDocument::openedTextDocumentEncodings(); + QMap<FilePath, QTextCodec *> encodings; for (const Project *project : projects) { const EditorConfiguration *config = project->editorConfiguration(); QTextCodec *projectCodec = config->useGlobalSettings() ? Core::EditorManager::defaultTextCodec() : config->textCodec(); - const QStringList filteredFiles = filterFiles( - Utils::transform(project->files(Project::SourceFiles), &Utils::FilePath::toString)); - for (const QString &fileName : filteredFiles) { + const FilePaths filteredFiles = filterFiles(project->files(Project::SourceFiles)); + for (const FilePath &fileName : filteredFiles) { QTextCodec *codec = openEditorEncodings.value(fileName); if (!codec) codec = projectCodec; encodings.insert(fileName, codec); } } - return new Utils::FileListIterator(encodings.keys(), encodings.values()); + return new FileListIterator(encodings.keys(), encodings.values()); } QVariant AllProjectsFind::additionalParameters() const diff --git a/src/plugins/projectexplorer/currentprojectfind.cpp b/src/plugins/projectexplorer/currentprojectfind.cpp index ada992f32d..6b957cb72f 100644 --- a/src/plugins/projectexplorer/currentprojectfind.cpp +++ b/src/plugins/projectexplorer/currentprojectfind.cpp @@ -16,6 +16,7 @@ using namespace ProjectExplorer; using namespace ProjectExplorer::Internal; using namespace TextEditor; +using namespace Utils; CurrentProjectFind::CurrentProjectFind() { @@ -51,22 +52,22 @@ QVariant CurrentProjectFind::additionalParameters() const { Project *project = ProjectTree::currentProject(); if (project) - return QVariant::fromValue(project->projectFilePath().toString()); + return project->projectFilePath().toVariant(); return QVariant(); } -Utils::FileIterator *CurrentProjectFind::files(const QStringList &nameFilters, - const QStringList &exclusionFilters, - const QVariant &additionalParameters) const +FileIterator *CurrentProjectFind::files(const QStringList &nameFilters, + const QStringList &exclusionFilters, + const QVariant &additionalParameters) const { QTC_ASSERT(additionalParameters.isValid(), - return new Utils::FileListIterator(QStringList(), QList<QTextCodec *>())); - QString projectFile = additionalParameters.toString(); + return new FileListIterator(FilePaths(), QList<QTextCodec *>())); + const FilePath projectFile = FilePath::fromVariant(additionalParameters); for (Project *project : SessionManager::projects()) { - if (project && projectFile == project->projectFilePath().toString()) + if (project && projectFile == project->projectFilePath()) return filesForProjects(nameFilters, exclusionFilters, {project}); } - return new Utils::FileListIterator(QStringList(), QList<QTextCodec *>()); + return new FileListIterator(FilePaths(), QList<QTextCodec *>()); } QString CurrentProjectFind::label() const @@ -84,9 +85,9 @@ void CurrentProjectFind::handleProjectChanged() void CurrentProjectFind::recheckEnabled(Core::SearchResult *search) { - QString projectFile = getAdditionalParameters(search).toString(); + const FilePath projectFile = FilePath::fromVariant(getAdditionalParameters(search)); for (Project *project : SessionManager::projects()) { - if (projectFile == project->projectFilePath().toString()) { + if (projectFile == project->projectFilePath()) { search->setSearchAgainEnabled(true); return; } diff --git a/src/plugins/projectexplorer/filesinallprojectsfind.cpp b/src/plugins/projectexplorer/filesinallprojectsfind.cpp index 340aa5710e..423d78e0af 100644 --- a/src/plugins/projectexplorer/filesinallprojectsfind.cpp +++ b/src/plugins/projectexplorer/filesinallprojectsfind.cpp @@ -54,8 +54,7 @@ Utils::FileIterator *FilesInAllProjectsFind::files(const QStringList &nameFilter const QSet<FilePath> dirs = Utils::transform<QSet>(SessionManager::projects(), [](Project *p) { return p->projectFilePath().parentDir(); }); - const QStringList dirStrings = Utils::transform<QStringList>(dirs, &FilePath::toString); - return new SubDirFileIterator(dirStrings, + return new SubDirFileIterator(FilePaths(dirs.constBegin(), dirs.constEnd()), nameFilters, exclusionFilters, Core::EditorManager::defaultTextCodec()); diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index 7c828fd4c9..b4807b62a0 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -867,14 +867,13 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er dd, &ProjectExplorerPluginPrivate::loadSesssionTasks); connect(sessionManager, &SessionManager::projectAdded, dd, [](ProjectExplorer::Project *project) { - dd->m_allProjectDirectoriesFilter.addDirectory(project->projectDirectory().toString()); + dd->m_allProjectDirectoriesFilter.addDirectory(project->projectDirectory()); }); connect(sessionManager, &SessionManager::projectRemoved, dd, [](ProjectExplorer::Project *project) { - dd->m_allProjectDirectoriesFilter.removeDirectory( - project->projectDirectory().toString()); + dd->m_allProjectDirectoriesFilter.removeDirectory(project->projectDirectory()); }); ProjectTree *tree = &dd->m_projectTree; diff --git a/src/plugins/texteditor/findincurrentfile.cpp b/src/plugins/texteditor/findincurrentfile.cpp index 9fb33ff3af..5f667bab68 100644 --- a/src/plugins/texteditor/findincurrentfile.cpp +++ b/src/plugins/texteditor/findincurrentfile.cpp @@ -2,7 +2,6 @@ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0 #include "findincurrentfile.h" -#include "texteditor.h" #include "textdocument.h" #include <utils/filesearch.h> @@ -39,8 +38,9 @@ Utils::FileIterator *FindInCurrentFile::files(const QStringList &nameFilters, { Q_UNUSED(nameFilters) Q_UNUSED(exclusionFilters) - QString fileName = additionalParameters.toString(); - QMap<QString, QTextCodec *> openEditorEncodings = TextDocument::openedTextDocumentEncodings(); + const auto fileName = Utils::FilePath::fromVariant(additionalParameters); + QMap<Utils::FilePath, QTextCodec *> openEditorEncodings + = TextDocument::openedTextDocumentEncodings(); QTextCodec *codec = openEditorEncodings.value(fileName); if (!codec) codec = Core::EditorManager::defaultTextCodec(); @@ -49,7 +49,7 @@ Utils::FileIterator *FindInCurrentFile::files(const QStringList &nameFilters, QVariant FindInCurrentFile::additionalParameters() const { - return QVariant::fromValue(m_currentDocument->filePath().toString()); + return m_currentDocument->filePath().toVariant(); } QString FindInCurrentFile::label() const diff --git a/src/plugins/texteditor/findinfiles.cpp b/src/plugins/texteditor/findinfiles.cpp index 879248747c..7793498f65 100644 --- a/src/plugins/texteditor/findinfiles.cpp +++ b/src/plugins/texteditor/findinfiles.cpp @@ -59,7 +59,7 @@ FileIterator *FindInFiles::files(const QStringList &nameFilters, const QStringList &exclusionFilters, const QVariant &additionalParameters) const { - return new SubDirFileIterator({additionalParameters.toString()}, + return new SubDirFileIterator({FilePath::fromVariant(additionalParameters)}, nameFilters, exclusionFilters, EditorManager::defaultTextCodec()); @@ -67,7 +67,7 @@ FileIterator *FindInFiles::files(const QStringList &nameFilters, QVariant FindInFiles::additionalParameters() const { - return QVariant::fromValue(path().toString()); + return path().toVariant(); } QString FindInFiles::label() const diff --git a/src/plugins/texteditor/findinopenfiles.cpp b/src/plugins/texteditor/findinopenfiles.cpp index a5e7ff67ee..f66e89b95f 100644 --- a/src/plugins/texteditor/findinopenfiles.cpp +++ b/src/plugins/texteditor/findinopenfiles.cpp @@ -3,7 +3,6 @@ #include "findinopenfiles.h" #include "textdocument.h" -#include "texteditor.h" #include <utils/filesearch.h> #include <coreplugin/icore.h> @@ -40,13 +39,13 @@ Utils::FileIterator *FindInOpenFiles::files(const QStringList &nameFilters, Q_UNUSED(nameFilters) Q_UNUSED(exclusionFilters) Q_UNUSED(additionalParameters) - QMap<QString, QTextCodec *> openEditorEncodings - = TextDocument::openedTextDocumentEncodings(); - QStringList fileNames; + QMap<Utils::FilePath, QTextCodec *> openEditorEncodings + = TextDocument::openedTextDocumentEncodings(); + Utils::FilePaths fileNames; QList<QTextCodec *> codecs; const QList<Core::DocumentModel::Entry *> entries = Core::DocumentModel::entries(); for (Core::DocumentModel::Entry *entry : entries) { - QString fileName = entry->fileName().toString(); + const Utils::FilePath fileName = entry->fileName(); if (!fileName.isEmpty()) { fileNames.append(fileName); QTextCodec *codec = openEditorEncodings.value(fileName); diff --git a/src/plugins/texteditor/textdocument.cpp b/src/plugins/texteditor/textdocument.cpp index d866041d2c..51f805f396 100644 --- a/src/plugins/texteditor/textdocument.cpp +++ b/src/plugins/texteditor/textdocument.cpp @@ -235,29 +235,29 @@ TextDocument::~TextDocument() delete d; } -QMap<QString, QString> TextDocument::openedTextDocumentContents() +QMap<FilePath, QString> TextDocument::openedTextDocumentContents() { - QMap<QString, QString> workingCopy; + QMap<FilePath, QString> workingCopy; const QList<IDocument *> documents = DocumentModel::openedDocuments(); for (IDocument *document : documents) { auto textEditorDocument = qobject_cast<TextDocument *>(document); if (!textEditorDocument) continue; - QString fileName = textEditorDocument->filePath().toString(); + const FilePath fileName = textEditorDocument->filePath(); workingCopy[fileName] = textEditorDocument->plainText(); } return workingCopy; } -QMap<QString, QTextCodec *> TextDocument::openedTextDocumentEncodings() +QMap<FilePath, QTextCodec *> TextDocument::openedTextDocumentEncodings() { - QMap<QString, QTextCodec *> workingCopy; + QMap<FilePath, QTextCodec *> workingCopy; const QList<IDocument *> documents = DocumentModel::openedDocuments(); for (IDocument *document : documents) { auto textEditorDocument = qobject_cast<TextDocument *>(document); if (!textEditorDocument) continue; - QString fileName = textEditorDocument->filePath().toString(); + const FilePath fileName = textEditorDocument->filePath(); workingCopy[fileName] = const_cast<QTextCodec *>(textEditorDocument->codec()); } return workingCopy; diff --git a/src/plugins/texteditor/textdocument.h b/src/plugins/texteditor/textdocument.h index e3f8f6c8e7..fbddd84384 100644 --- a/src/plugins/texteditor/textdocument.h +++ b/src/plugins/texteditor/textdocument.h @@ -49,8 +49,8 @@ public: explicit TextDocument(Utils::Id id = Utils::Id()); ~TextDocument() override; - static QMap<QString, QString> openedTextDocumentContents(); - static QMap<QString, QTextCodec *> openedTextDocumentEncodings(); + static QMap<Utils::FilePath, QString> openedTextDocumentContents(); + static QMap<Utils::FilePath, QTextCodec *> openedTextDocumentEncodings(); static TextDocument *currentTextDocument(); static TextDocument *textDocumentForFilePath(const Utils::FilePath &filePath); diff --git a/src/plugins/texteditor/texteditor.cpp b/src/plugins/texteditor/texteditor.cpp index 22585ae6b3..dc29c62246 100644 --- a/src/plugins/texteditor/texteditor.cpp +++ b/src/plugins/texteditor/texteditor.cpp @@ -864,8 +864,8 @@ void TextEditorWidgetFind::selectAll(const QString &txt, FindFlags findFlags) m_editor->setFocus(); }); - const QString &fileName = m_editor->textDocument()->filePath().toString(); - QMap<QString, QString> fileToContentsMap; + const FilePath &fileName = m_editor->textDocument()->filePath(); + QMap<FilePath, QString> fileToContentsMap; fileToContentsMap[fileName] = m_editor->textDocument()->plainText(); FileListIterator *it = new FileListIterator({fileName}, @@ -6368,10 +6368,10 @@ void TextEditorWidgetPrivate::highlightSearchResultsInScrollBar() const QTextDocument::FindFlags findFlags = textDocumentFlagsForFindFlags(m_findFlags); - const QString &fileName = m_document->filePath().toString(); + const FilePath &fileName = m_document->filePath(); FileListIterator *it = new FileListIterator({fileName} , {const_cast<QTextCodec *>(m_document->codec())}); - QMap<QString, QString> fileToContentsMap; + QMap<FilePath, QString> fileToContentsMap; fileToContentsMap[fileName] = m_document->plainText(); if (m_findFlags & FindRegularExpression) |