1 2 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