narry | bonjour à tous , j'ai un prob avec une fenetre de dialogue, donc je doit lalancer a partir d'un menu et je doit la valider avec le bouton OK, sauf que la sauvegarde ne se fait pas, donc je vous donne le code qui concerne le bouton OK et celui du "save project" qui lance la boite de dialogue
Code :
- void KGenerator::slotSaveProject() {
- // On affiche la boite de dialogue de gestion du projet
- if (*authorExample == QString::null) {
- QMessageBox::warning(this,"Example","Missing : author example" );
- } else {
- if (*titleExample == QString::null) {
- QMessageBox::warning(this,"Example","Missing : title example" );
- } else {
- if (*urlBookExample == QString::null) {
- QMessageBox::warning(this,"Example","Missing : target example" );
- }
- else{
- dialogueProjet->show(*projectName, *rootUrl, depth, exitAutorized,
- targetOnMaxDepth,*listGoals, *authorExample,
- *titleExample, *urlBookExample, authorDistance,
- titleDistance);
- // Si on a cliquer sur ok
- if (dialogueProjet->result() == QDialog::Accepted) {
- // On charge les informations du projet
- *projectName = dialogueProjet->getProjectName();
- *rootUrl = dialogueProjet->getRoot();
- depth = dialogueProjet->getDepth();
- exitAutorized = dialogueProjet->getExitAutorized();
- targetOnMaxDepth = dialogueProjet->getTargetOnMaxDepth();
- *listGoals = dialogueProjet->getListGoals();
- authorDistance = dialogueProjet->getAuthorDistance();
- titleDistance = dialogueProjet->getTitleDistance();
- //cout << "Pas de sauvegarde sur le disque " << endl;
- saveProjet();
- }
- }
- }
- }
- }
- void KGenerator::saveProjet() {
- ConfigFileGenerator generator;
- // Initialisation des champs
- // racine du site
- generator.setWebSiteAddress(rootUrl->latin1());
- // profondeur max des livres dans le site
- cout<<"l'ancien nbmax"<<depth<<endl;
- depth=5;
- generator.setNbMaxClick(depth);
- cout<<"le nouveau nbmax"<<depth<<endl;
- // autorisation de sortie du site
- if(exitAutorized){
- generator.setExitAuthorized();
- }
- generator.addTargetOnMaxDepth(targetOnMaxDepth);
- // les cibles
- int count = listGoals->count();
- int i;
- for(i=0; i<count; i++){
- generator.addGoal(listGoals->operator[](i).latin1());
- }
- // URL interdites
- count = forbiddenLinkList->count();
- for(i=0; i<count ; i++){
- generator.addForbiddenUrl(forbiddenLinkList->text(i).latin1());
- }
- // noms de lien interdits
- count = forbiddenLinkNameList->count();
- for(i=0; i<count; i++){
- generator.addForbiddenLinkName(forbiddenLinkNameList->text(i).latin1());
- }
- // noms de lien à traverser
- count = expectedLinkNameList->count();
- cout <<count<<endl;
- for(i=0; i<count; i++){
- generator.addExpectedLinkName(expectedLinkNameList->text(i).latin1());
- }
- //Exemple
- if (titleExampleStart.y() < authorExampleStart.y()) {
- generator.defineTitleBeforeAuthor(true);
- } else {
- if ((titleExampleStart.y() == authorExampleStart.y()) &&
- (titleExampleStart.x() < authorExampleStart.x())) {
- generator.defineTitleBeforeAuthor(true);
- } else {
- generator.defineTitleBeforeAuthor(false);
- }
- }
- //exemple : auteur
- generator.addAuthorExample(qstringFilter(*authorExample));
- generator.addAuthorUrlExample(authorUrlExample->latin1());
- generator.addAuthorExampleDistance(authorDistance);
- //exemple : titre livre
- generator.addTitleExample(qstringFilter(*titleExample));
- generator.addTitleUrlExample(titleUrlExample->latin1());
- generator.addTitleExampleDistance(authorDistance);
- //exemple : cible
- generator.addUrlBookExample(urlBookExample->latin1());
- // vérification des champs et impression dans le fichier
- try{
- generator.checkConfig();
- string fileName = projectName->latin1();
- fileName += ".cfg";
- generator.printXML(fileName);
- generator.print();
- }
- catch(Exception e){
- cout << "Erreur : " << e.getError() << endl;
- QMessageBox::critical(this,"Error",e.getError().c_str(),0,0,1);
- }
- }
|
et celui du bouton OK
Code :
- buttonOk = new KPushButton("Ok",this);
- buttonOk->setGeometry(450,420,80,20);
- buttonOk->show();
- connect(buttonOk, SIGNAL(clicked()), this, SLOT(slotValidate()));
- void KProjectDialog::slotValidate() {
- bool intOk = false;
- if (editProjectName->text().length() > 0) {
- if (editRoot->text().length() > 0) {
- editDepth->text().toInt(&intOk);
- if (intOk) {
- if (listGoals->count() > 0) {
- emit signalAccepted();
- } else {
- QMessageBox::critical(this,"Error","You need at least one goal" );
- editGoal->setFocus();
- }
- } else {
- QMessageBox::critical(this,"Error","Error with depth" );
- editDepth->setFocus();
- }
- } else {
- QMessageBox::critical(this,"Error","You need a root" );
- editRoot->setFocus();
- }
- } else {
- QMessageBox::critical(this,"Error","You need a project name" );
- editProjectName->setFocus();
- }
- }
|
vous pourriez peut etre comme ça a vue d'oeil me dire où ça se pourrais que ça cloche parce que moi je ne vois pas du tout |