Ejemplo n.º 1
0
void MainWindow::addTreeRoot(QString type, QString name)
{
    QTreeWidgetItem * treeRoot = new QTreeWidgetItem(ui->treeWidget);
    treeRoot->setText(0, type);
    treeRoot->setText(1, name);
    addTreeChild(treeRoot,  "Fluid", "air");
    addTreeChild(treeRoot,  "Solid", "cu");
}
Ejemplo n.º 2
0
void dialog::addTreeRoot(QString name,QString description)
{
    QTreeWidgetItem *treeItem =new QTreeWidgetItem(ui->treeWidget);
    treeItem->setText(0,name);
    treeItem->setText(1,description);
    addTreeChild(treeItem,name+"A","Child_first");
    addTreeChild(treeItem,name+"B","Child_second");

}
Ejemplo n.º 3
0
void gererCategorie::displayTree()
{
    TemplateManager<Categorie>& tCat=TemplateManager<Categorie>::getInstance();
    std::vector<Categorie> rootCats=getOriginCat();

    //ajout des catégories origines
    for(std::vector<Categorie>::iterator it= rootCats.begin();it != rootCats.end() ; it++)
    {
        tree[(*it)]=addTreeRoot(it->getCode(), it->getDescription());
    }

    //ajout des sous catégories
    for(std::vector<Categorie>::iterator it=tCat.getIterator(); it!=tCat.end();it++)
    {
        if(tree.find(*it) == tree.end())//si on ne la pas encore ajoutée
        {
             std::map<Categorie, QTreeWidgetItem *>::iterator parent = tree.find(tCat.getElement(getParentCat(it->getCode())));
            if( parent != tree.end())//si on a ajouté sa catégorie parente
            {
                tree[(*it)]=addTreeChild(parent->second,it->getCode(), it->getDescription());
            }
            else
            {
                std::vector<QString> parentsToAdd;

                QString s = getParentCat(it->getCode());
                QString s2 = it->getCode();

                while(tree.find(tCat.getElement(s))==tree.end())//tant qu'on a pas trouvé un parent dans l'arbre
                {
                    s2=s;
                    s=getParentCat(s);
                    parentsToAdd.push_back(s2);
                }

                for(unsigned int i =0; i<parentsToAdd.size();i++)
                {
                     qDebug()<<"T :"<<parentsToAdd[i];
                }

                while(parentsToAdd.size()>0)
                {
                    qDebug()<<"Taille"<<parentsToAdd.size()<<" S : "<<s<<" S2 :"<<s2;
                    tree[tCat.getElement(s2)]=addTreeChild(tree[tCat.getElement(s)],s2, tCat.getElement(s2).getDescription());

                    s=s2;
                    parentsToAdd.pop_back();
                    if(parentsToAdd.size()>1)
                    {
                        s2=parentsToAdd.back();
                    }

                }
            }
        }
    }
}
Ejemplo n.º 4
0
void MainWindow::MAJ_treeview_Composition()
{
    ui->TreeWidget->clear();
    ProjetManager& projetmanager = ProjetManager::getInstance();
    vector<QTreeWidgetItem*> afficher;

    for(vector<Projet *>::const_iterator it_projets = projetmanager.getProjets().begin(); it_projets != projetmanager.getProjets().end(); ++it_projets){
        QTreeWidgetItem *treeItem = addTreeRoot((*it_projets)->getId(), (*it_projets)->getTitre());
        afficher.push_back(treeItem);
        vector<Tache*> A_afficher = (*it_projets)->getTaches();
        vector<Tache*>::iterator it_taches = A_afficher.begin();
        // Affichage des tâches directement reliées au projet
        while(it_taches != A_afficher.end()){
            if((*it_taches)->getPere() == 0){
                afficher.push_back(addTreeChild(treeItem, (*it_taches)->getIdentificateur(), (*it_taches)->getTitre()));
                it_taches = A_afficher.erase(it_taches);
            } else {
                ++it_taches;
            }
        }

        // Affichage des compositions
        it_taches = A_afficher.begin();
        while(!A_afficher.empty()){
            QTreeWidgetItem* item = trouver(afficher, (*it_taches)->getPere()->getIdentificateur());
            if(item){
                afficher.push_back(addTreeChild(item, (*it_taches)->getIdentificateur(), (*it_taches)->getTitre()));
                it_taches = A_afficher.erase(it_taches);
            } else {
                ++it_taches;
            }
            if(it_taches == A_afficher.end())
                it_taches = A_afficher.begin();
        }
    }
}