| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 
 |  
/*Voilà le slot qui sera chargé d'envoyer les images sur le serveur*/
void FenPrincipale::envoyerCollection()
{
    envoyer->setEnabled(false);                 //Des boutons que je 'grise' pendant que les requêtes sont effectués
    rafraichir->setEnabled(false);
 
 
    /*On commence par vérifier que le tableau n'est PAS vide*/
    if (tabOrdi.isEmpty())                        //Ce tableau contient toutes les images et collections (ou dossier) présent sur l'ordinateur. Il s'agit en faite d'une Structure
    {
        this->dernierGet();                      //Ce slot fais une requête GET puis appelle une méthode qui rafraîchit l'affichage de la fenêtre
        return;
    }
 
    /*On vérifie aussi si l'indexOrdi n'est pas déjà plus petit que 0*/
    if (indexOrdi < 0)                         //L'indexOrdi est initialisé dans une méthode précédente, j'ai fais : indexOrdi=tabOrdi.size()-1 et je décrémente au fur et à mesure
    {
        this->dernierGet();
    }
 
 
    /*Maintenant, il nous faut envoyer nos collections (ou dossier), en commençant par celles qui sont VIDES*/
    else if (tabOrdi[indexOrdi]->fichiers.isEmpty())
    {
        //On post notre collection (vide)
        requete->requetePostCollection(tabOrdi[indexOrdi]->nomCollection);
 
        //On décrémente notre variable
        indexOrdi--;
        //Si après ce post le tableau est vide, on fais un dernierGet
        if (indexOrdi <0)
         {
            bool disco=QObject::disconnect(requete, 0,0,0);                                                 //Je suis obliger de déconnecter à chaque fois ma précédente connexion à l'objet requête pour éviter les conflits
            if (disco)
                QObject::connect(requete, SIGNAL(finis()), this, SLOT(dernierGet()));                //Dans mon objet Requête, j'émet un signal finis() lorsque la requête est terminer et que j'ai finis de traiter les données
            else
            {
                QMessageBox::warning(this, "Erreur", "Erreur de type déconnexion signaux/slots (FenPrincipale 00)");
                return;
            }
 
        }
 
        //Sinon on reviens dans le slot envoyerCollection()
        else
        {
            bool disco=QObject::disconnect(requete, 0, 0, 0);
            if (disco)
                QObject::connect(requete, SIGNAL(finis()), this, SLOT(envoyerCollection()));
            else
            {
                QMessageBox::warning(this, "Erreur", "Erreur de type déconnexion signaux/slots (FenPrincipale 01)");
                return;
            }
        }
    }
 
    //Maintenant si il y a des fichiers dans la collection...
    else
    {
        //Il nous faut vérifier si nous avons déjà l'inputOid (autrement dit si la collection a déjà été envoyé ou pas). Note: L'inputOid est en faite un lien, c'est dans ce lien que l'on va poster nos images afin qu'elles soit rattachées à la collection
        if (tabOrdi[indexOrdi]->inputOid.isEmpty())
        {
            //Si il ne le sont pas....
            //On va poster tout dabord la collection...
            requete->requetePostCollection(tabOrdi[indexOrdi]->nomCollection);
 
            bool disco=QObject::disconnect(requete, 0, 0, 0);
            if (disco)
                QObject::connect(requete, SIGNAL(finis()), this, SLOT(getMAJ()));                      //Ce slot va faire une requête GET qui me retournera un fichier CSV avec les informations dont j'ai besoin (en loccurrence les inputOid)
 
            else
            {
                QMessageBox::warning(this, "Erreur", "Erreur de type déconnexion signaux/slots (FenPrincipale 02)");
                return;
            }
        }
 
 
        //Si ils sont initialisés et que nous avons l'inputOid...Je pense que c'est à ce niveau là qu'il y a le problème
        else
        {
            //Il ne nous reste qu'à envoyer les images
 
            indexImage=tabOrdi[indexOrdi]->fichiers.size()-1;
            this->envoyerImage();
 
            QObject::connect(this, SIGNAL(terminer()), this, SLOT(decrementer()));             //Ce slot sert uniquement à décrémenter l'indexOrdi.
 
            if (indexOrdi<0)
            {
                bool disco=QObject::disconnect(requete, 0, 0, 0);
                if (disco)
                    QObject::connect(requete, SIGNAL(finis()), this, SLOT(dernierGet()));
                else
                {
                    QMessageBox::warning(this, "Erreur", "Erreur de type déconnexion signaux/slots (FenPrincipale 03)");
                    return;
                }
            }
        }
 
    }
} | 
Partager