ProjectTree: De-duplicate functionality

Change-Id: I465e07c0764ca3dcbf6a6082670b140eb2b01374
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
Tobias Hunger
2016-12-19 13:37:23 +01:00
parent 63cf5b8ad6
commit 5d8134f57c
2 changed files with 2 additions and 20 deletions

View File

@@ -149,7 +149,7 @@ void ProjectTree::updateFromFocus(bool invalidCurrentNode)
void ProjectTree::updateFromProjectTreeWidget(ProjectTreeWidget *widget) void ProjectTree::updateFromProjectTreeWidget(ProjectTreeWidget *widget)
{ {
Node *currentNode = widget->currentNode(); Node *currentNode = widget->currentNode();
Project *project = projectForNode(currentNode); Project *project = SessionManager::projectForNode(currentNode);
update(currentNode, project); update(currentNode, project);
} }
@@ -159,23 +159,6 @@ void ProjectTree::documentManagerCurrentFileChanged()
updateFromFocus(); updateFromFocus();
} }
Project *ProjectTree::projectForNode(Node *node)
{
if (!node)
return nullptr;
FolderNode *rootProjectNode = node->asFolderNode();
if (!rootProjectNode)
rootProjectNode = node->parentFolderNode();
while (rootProjectNode && rootProjectNode->parentFolderNode() != SessionManager::sessionNode())
rootProjectNode = rootProjectNode->parentFolderNode();
Q_ASSERT(rootProjectNode);
return Utils::findOrDefault(SessionManager::projects(), Utils::equal(&Project::rootProjectNode, rootProjectNode));
}
void ProjectTree::updateFromDocumentManager(bool invalidCurrentNode) void ProjectTree::updateFromDocumentManager(bool invalidCurrentNode)
{ {
Core::IDocument *document = Core::EditorManager::currentDocument(); Core::IDocument *document = Core::EditorManager::currentDocument();
@@ -194,7 +177,7 @@ void ProjectTree::updateFromNode(Node *node)
{ {
Project *project; Project *project;
if (node) if (node)
project = projectForNode(node); project = SessionManager::projectForNode(node);
else else
project = SessionManager::startupProject(); project = SessionManager::startupProject();

View File

@@ -55,7 +55,6 @@ public:
static void registerWidget(Internal::ProjectTreeWidget *widget); static void registerWidget(Internal::ProjectTreeWidget *widget);
static void unregisterWidget(Internal::ProjectTreeWidget *widget); static void unregisterWidget(Internal::ProjectTreeWidget *widget);
static void nodeChanged(Internal::ProjectTreeWidget *widget); static void nodeChanged(Internal::ProjectTreeWidget *widget);
static Project *projectForNode(Node *node);
static void aboutToShutDown(); static void aboutToShutDown();