diff options
author | hjk <hjk@qt.io> | 2021-07-23 11:15:18 +0200 |
---|---|---|
committer | hjk <hjk@qt.io> | 2021-07-30 07:07:18 +0000 |
commit | 64c9384cb85dd0de8fb57a99ee8dbdfc36efb44d (patch) | |
tree | f912f2d8182cb59facd56d5beabc8cf47a6fe714 | |
parent | 124909c80282001769afbba75c2c024b8bb774b0 (diff) |
Core: Use FilePath in IDocumentFactory::open()
Change-Id: I369f3bba2e0d1d33fed3a29f3c1408429cc7d8f8
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
-rw-r--r-- | src/plugins/coreplugin/idocumentfactory.cpp | 4 | ||||
-rw-r--r-- | src/plugins/coreplugin/idocumentfactory.h | 6 | ||||
-rw-r--r-- | src/plugins/coreplugin/mainwindow.cpp | 2 | ||||
-rw-r--r-- | src/plugins/projectexplorer/projectexplorer.cpp | 13 | ||||
-rw-r--r-- | src/plugins/tasklist/tasklistplugin.cpp | 4 |
5 files changed, 17 insertions, 12 deletions
diff --git a/src/plugins/coreplugin/idocumentfactory.cpp b/src/plugins/coreplugin/idocumentfactory.cpp index 0d8280dc08..8730c6b01f 100644 --- a/src/plugins/coreplugin/idocumentfactory.cpp +++ b/src/plugins/coreplugin/idocumentfactory.cpp @@ -46,10 +46,10 @@ const QList<IDocumentFactory *> IDocumentFactory::allDocumentFactories() return g_documentFactories; } -IDocument *IDocumentFactory::open(const QString &filename) +IDocument *IDocumentFactory::open(const Utils::FilePath &filePath) { QTC_ASSERT(m_opener, return nullptr); - return m_opener(filename); + return m_opener(filePath); } } // namespace Core diff --git a/src/plugins/coreplugin/idocumentfactory.h b/src/plugins/coreplugin/idocumentfactory.h index 796eca0eb6..bd60cc52ae 100644 --- a/src/plugins/coreplugin/idocumentfactory.h +++ b/src/plugins/coreplugin/idocumentfactory.h @@ -33,6 +33,8 @@ #include <functional> +namespace Utils { class FilePath; } + namespace Core { class IDocument; @@ -45,8 +47,8 @@ public: static const QList<IDocumentFactory *> allDocumentFactories(); - using Opener = std::function<IDocument *(const QString &fileName)>; - IDocument *open(const QString &filename); + using Opener = std::function<IDocument *(const Utils::FilePath &filePath)>; + IDocument *open(const Utils::FilePath &filePath); QStringList mimeTypes() const { return m_mimeTypes; } diff --git a/src/plugins/coreplugin/mainwindow.cpp b/src/plugins/coreplugin/mainwindow.cpp index 4029f1a557..95de5c7f02 100644 --- a/src/plugins/coreplugin/mainwindow.cpp +++ b/src/plugins/coreplugin/mainwindow.cpp @@ -892,7 +892,7 @@ IDocument *MainWindow::openFiles(const FilePaths &filePaths, const QFileInfo fi(workingDir, fileName); const QString absoluteFilePath = fi.absoluteFilePath(); if (IDocumentFactory *documentFactory = findDocumentFactory(documentFactories, filePath)) { - IDocument *document = documentFactory->open(absoluteFilePath); + IDocument *document = documentFactory->open(FilePath::fromString(absoluteFilePath)); if (!document) { if (flags & ICore::StopOnLoadFail) return res; diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index b55b75c0e4..f6893e6c50 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -2081,12 +2081,15 @@ void ProjectExplorerPlugin::extensionsInitialized() const QString filterSeparator = QLatin1String(";;"); QStringList filterStrings; - dd->m_documentFactory.setOpener([](QString fileName) { - const QFileInfo fi(fileName); - if (fi.isDir()) - fileName = FolderNavigationWidget::projectFilesInDirectory(fi.absoluteFilePath()).value(0, fileName); + dd->m_documentFactory.setOpener([](FilePath filePath) { + if (filePath.isDir()) { + const QStringList files = + FolderNavigationWidget::projectFilesInDirectory(filePath.absoluteFilePath().toString()); + if (!files.isEmpty()) + filePath = FilePath::fromString(files.front()); + } - OpenProjectResult result = ProjectExplorerPlugin::openProject(FilePath::fromString(fileName)); + OpenProjectResult result = ProjectExplorerPlugin::openProject(filePath); if (!result) showOpenProjectError(result); return nullptr; diff --git a/src/plugins/tasklist/tasklistplugin.cpp b/src/plugins/tasklist/tasklistplugin.cpp index d41996dcde..6684f86a92 100644 --- a/src/plugins/tasklist/tasklistplugin.cpp +++ b/src/plugins/tasklist/tasklistplugin.cpp @@ -209,8 +209,8 @@ bool TaskListPlugin::initialize(const QStringList &arguments, QString *errorMess TaskHub::addCategory(Constants::TASKLISTTASK_ID, tr("My Tasks")); d->m_fileFactory.addMimeType(QLatin1String("text/x-tasklist")); - d->m_fileFactory.setOpener([this](const QString &fileName) { - return openTasks(FilePath::fromString(fileName)); + d->m_fileFactory.setOpener([this](const FilePath &filePath) { + return openTasks(filePath); }); connect(SessionManager::instance(), &SessionManager::sessionLoaded, |