forked from qt-creator/qt-creator
Update project names in file system navigation pane
When the project reports a change in the display name we need to update the drop down in the file system navigation pane as well. Task-number: QTCREATORBUG-18972 Change-Id: Icfc0e6b2185f147bfc36589d8aea13a0966e8793 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
@@ -118,6 +118,11 @@ private:
|
||||
static SessionManager *m_instance = nullptr;
|
||||
static SessionManagerPrivate *d = nullptr;
|
||||
|
||||
static QString projectFolderId(Project *pro)
|
||||
{
|
||||
return "P." + pro->displayName() + "." + pro->projectFilePath().toString();
|
||||
}
|
||||
|
||||
SessionManager::SessionManager(QObject *parent) : QObject(parent)
|
||||
{
|
||||
m_instance = this;
|
||||
@@ -386,12 +391,14 @@ void SessionManager::addProject(Project *pro)
|
||||
m_instance, [pro]() { m_instance->projectDisplayNameChanged(pro); });
|
||||
|
||||
emit m_instance->projectAdded(pro);
|
||||
FolderNavigationWidgetFactory::insertRootDirectory(
|
||||
{"P." + pro->displayName() + "." + pro->projectFilePath().toString(),
|
||||
pro->displayName(),
|
||||
pro->projectFilePath().parentDir()});
|
||||
const auto updateFolderNavigation = [pro] {
|
||||
FolderNavigationWidgetFactory::insertRootDirectory(
|
||||
{projectFolderId(pro), pro->displayName(), pro->projectFilePath().parentDir()});
|
||||
};
|
||||
updateFolderNavigation();
|
||||
configureEditors(pro);
|
||||
connect(pro, &Project::fileListChanged, [pro](){ configureEditors(pro); });
|
||||
connect(pro, &Project::displayNameChanged, pro, updateFolderNavigation);
|
||||
}
|
||||
|
||||
void SessionManager::removeProject(Project *project)
|
||||
@@ -744,8 +751,7 @@ void SessionManager::removeProjects(QList<Project *> remove)
|
||||
m_instance, &SessionManager::clearProjectFileCache);
|
||||
d->m_projectFileCache.remove(pro);
|
||||
emit m_instance->projectRemoved(pro);
|
||||
FolderNavigationWidgetFactory::removeRootDirectory("P." + pro->displayName() + "."
|
||||
+ pro->projectFilePath().toString());
|
||||
FolderNavigationWidgetFactory::removeRootDirectory(projectFolderId(pro));
|
||||
delete pro;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user