forked from qt-creator/qt-creator
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:
@@ -309,7 +309,7 @@ QObject *CorePlugin::remoteCommand(const QStringList & /* options */,
|
|||||||
IDocument *res = MainWindow::openFiles(
|
IDocument *res = MainWindow::openFiles(
|
||||||
filePaths,
|
filePaths,
|
||||||
ICore::OpenFilesFlags(ICore::SwitchMode | ICore::CanContainLineAndColumnNumbers | ICore::SwitchSplitIfAlreadyVisible),
|
ICore::OpenFilesFlags(ICore::SwitchMode | ICore::CanContainLineAndColumnNumbers | ICore::SwitchSplitIfAlreadyVisible),
|
||||||
workingDirectory);
|
FilePath::fromString(workingDirectory));
|
||||||
m_mainWindow->raiseWindow();
|
m_mainWindow->raiseWindow();
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -973,20 +973,20 @@ static IDocumentFactory *findDocumentFactory(const QList<IDocumentFactory*> &fil
|
|||||||
*/
|
*/
|
||||||
IDocument *MainWindow::openFiles(const FilePaths &filePaths,
|
IDocument *MainWindow::openFiles(const FilePaths &filePaths,
|
||||||
ICore::OpenFilesFlags flags,
|
ICore::OpenFilesFlags flags,
|
||||||
const QString &workingDirectory)
|
const FilePath &workingDirectory)
|
||||||
{
|
{
|
||||||
const QList<IDocumentFactory*> documentFactories = IDocumentFactory::allDocumentFactories();
|
const QList<IDocumentFactory*> documentFactories = IDocumentFactory::allDocumentFactories();
|
||||||
IDocument *res = nullptr;
|
IDocument *res = nullptr;
|
||||||
|
|
||||||
const QString workingDirBase = workingDirectory.isEmpty() ? QDir::currentPath() : workingDirectory;
|
const FilePath workingDirBase =
|
||||||
|
workingDirectory.isEmpty() ? FilePath::currentWorkingPath() : workingDirectory;
|
||||||
for (const FilePath &filePath : filePaths) {
|
for (const FilePath &filePath : filePaths) {
|
||||||
const FilePath workingDir = filePath.withNewPath(workingDirBase);
|
|
||||||
FilePath absoluteFilePath;
|
FilePath absoluteFilePath;
|
||||||
if (filePath.isAbsolutePath()) {
|
if (filePath.isAbsolutePath()) {
|
||||||
absoluteFilePath = filePath;
|
absoluteFilePath = filePath;
|
||||||
} else {
|
} else {
|
||||||
QTC_CHECK(!filePath.needsDevice());
|
QTC_CHECK(!filePath.needsDevice());
|
||||||
absoluteFilePath = FilePath::fromString(workingDirBase).resolvePath(filePath.path());
|
absoluteFilePath = workingDirBase.resolvePath(filePath.path());
|
||||||
}
|
}
|
||||||
if (IDocumentFactory *documentFactory = findDocumentFactory(documentFactories, filePath)) {
|
if (IDocumentFactory *documentFactory = findDocumentFactory(documentFactories, filePath)) {
|
||||||
IDocument *document = documentFactory->open(absoluteFilePath);
|
IDocument *document = documentFactory->open(absoluteFilePath);
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ public:
|
|||||||
|
|
||||||
static IDocument *openFiles(const Utils::FilePaths &filePaths,
|
static IDocument *openFiles(const Utils::FilePaths &filePaths,
|
||||||
ICore::OpenFilesFlags flags,
|
ICore::OpenFilesFlags flags,
|
||||||
const QString &workingDirectory = QString());
|
const Utils::FilePath &workingDirectory = {});
|
||||||
|
|
||||||
inline SettingsDatabase *settingsDatabase() const { return m_settingsDatabase; }
|
inline SettingsDatabase *settingsDatabase() const { return m_settingsDatabase; }
|
||||||
virtual QPrinter *printer() const;
|
virtual QPrinter *printer() const;
|
||||||
|
|||||||
Reference in New Issue
Block a user