<commit_before>//
// Copyright (C) 2013 <NAME> <<EMAIL>>
// Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
//
// This file is part of Qt Creator Boost.Build plugin project.
//
// This is free software; you can redistribute and/or modify it under
// the terms of the GNU Lesser General Public License, Version 2.1
// as published by the Free Software Foundation.
// See accompanying file LICENSE.txt or copy at 
// http://www.gnu.org/licenses/lgpl-2.1-standalone.html.
//
#ifndef BBPROJECTNODE_HPP
#define BBPROJECTNODE_HPP

// Qt Creator
#include <projectexplorer/projectnodes.h>
// Qt
#include <QFutureInterface>
#include <QList>
#include <QSet>
#include <QString>
#include <QStringList>

namespace Core {
class IDocument;
}

namespace ProjectExplorer {
class RunConfiguration;
}

namespace BoostBuildProjectManager {
namespace Internal {

class Project;

// An in-memory presentation of a Project.
// Represents a file or a folder of the project tree.
// No special operations (addFiles(), removeFiles(), renameFile(), etc.) are offered.
class ProjectNode : public ProjectExplorer::ProjectNode
{
    Q_OBJECT

public:
    ProjectNode(Project* project, Core::IDocument* projectFile);

    bool hasBuildTargets() const;
    QList<ProjectExplorer::ProjectAction> supportedActions(Node* node) const;
    bool canAddSubProject(QString const& filePath) const;
    bool addSubProjects(QStringList const& filePaths);
    bool removeSubProjects(QStringList const& filePaths);
    bool addFiles(QStringList const& filePaths, QStringList* notAdded /*= 0*/);
    bool removeFiles(QStringList const& filePaths, QStringList* notRemoved /*= 0*/);
    bool deleteFiles(QStringList const& filePaths);
    bool renameFile(QString const& filePath, QString const& newFilePath);
    QList<ProjectExplorer::RunConfiguration*> runConfigurationsFor(Node* node);

    void refresh(QSet<QString> oldFileList);

private:

    ProjectExplorer::FolderNode*
    createFolderByName(QStringList const& components, int end);<commit_msg>Fix: ProjectNode is not a QObject anymore<commit_after>//
// Copyright (C) 2013 <NAME> <<EMAIL>>
// Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
//
// This file is part of Qt Creator Boost.Build plugin project.
//
// This is free software; you can redistribute and/or modify it under
// the terms of the GNU Lesser General Public License, Version 2.1
// as published by the Free Software Foundation.
// See accompanying file LICENSE.txt or copy at 
// http://www.gnu.org/licenses/lgpl-2.1-standalone.html.
//
#ifndef BBPROJECTNODE_HPP
#define BBPROJECTNODE_HPP

// Qt Creator
#include <projectexplorer/projectnodes.h>
// Qt
#include <QFutureInterface>
#include <QList>
#include <QSet>
#include <QString>
#include <QStringList>

namespace Core {
class IDocument;
}

namespace ProjectExplorer {
class RunConfiguration;
}

namespace BoostBuildProjectManager {
namespace Internal {

class Project;

// An in-memory presentation of a Project.
// Represents a file or a folder of the project tree.
// No special operations (addFiles(), removeFiles(), renameFile(), etc.) are offered.
class ProjectNode : public ProjectExplorer::ProjectNode
{

public:
    ProjectNode(Project* project, Core::IDocument* projectFile);

    bool hasBuildTargets() const;
    QList<ProjectExplorer::ProjectAction> supportedActions(Node* node) const;
    bool canAddSubProject(QString const& filePath) const;
    bool addSubProjects(QStringList const& filePaths);
    bool removeSubProjects(QStringList const& filePaths);
    bool addFiles(QStringList const& filePaths, QStringList* notAdded /*= 0*/);
    bool removeFiles(QStringList const& filePaths, QStringList* notRemoved /*= 0*/);
    bool deleteFiles(QStringList const& filePaths);
    bool renameFile(QString const& filePath, QString const& newFilePath);
    QList<ProjectExplorer::RunConfiguration*> runConfigurationsFor(Node* node);

    void refresh(QSet<QString> oldFileList);

private:

    ProjectExplorer::FolderNode*
    createFolderByName(QStringList const& components, int end);
{'fraction_non_alphanumeric': 0.10402767482085495, 'fraction_numerical': 0.006918705213738572, 'mean_word_length': 4.782857142857143, 'pattern_counts': {'":': 0, '<': 27, '<?xml version=': 0, '>': 27, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2355086', 'n_tokens_mistral': 1209, 'n_tokens_neox': 1152, 'n_words': 378}