aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2021-07-23 11:15:18 +0200
committerhjk <hjk@qt.io>2021-07-30 07:07:18 +0000
commit64c9384cb85dd0de8fb57a99ee8dbdfc36efb44d (patch)
treef912f2d8182cb59facd56d5beabc8cf47a6fe714
parent124909c80282001769afbba75c2c024b8bb774b0 (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.cpp4
-rw-r--r--src/plugins/coreplugin/idocumentfactory.h6
-rw-r--r--src/plugins/coreplugin/mainwindow.cpp2
-rw-r--r--src/plugins/projectexplorer/projectexplorer.cpp13
-rw-r--r--src/plugins/tasklist/tasklistplugin.cpp4
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,