Core: Use FilePath for working dir in MainWindow::openFiles()

Change-Id: Ifc8e167a1734115fa7a23f7aefa45fc52e4a70cc
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
hjk
2022-11-21 13:24:40 +01:00
parent fbc2da621c
commit e567cb313b
3 changed files with 6 additions and 6 deletions

View File

@@ -309,7 +309,7 @@ QObject *CorePlugin::remoteCommand(const QStringList & /* options */,
IDocument *res = MainWindow::openFiles(
filePaths,
ICore::OpenFilesFlags(ICore::SwitchMode | ICore::CanContainLineAndColumnNumbers | ICore::SwitchSplitIfAlreadyVisible),
workingDirectory);
FilePath::fromString(workingDirectory));
m_mainWindow->raiseWindow();
return res;
}

View File

@@ -973,20 +973,20 @@ static IDocumentFactory *findDocumentFactory(const QList<IDocumentFactory*> &fil
*/
IDocument *MainWindow::openFiles(const FilePaths &filePaths,
ICore::OpenFilesFlags flags,
const QString &workingDirectory)
const FilePath &workingDirectory)
{
const QList<IDocumentFactory*> documentFactories = IDocumentFactory::allDocumentFactories();
IDocument *res = nullptr;
const QString workingDirBase = workingDirectory.isEmpty() ? QDir::currentPath() : workingDirectory;
const FilePath workingDirBase =
workingDirectory.isEmpty() ? FilePath::currentWorkingPath() : workingDirectory;
for (const FilePath &filePath : filePaths) {
const FilePath workingDir = filePath.withNewPath(workingDirBase);
FilePath absoluteFilePath;
if (filePath.isAbsolutePath()) {
absoluteFilePath = filePath;
} else {
QTC_CHECK(!filePath.needsDevice());
absoluteFilePath = FilePath::fromString(workingDirBase).resolvePath(filePath.path());
absoluteFilePath = workingDirBase.resolvePath(filePath.path());
}
if (IDocumentFactory *documentFactory = findDocumentFactory(documentFactories, filePath)) {
IDocument *document = documentFactory->open(absoluteFilePath);

View File

@@ -70,7 +70,7 @@ public:
static IDocument *openFiles(const Utils::FilePaths &filePaths,
ICore::OpenFilesFlags flags,
const QString &workingDirectory = QString());
const Utils::FilePath &workingDirectory = {});
inline SettingsDatabase *settingsDatabase() const { return m_settingsDatabase; }
virtual QPrinter *printer() const;