diff --git a/src/libs/utils/dropsupport.cpp b/src/libs/utils/dropsupport.cpp index 774c53ac585..7a0a2b4b4e1 100644 --- a/src/libs/utils/dropsupport.cpp +++ b/src/libs/utils/dropsupport.cpp @@ -70,7 +70,7 @@ static bool isFileDrop(const QMimeData *d, QList *files = if (!fileName.isEmpty()) { hasFiles = true; if (files) - files->append(DropSupport::FileSpec(fileName)); + files->append(DropSupport::FileSpec(FilePath::fromString(fileName))); else break; // No result list, sufficient for checking } @@ -203,11 +203,11 @@ bool DropMimeData::isOverridingFileDropAction() const return m_isOverridingDropAction; } -void DropMimeData::addFile(const QString &filePath, int line, int column) +void DropMimeData::addFile(const FilePath &filePath, int line, int column) { // standard mime data QList currentUrls = urls(); - currentUrls.append(QUrl::fromLocalFile(filePath)); + currentUrls.append(QUrl::fromLocalFile(filePath.toString())); setUrls(currentUrls); // special mime data m_files.append(DropSupport::FileSpec(filePath, line, column)); diff --git a/src/libs/utils/dropsupport.h b/src/libs/utils/dropsupport.h index c16846fad5a..c545045a450 100644 --- a/src/libs/utils/dropsupport.h +++ b/src/libs/utils/dropsupport.h @@ -27,6 +27,8 @@ #include "utils_global.h" +#include "filepath.h" + #include #include #include @@ -45,8 +47,8 @@ class QTCREATOR_UTILS_EXPORT DropSupport : public QObject Q_OBJECT public: struct FileSpec { - FileSpec(const QString &path, int r = -1, int c = -1) : filePath(path), line(r), column(c) {} - QString filePath; + FileSpec(const FilePath &path, int r = -1, int c = -1) : filePath(path), line(r), column(c) {} + FilePath filePath; int line; int column; }; @@ -89,7 +91,7 @@ public: Qt::DropAction overrideFileDropAction() const; bool isOverridingFileDropAction() const; - void addFile(const QString &filePath, int line = -1, int column = -1); + void addFile(const FilePath &filePath, int line = -1, int column = -1); QList files() const; void addValue(const QVariant &value); diff --git a/src/plugins/bookmarks/bookmarkmanager.cpp b/src/plugins/bookmarks/bookmarkmanager.cpp index bb346b65079..3ddb2ddf143 100644 --- a/src/plugins/bookmarks/bookmarkmanager.cpp +++ b/src/plugins/bookmarks/bookmarkmanager.cpp @@ -404,7 +404,7 @@ QMimeData *BookmarkManager::mimeData(const QModelIndexList &indexes) const if (!index.isValid() || index.column() != 0 || index.row() < 0 || index.row() >= m_bookmarksList.count()) continue; Bookmark *bookMark = m_bookmarksList.at(index.row()); - data->addFile(bookMark->fileName().toString(), bookMark->lineNumber()); + data->addFile(bookMark->fileName(), bookMark->lineNumber()); } return data; } diff --git a/src/plugins/classview/classviewtreeitemmodel.cpp b/src/plugins/classview/classviewtreeitemmodel.cpp index f4f32fc7b98..0b4b9d68882 100644 --- a/src/plugins/classview/classviewtreeitemmodel.cpp +++ b/src/plugins/classview/classviewtreeitemmodel.cpp @@ -177,13 +177,13 @@ QMimeData *TreeItemModel::mimeData(const QModelIndexList &indexes) const { auto mimeData = new ::Utils::DropMimeData; mimeData->setOverrideFileDropAction(Qt::CopyAction); - foreach (const QModelIndex &index, indexes) { + for (const QModelIndex &index : indexes) { const QSet locations = Internal::roleToLocations( data(index, Constants::SymbolLocationsRole).toList()); if (locations.isEmpty()) continue; const SymbolLocation loc = *locations.constBegin(); - mimeData->addFile(loc.fileName(), loc.line(), loc.column()); + mimeData->addFile(Utils::FilePath::fromString(loc.fileName()), loc.line(), loc.column()); } if (mimeData->files().isEmpty()) { delete mimeData; diff --git a/src/plugins/coreplugin/editormanager/documentmodel.cpp b/src/plugins/coreplugin/editormanager/documentmodel.cpp index 97d243855a1..52915311d6d 100644 --- a/src/plugins/coreplugin/editormanager/documentmodel.cpp +++ b/src/plugins/coreplugin/editormanager/documentmodel.cpp @@ -280,7 +280,7 @@ QMimeData *DocumentModelPrivate::mimeData(const QModelIndexList &indexes) const const DocumentModel::Entry *e = DocumentModel::entryAtRow(index.row()); if (!e || e->fileName().isEmpty()) continue; - data->addFile(e->fileName().toString()); + data->addFile(e->fileName()); } return data; } diff --git a/src/plugins/coreplugin/editormanager/editorview.cpp b/src/plugins/coreplugin/editormanager/editorview.cpp index ecedf9d9e35..d3b3f6cfa41 100644 --- a/src/plugins/coreplugin/editormanager/editorview.cpp +++ b/src/plugins/coreplugin/editormanager/editorview.cpp @@ -403,7 +403,7 @@ void EditorView::openDroppedFiles(const QList &files) { bool first = true; auto specToLink = [](const DropSupport::FileSpec &spec) { - return Utils::Link(FilePath::fromString(spec.filePath), spec.line, spec.column); + return Utils::Link(spec.filePath, spec.line, spec.column); }; auto openEntry = [&](const DropSupport::FileSpec &spec) { if (first) { @@ -416,10 +416,8 @@ void EditorView::openDroppedFiles(const QList &files) EditorManager::DoNotChangeCurrentEditor | EditorManager::DoNotMakeVisible); } else { - auto factory = IEditorFactory::preferredEditorFactories( - FilePath::fromString(spec.filePath)).value(0); - DocumentModelPrivate::addSuspendedDocument(FilePath::fromString(spec.filePath), - {}, + auto factory = IEditorFactory::preferredEditorFactories(spec.filePath).value(0); + DocumentModelPrivate::addSuspendedDocument(spec.filePath, {}, factory ? factory->id() : Id()); } }; diff --git a/src/plugins/coreplugin/editortoolbar.cpp b/src/plugins/coreplugin/editortoolbar.cpp index 49da6c1dcea..8680806bef7 100644 --- a/src/plugins/coreplugin/editortoolbar.cpp +++ b/src/plugins/coreplugin/editortoolbar.cpp @@ -448,7 +448,7 @@ bool EditorToolBar::eventFilter(QObject *obj, QEvent *event) return Utils::StyledBar::eventFilter(obj, event); auto drag = new QDrag(this); auto data = new Utils::DropMimeData; - data->addFile(entry->fileName().toString()); + data->addFile(entry->fileName()); drag->setMimeData(data); Qt::DropAction action = drag->exec(Qt::MoveAction | Qt::CopyAction, Qt::MoveAction); if (action == Qt::MoveAction) diff --git a/src/plugins/coreplugin/mainwindow.cpp b/src/plugins/coreplugin/mainwindow.cpp index d7537bd1849..f985c420130 100644 --- a/src/plugins/coreplugin/mainwindow.cpp +++ b/src/plugins/coreplugin/mainwindow.cpp @@ -389,8 +389,8 @@ void MainWindow::closeEvent(QCloseEvent *event) void MainWindow::openDroppedFiles(const QList &files) { raiseWindow(); - QStringList filePaths = Utils::transform(files, &DropSupport::FileSpec::filePath); - openFiles(Utils::transform(filePaths, &FilePath::fromString), ICore::SwitchMode); + const FilePaths filePaths = Utils::transform(files, &DropSupport::FileSpec::filePath); + openFiles(filePaths, ICore::SwitchMode); } IContext *MainWindow::currentContextObject() const diff --git a/src/plugins/cppeditor/cppincludehierarchy.cpp b/src/plugins/cppeditor/cppincludehierarchy.cpp index 9f1d77cf32f..87313468cc6 100644 --- a/src/plugins/cppeditor/cppincludehierarchy.cpp +++ b/src/plugins/cppeditor/cppincludehierarchy.cpp @@ -282,7 +282,7 @@ QMimeData *CppIncludeHierarchyModel::mimeData(const QModelIndexList &indexes) co for (const QModelIndex &index : indexes) { auto link = index.data(LinkRole).value(); if (link.hasValidTarget()) - data->addFile(link.targetFilePath.toString(), link.targetLine, link.targetColumn); + data->addFile(link.targetFilePath, link.targetLine, link.targetColumn); } return data; } diff --git a/src/plugins/cppeditor/cpptypehierarchy.cpp b/src/plugins/cppeditor/cpptypehierarchy.cpp index 819c3b427c5..c0a7bce56e5 100644 --- a/src/plugins/cppeditor/cpptypehierarchy.cpp +++ b/src/plugins/cppeditor/cpptypehierarchy.cpp @@ -387,7 +387,7 @@ QMimeData *CppTypeHierarchyModel::mimeData(const QModelIndexList &indexes) const foreach (const QModelIndex &index, indexes) { auto link = index.data(LinkRole).value(); if (link.hasValidTarget()) - data->addFile(link.targetFilePath.toString(), link.targetLine, link.targetColumn); + data->addFile(link.targetFilePath, link.targetLine, link.targetColumn); } return data; } diff --git a/src/plugins/cpptools/abstractoverviewmodel.h b/src/plugins/cpptools/abstractoverviewmodel.h index 1035494a37a..89280cf09c5 100644 --- a/src/plugins/cpptools/abstractoverviewmodel.h +++ b/src/plugins/cpptools/abstractoverviewmodel.h @@ -84,7 +84,8 @@ public: const QVariant lineNumber = data(index, LineNumberRole); if (!lineNumber.canConvert()) continue; - mimeData->addFile(fileName.toString(), static_cast(lineNumber.value())); + mimeData->addFile(Utils::FilePath::fromVariant(fileName), + static_cast(lineNumber.value())); } return mimeData; } diff --git a/src/plugins/modeleditor/editordiagramview.cpp b/src/plugins/modeleditor/editordiagramview.cpp index 7b25a964ff5..b6a3602af85 100644 --- a/src/plugins/modeleditor/editordiagramview.cpp +++ b/src/plugins/modeleditor/editordiagramview.cpp @@ -102,7 +102,7 @@ void EditorDiagramView::dropFiles(const QList &fil for (const auto &fileSpec : files) { QPointF scenePos = mapToScene(pos); d->pxNodeController->addFileSystemEntry( - fileSpec.filePath, fileSpec.line, fileSpec.column, + fileSpec.filePath.toString(), fileSpec.line, fileSpec.column, diagramSceneModel()->findTopmostElement(scenePos), scenePos, diagramSceneModel()->diagram()); } diff --git a/src/plugins/projectexplorer/projectmodels.cpp b/src/plugins/projectexplorer/projectmodels.cpp index ca6e6559867..b410e41a674 100644 --- a/src/plugins/projectexplorer/projectmodels.cpp +++ b/src/plugins/projectexplorer/projectmodels.cpp @@ -546,10 +546,10 @@ QStringList FlatModel::mimeTypes() const QMimeData *FlatModel::mimeData(const QModelIndexList &indexes) const { auto data = new DropMimeData; - foreach (const QModelIndex &index, indexes) { + for (const QModelIndex &index : indexes) { if (Node *node = nodeForIndex(index)) { if (node->asFileNode()) - data->addFile(node->filePath().toString()); + data->addFile(node->filePath()); data->addValue(QVariant::fromValue(node)); } } diff --git a/src/plugins/qmljseditor/qmloutlinemodel.cpp b/src/plugins/qmljseditor/qmloutlinemodel.cpp index b1aad4e1e7a..a62696b8abe 100644 --- a/src/plugins/qmljseditor/qmloutlinemodel.cpp +++ b/src/plugins/qmljseditor/qmloutlinemodel.cpp @@ -354,7 +354,7 @@ QMimeData *QmlOutlineModel::mimeData(const QModelIndexList &indexes) const for (const auto &index : indexes) { SourceLocation location = sourceLocation(index); - data->addFile(m_editorDocument->filePath().toString(), location.startLine, + data->addFile(m_editorDocument->filePath(), location.startLine, location.startColumn - 1 /*editors have 0-based column*/); QList rowPath; diff --git a/src/plugins/texteditor/texteditor.cpp b/src/plugins/texteditor/texteditor.cpp index 188abfe20ad..9bf59d20f8d 100644 --- a/src/plugins/texteditor/texteditor.cpp +++ b/src/plugins/texteditor/texteditor.cpp @@ -8695,7 +8695,7 @@ void TextEditorLinkLabel::mouseMoveEvent(QMouseEvent *event) return; auto data = new DropMimeData; - data->addFile(m_link.targetFilePath.toString(), m_link.targetLine, m_link.targetColumn); + data->addFile(m_link.targetFilePath, m_link.targetLine, m_link.targetColumn); auto drag = new QDrag(this); drag->setMimeData(data); drag->exec(Qt::CopyAction);