qbs: Move setup of Group node tree into QbsNodeTreeBuilder

Move code to set up the tree of project nodes out of the project
nodes themselves. This makes them easier to manage and will enable
creator to change to a less update-intense project tree.

Change-Id: I2d0702d257e87543f47ebfb456344423ebe4f871
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
Tobias Hunger
2017-02-17 13:17:31 +01:00
parent 4427a2525c
commit 7b3db8ee1d
6 changed files with 165 additions and 64 deletions

View File

@@ -0,0 +1,50 @@
/****************************************************************************
**
** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qt Creator.
**
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3 as published by the Free Software
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
** included in the packaging of this file. Please review the following
** information to ensure the GNU General Public License requirements will
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
**
****************************************************************************/
#pragma once
#include "qbsnodes.h"
#include <qbs.h>
namespace QbsProjectManager {
namespace Internal {
// ----------------------------------------------------------------------
// QbsNodeTreeBuilder:
// ----------------------------------------------------------------------
class QbsNodeTreeBuilder
{
public:
static ProjectExplorer::FileType fileType(const qbs::ArtifactData &artifact);
static QbsGroupNode *buildGroupNodeTree(const qbs::GroupData &grp, const QString &productPath,
bool productIsEnabled);
static void setupArtifacts(QbsBaseProjectNode *node, const QList<qbs::ArtifactData> &artifacts);
};
} // namespace Internal
} // namespace QbsProjectManager