virtual String getUniqueName() const override
 {
     if (!_property) {
         return "unknown";
     }
     String name = _property->name();
     if (getParentItem()) {
         name = getParentItem()->getUniqueName() + name;
     }
     return name;
 }
void ProjectTreeViewBase::addFiles (const StringArray& files, int insertIndex)
{
    ProjectTreeViewBase* p = dynamic_cast <ProjectTreeViewBase*> (getParentItem());

    if (p != nullptr)
        p->addFiles (files, insertIndex);
}
void InfosProduitDialog::on_buttonBox_accepted()
{
    getParentItem()->setNomProduit(ui->txtNom->text());
    getParentItem()->setDateAchat(ui->dateAchat->date());

    if(!ui->checkGarantieAVie->isChecked())
        getParentItem()->setDateFinGarantie(ui->dateFinGarantie->date());
    else
        getParentItem()->setDateFinGarantie(QDate(1970, 1, 1));

    getParentItem()->setImage(this->image);

    QSettings *settings = new QSettings("Deuchnord", "Hermes");
    QFile fichierMagasins(settings->value("placeSave").toString()+"/deuchnord-hermes/manufacturers.xml");
    bool manufacturerAllreadyExists = false;
    QDomDocument dom;
    QDomElement root, manufacturer;
    QDomNode node;

    if(fichierMagasins.open(QFile::ReadOnly)) {

        QString contenuFichier = fichierMagasins.readAll();
        fichierMagasins.close();

        dom.setContent(contenuFichier);
        root = dom.firstChildElement();
        node = root.firstChild();

        while(!node.isNull())
        {
            manufacturer = node.toElement();
            if(manufacturer.tagName() == "manufacturer")
                if(ui->comboMagasin->currentText() == manufacturer.firstChild().toText().data())
                    manufacturerAllreadyExists = true;

            node = node.nextSibling();
        }
    }

    if(!manufacturerAllreadyExists) {

        dom = QDomDocument("manufacturers");
        root = dom.createElement("manufacturers");
        dom.appendChild(root);

        // Boucle d'enregistrement des éléments du combo
        for(int i = 0; i < ui->comboMagasin->count(); i++) {

            QDomElement domManufacturer = dom.createElement("manufacturer");
            root.appendChild(domManufacturer);
            QDomText textManufacturer = dom.createTextNode(ui->comboMagasin->itemText(i));
            domManufacturer.appendChild(textManufacturer);

        }

        // Enregistrement du nouveau magasin
        QDomElement domNewManufacturer = dom.createElement("manufacturer");
        root.appendChild(domNewManufacturer);
        QDomText textNewManufacturer = dom.createTextNode(ui->comboMagasin->currentText());
        domNewManufacturer.appendChild(textNewManufacturer);

        // Enregistrement du fichier XML
        QFile fileManufacturers(settings->value("placeSave").toString()+"/deuchnord-hermes/manufacturers.xml");
        if(fileManufacturers.open(QFile::WriteOnly)) {

            fileManufacturers.write(dom.toString().toUtf8());
            fileManufacturers.close();

        }

        getParentItem()->setMagasin(ui->comboMagasin->count());

    }

    else
        getParentItem()->setMagasin(ui->comboMagasin->currentIndex());

    getParentItem()->setEnSAV(ui->checkSAV->isChecked());
    getParentItem()->setFactures(this->facturePDF);
    getParentItem()->setGaranties(this->garantiePDF);
}
//==============================================================================
ProjectTreeViewBase* ProjectTreeViewBase::getParentProjectItem() const
{
    return dynamic_cast <ProjectTreeViewBase*> (getParentItem());
}