aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/coreplugin/locator/directoryfilter.cpp45
-rw-r--r--src/plugins/coreplugin/locator/directoryfilter.h10
-rw-r--r--src/plugins/projectexplorer/allprojectsfind.cpp29
-rw-r--r--src/plugins/projectexplorer/currentprojectfind.cpp21
-rw-r--r--src/plugins/projectexplorer/filesinallprojectsfind.cpp3
-rw-r--r--src/plugins/projectexplorer/projectexplorer.cpp5
-rw-r--r--src/plugins/texteditor/findincurrentfile.cpp8
-rw-r--r--src/plugins/texteditor/findinfiles.cpp4
-rw-r--r--src/plugins/texteditor/findinopenfiles.cpp9
-rw-r--r--src/plugins/texteditor/textdocument.cpp12
-rw-r--r--src/plugins/texteditor/textdocument.h4
-rw-r--r--src/plugins/texteditor/texteditor.cpp8
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)