forked from qt-creator/qt-creator
ProjectWizardPage: Simplify tree walking
Change-Id: I74eb980a762b6a880ec40a359afb6b36a6bab419 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
@@ -254,19 +254,6 @@ static inline AddNewTree *buildAddProjectTree(ProjectNode *root, const QString &
|
||||
return new AddNewTree(root, children, root->displayName());
|
||||
}
|
||||
|
||||
static inline AddNewTree *buildAddProjectTree(SessionNode *root, const QString &projectPath, Node *contextNode, BestNodeSelector *selector)
|
||||
{
|
||||
QList<AddNewTree *> children;
|
||||
for (Node *node : root->nodes()) {
|
||||
if (ProjectNode *pn = node->asProjectNode()) {
|
||||
if (AddNewTree *child = buildAddProjectTree(pn, projectPath, contextNode, selector))
|
||||
children.append(child);
|
||||
}
|
||||
}
|
||||
children.prepend(createNoneNode(selector));
|
||||
return new AddNewTree(root, children, root->displayName());
|
||||
}
|
||||
|
||||
static inline AddNewTree *buildAddFilesTree(FolderNode *root, const QStringList &files,
|
||||
Node *contextNode, BestNodeSelector *selector)
|
||||
{
|
||||
@@ -289,31 +276,6 @@ static inline AddNewTree *buildAddFilesTree(FolderNode *root, const QStringList
|
||||
return new AddNewTree(root, children, root->displayName());
|
||||
}
|
||||
|
||||
static inline AddNewTree *buildAddFilesTree(SessionNode *root, const QStringList &files,
|
||||
Node *contextNode, BestNodeSelector *selector)
|
||||
{
|
||||
QList<AddNewTree *> children;
|
||||
for (Node *node : root->nodes()) {
|
||||
if (ProjectNode *pn = node->asProjectNode()) {
|
||||
if (AddNewTree *child = buildAddFilesTree(pn, files, contextNode, selector))
|
||||
children.append(child);
|
||||
}
|
||||
}
|
||||
children.prepend(createNoneNode(selector));
|
||||
return new AddNewTree(root, children, root->displayName());
|
||||
}
|
||||
|
||||
static inline AddNewTree *getChoices(const QStringList &generatedFiles,
|
||||
IWizardFactory::WizardKind wizardKind,
|
||||
Node *contextNode,
|
||||
BestNodeSelector *selector)
|
||||
{
|
||||
if (wizardKind == IWizardFactory::ProjectWizard)
|
||||
return buildAddProjectTree(SessionManager::sessionNode(), generatedFiles.first(), contextNode, selector);
|
||||
else
|
||||
return buildAddFilesTree(SessionManager::sessionNode(), generatedFiles, contextNode, selector);
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
// ProjectWizardPage:
|
||||
// --------------------------------------------------------------------
|
||||
@@ -491,7 +453,25 @@ void ProjectWizardPage::initializeProjectTree(Node *context, const QStringList &
|
||||
ProjectAction action)
|
||||
{
|
||||
BestNodeSelector selector(m_commonDirectory, paths);
|
||||
AddNewTree *tree = getChoices(paths, kind, context, &selector);
|
||||
|
||||
AddNewTree *tree;
|
||||
SessionNode *root = SessionManager::sessionNode();
|
||||
QList<AddNewTree *> children;
|
||||
|
||||
for (Node *node : root->nodes()) {
|
||||
if (ProjectNode *pn = node->asProjectNode()) {
|
||||
if (kind == IWizardFactory::ProjectWizard) {
|
||||
if (AddNewTree *child = buildAddProjectTree(pn, paths.first(), context, &selector))
|
||||
children.append(child);
|
||||
} else {
|
||||
if (AddNewTree *child = buildAddFilesTree(pn, paths, context, &selector))
|
||||
children.append(child);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
children.prepend(createNoneNode(&selector));
|
||||
tree = new AddNewTree(root, children, root->displayName());
|
||||
|
||||
setAdditionalInfo(selector.deployingProjects());
|
||||
|
||||
|
Reference in New Issue
Block a user