diff --git a/src/plugins/projectexplorer/foldernavigationwidget.cpp b/src/plugins/projectexplorer/foldernavigationwidget.cpp index 93c7f03265b..ee9a53cb90d 100644 --- a/src/plugins/projectexplorer/foldernavigationwidget.cpp +++ b/src/plugins/projectexplorer/foldernavigationwidget.cpp @@ -98,6 +98,7 @@ static FolderNavigationWidgetFactory *m_instance = nullptr; QVector FolderNavigationWidgetFactory::m_rootDirectories; +Utils::FilePath FolderNavigationWidgetFactory::m_fallbackSyncFilePath; static QWidget *createHLine() { @@ -893,6 +894,8 @@ Core::NavigationView FolderNavigationWidgetFactory::createWidget() &FolderNavigationWidgetFactory::rootDirectoryRemoved, fnw, &FolderNavigationWidget::removeRootDirectory); + if (!Core::EditorManager::currentDocument() && !m_fallbackSyncFilePath.isEmpty()) + fnw->syncWithFilePath(m_fallbackSyncFilePath); Core::NavigationView n; n.widget = fnw; @@ -965,6 +968,11 @@ void FolderNavigationWidgetFactory::removeRootDirectory(const QString &id) emit m_instance->rootDirectoryRemoved(id); } +void FolderNavigationWidgetFactory::setFallbackSyncFilePath(const FilePath &filePath) +{ + m_fallbackSyncFilePath = filePath; +} + int FolderNavigationWidgetFactory::rootIndex(const QString &id) { return Utils::indexOf(m_rootDirectories, diff --git a/src/plugins/projectexplorer/foldernavigationwidget.h b/src/plugins/projectexplorer/foldernavigationwidget.h index b39f073b4b8..06fef602256 100644 --- a/src/plugins/projectexplorer/foldernavigationwidget.h +++ b/src/plugins/projectexplorer/foldernavigationwidget.h @@ -77,6 +77,10 @@ public: static void insertRootDirectory(const RootDirectory &directory); static void removeRootDirectory(const QString &id); + static void setFallbackSyncFilePath(const Utils::FilePath &filePath); + + static const Utils::FilePath &fallbackSyncFilePath(); + signals: void rootDirectoryAdded(const RootDirectory &directory); void rootDirectoryRemoved(const QString &id); @@ -87,6 +91,7 @@ private: void registerActions(); static QVector m_rootDirectories; + static Utils::FilePath m_fallbackSyncFilePath; }; class FolderNavigationWidget : public QWidget diff --git a/src/plugins/projectexplorer/session.cpp b/src/plugins/projectexplorer/session.cpp index 1c7f33d6e5a..32b72b8508d 100644 --- a/src/plugins/projectexplorer/session.cpp +++ b/src/plugins/projectexplorer/session.cpp @@ -386,6 +386,8 @@ void SessionManager::setStartupProject(Project *startupProject) ModeManager::activateMode(Constants::MODE_SESSION); ModeManager::setFocusToCurrentMode(); } + FolderNavigationWidgetFactory::setFallbackSyncFilePath( + startupProject ? startupProject->projectFilePath().parentDir() : FilePath()); emit m_instance->startupProjectChanged(startupProject); }