OpenAlbum 1.0.b

/home/manuel/PFC/open-album/OpenAlbum-Unix/dialogcreacionpaginaspersonalizadas.cpp

00001 #include "dialogcreacionpaginaspersonalizadas.h"
00002 #include "ui_dialogcreacionpaginaspersonalizadas.h"
00003 #include <QDir>
00004 #include "parser.h"
00005 #include "fondodialog.h"
00006 #include "dialogtextopagina.h"
00007 #include "string.h"
00008 #include "error.h"
00009 #include "dialogmarcos.h"
00010 
00011 dialogcreacionpaginaspersonalizadas::dialogcreacionpaginaspersonalizadas(int fotosR, int pagina, controladorResolucion *controlador_, QDir directoriodetrabajo) :
00012     ui(new Ui::dialogcreacionpaginaspersonalizadas)
00013 {
00014     ui->setupUi(this);
00015   
00016     this->escogidosMarcos=false;
00017    this->ui->pushIntroTexto->setDisabled(true);
00018    this->ui->groupBox_3->setDisabled(true);
00019    this->controlador=controlador_;
00020    this->setDimensiones();
00021    this->directorioPpal=directoriodetrabajo;
00022    this->ui->SelectorPlantilla->setStyle(new QWindowsStyle);
00023    this->ui->groupBox->setStyle(new QWindowsStyle);
00024    this->ui->groupBox_2->setStyle(new QWindowsStyle);
00025    this->ui->groupBox_3->setStyle(new QWindowsStyle);
00026    this->ui->groupBox_4->setStyle(new QWindowsStyle);
00027    this->ui->VisualizarPlantillas->setStyle(new QWindowsStyle);
00028    
00029     this->numFotosPagina=1;
00030     this->numPaginas=0;
00031     this->subTareaCompleta=false;
00032     this->textoEstablecido=false;
00033     this->numPagina=pagina;
00034     this->numFotos=fotosR;
00035     this->numTextos=0;
00036     this->ColorElegido=new QColor();
00037     this->FondoElegido= new QString();
00038     color=false;
00039     QString *numF;
00040     
00041     try{
00042         numF=new QString(fotosR);
00043        
00044     }catch(std::exception& e){
00045                 Error *err=new Error(2, e.what(), this);
00046                 err->LanzarDialogo();
00047                 delete err;
00048                 exit(1);
00049                 }
00050     ui->labelFotosRestantes->setText(*numF);
00051     
00052    
00053     
00054     this->escritooNo1=false;
00055     this->escritooNo2=false;
00056     this->escritooNo3=false;
00057     this->escritooNo4=false;
00058    this->ActivarSeleccionPlantilla();
00059    delete numF;
00060    QIcon *iconoVentana=new QIcon(directoriodetrabajo.absolutePath() + "/data/iconlargue.png");
00061    this->setWindowIcon(*iconoVentana);
00062    delete iconoVentana;
00063 }
00064 
00065 dialogcreacionpaginaspersonalizadas::~dialogcreacionpaginaspersonalizadas()
00066 {
00067     for(int j=0; j < ui->VisualizarPlantillas->items().size(); j++){
00068         delete ui->VisualizarPlantillas->items().at(j);
00069     }
00070     delete ui->VisualizarPlantillas->scene();
00071     delete ui->VisualizarPlantillas;
00072     delete ui;
00073     
00074     delete this->FondoElegido;
00075     delete this->ColorElegido;
00076     
00077 }
00078 
00079 void dialogcreacionpaginaspersonalizadas::setDimensiones(){
00080     this->setFixedSize(this->controlador->getWpaginaspersonalizadas(), this->controlador->getHpaginaspersonalizadas());
00081     int W=this->controlador->getWpaginaspersonalizadas();
00082     int H=this->controlador->getHpaginaspersonalizadas();
00083     
00084     
00085         int x,y;
00086         x=this->ui->SelectorPlantilla->x();
00087         y=this->ui->SelectorPlantilla->y();
00088         this->ui->SelectorPlantilla->setGeometry((x*W)/485, (y*H)/295, (291*W)/485, (123*H)/295);
00089         x=this->ui->VisualizarPlantillas->x();
00090         y=this->ui->VisualizarPlantillas->y();
00091         this->ui->VisualizarPlantillas->setGeometry((x*W)/485, (y*H)/295, (129*W)/485, (95*H)/295);
00092         x=this->ui->groupBox->x();
00093         y=this->ui->groupBox->y();
00094         this->ui->groupBox->setGeometry((x*W)/485, (y*H)/295, (461*W)/485, (151*H)/295);
00095         x=this->ui->groupBox_2->x();
00096         y=this->ui->groupBox_2->y();
00097         this->ui->groupBox_2->setGeometry((x*W)/485, (y*H)/295, (141*W)/485, (71*H)/295);
00098        x=this->ui->groupBox_3->x();
00099         y=this->ui->groupBox_3->y();
00100         this->ui->groupBox_3->setGeometry((x*W)/485, (y*H)/295, (141*W)/485, (71*H)/295);
00101        x=this->ui->groupBox_4->x();
00102         y=this->ui->groupBox_4->y();
00103         this->ui->groupBox_4->setGeometry((x*W)/485, (y*H)/295, (141*W)/485, (71*H)/295);
00104       
00105         x=this->ui->labelFotosRestantes->x();
00106         y=this->ui->labelFotosRestantes->y();
00107         this->ui->labelFotosRestantes->setGeometry((x*W)/485, (y*H)/295, (51*W)/485, (17*H)/295);
00108         x=this->ui->label_5->x();
00109         y=this->ui->label_5->y();
00110         this->ui->label_5->setGeometry((x*W)/485, (y*H)/295, (111*W)/485, (20*H)/295);
00111         x=this->ui->pushCancelar->x();
00112         y=this->ui->pushCancelar->y();
00113         this->ui->pushCancelar->setGeometry((x*W)/485, (y*H)/295, (98*W)/485, (27*H)/295);
00114         x=this->ui->pushSiguiente->x();
00115         y=this->ui->pushSiguiente->y();
00116         this->ui->pushSiguiente->setGeometry((x*W)/485, (y*H)/295, (98*W)/485, (27*H)/295);
00117          x=this->ui->pushFondo->x();
00118         y=this->ui->pushFondo->y();
00119         this->ui->pushFondo->setGeometry((x*W)/485, (y*H)/295, (121*W)/485, (27*H)/295);
00120          x=this->ui->pushIntroTexto->x();
00121         y=this->ui->pushIntroTexto->y();
00122         this->ui->pushIntroTexto->setGeometry((x*W)/485, (y*H)/295, (121*W)/485, (27*H)/295);
00123          x=this->ui->pushIntroMarco->x();
00124         y=this->ui->pushIntroMarco->y();
00125         this->ui->pushIntroMarco->setGeometry((x*W)/485, (y*H)/295, (121*W)/485, (27*H)/295);
00126         
00127 }
00128 
00129 void dialogcreacionpaginaspersonalizadas::SetIndices(int numPagina, int numFotos){
00130     
00131     this->numPagina=numPagina;
00132     this->numFotos=numFotos;
00133     if(numFotos<=0){
00134         numFotos=0;
00135     }
00136     QString *numF;
00137     
00138    
00139     try{
00140     numF=new QString(numFotos);
00141    
00142     
00143     
00144     
00145     }catch(std::exception& e){
00146                 Error *err=new Error(2, e.what(), this);
00147                 err->LanzarDialogo();
00148                 delete err;
00149                 exit(1);
00150                 }
00151     
00152     if(numPagina!=0){
00153     ui->labelFotosRestantes->setText(*numF);
00154     
00155     }
00156     delete numF;
00157 }
00158 void dialogcreacionpaginaspersonalizadas::setMiniaturasTexturas(std::vector<QGraphicsView*> min){
00159     this->miniaturasTexturas=min;
00160 }
00161 
00162 void dialogcreacionpaginaspersonalizadas::setMiniaturasMarcos(std::vector<QGraphicsView*> min){
00163     this->miniaturasMarcos=min;
00164 }
00165 
00166 QList<marco> dialogcreacionpaginaspersonalizadas::getMarcos(){
00167     return this->marcos;
00168 }
00169 
00170 bool dialogcreacionpaginaspersonalizadas::EscogidosMarcos(){
00171     return this->escogidosMarcos;
00172 }
00173 
00174 void dialogcreacionpaginaspersonalizadas::EscogerMarco(){
00175     dialogMarcos *dialog=new dialogMarcos(this, this->nombreplantilla, this->controlador, this->directorioPpal);
00176     dialog->setMiniaturas(this->miniaturasMarcos);
00177     dialog->SeleccionarPrimerItem();
00178     dialog->exec();
00179     //introducir marcos en la pagina
00180     if(dialog->result()==QDialog::Accepted){
00181         this->ui->pushIntroMarco->setDisabled(true);
00182         this->ui->SelectorPlantilla->setDisabled(true);
00183         this->escogidosMarcos=true;
00184         this->marcos=dialog->getMarcos();
00185     }
00186     delete dialog;
00187 }
00188 
00189 void dialogcreacionpaginaspersonalizadas::EstablecerFondo(QWidget *parent){
00190     
00191     FondoDialog *dialog;
00192     if(parent==0){
00193         parent=this;
00194     }
00195     try{
00196     dialog=new FondoDialog(parent, this->GetNombrePlantilla(), true, this->controlador, this->directorioPpal);
00197     }catch(std::exception& e){
00198                 Error *err=new Error(2, e.what(), this);
00199                 err->LanzarDialogo();
00200                 delete err;
00201                 exit(1);
00202                 }
00203     dialog->setMiniaturasTexturas(this->miniaturasTexturas);
00204     dialog->exec();
00205     
00206     this->color=false;
00207     if(dialog->ColordeFondo()){
00208        try{ 
00209        *ColorElegido= dialog->ColorFondo();
00210        }catch(std::exception& e){
00211                 Error *err=new Error(2, e.what(), this);
00212                 err->LanzarDialogo();
00213                 delete err;
00214                 exit(1);
00215                 }
00216 
00217         color=true;
00218         
00219     }else{
00220         try{
00221         *FondoElegido= dialog->ImagenFondo();
00222         }catch(std::exception& e){
00223                 Error *err=new Error(2, e.what(), this);
00224                 err->LanzarDialogo();
00225                 delete err;
00226                 exit(1);
00227                 }
00228         
00229         color=false;
00230     }
00231     if(dialog->getTareaCompleta()){
00232         this->ui->SelectorPlantilla->setDisabled(true);
00233         this->ui->pushFondo->setDisabled(true);
00234         this->subTareaCompleta=true;
00235     }
00236     if(dialog->getTareaCompleta() && this->numTextos==0){
00237         ui->pushSiguiente->setEnabled(true);
00238         ui->SelectorPlantilla->setDisabled(true);
00239     }else{
00240         if(dialog->getTareaCompleta() && this->textoEstablecido){
00241         ui->pushSiguiente->setEnabled(true);
00242         ui->SelectorPlantilla->setDisabled(true);
00243     }
00244     }
00245     
00246     delete dialog;
00247 
00248 
00249 }
00250 
00251 int dialogcreacionpaginaspersonalizadas::GetNumTextos(){
00252     return numTextos;
00253 
00254 }
00255 
00256 void dialogcreacionpaginaspersonalizadas::PushSiguiente(){
00257     int a=this->numFotos;
00258     int b=this->numFotosPagina;
00259     int c=a-b;
00260     if(c<0){
00261         c=0;
00262     }
00263     this->numFotos=c;
00264     this->close();
00265     this->finished(1);
00266     this->setResult(1);
00267     this->numPagina=this->numPagina+2;
00268 }
00269 
00270 bool dialogcreacionpaginaspersonalizadas::EscritoOno1(){
00271     return this->escritooNo1;
00272 }
00273 
00274 bool dialogcreacionpaginaspersonalizadas::EscritoOno2(){
00275     return this->escritooNo2;
00276 }
00277 
00278 bool dialogcreacionpaginaspersonalizadas::CursivaOno1(){
00279     return this->c1;
00280 }
00281 
00282 bool dialogcreacionpaginaspersonalizadas::CursivaOno2(){
00283     return this->c2;
00284 }
00285 
00286 bool dialogcreacionpaginaspersonalizadas::CursivaOno3(){
00287     return this->c3;
00288 }
00289 
00290 bool dialogcreacionpaginaspersonalizadas::CursivaOno4(){
00291     return this->c4;
00292 }
00293 
00294 bool dialogcreacionpaginaspersonalizadas::NegritaOno1(){
00295     return this->n1;
00296 }
00297 
00298 bool dialogcreacionpaginaspersonalizadas::NegritaOno2(){
00299     return this->n2;
00300 }
00301 
00302 bool dialogcreacionpaginaspersonalizadas::NegritaOno3(){
00303     return this->n3;
00304 }
00305 
00306 bool dialogcreacionpaginaspersonalizadas::NegritaOno4(){
00307     return this->n4;
00308 }
00309 
00310 bool dialogcreacionpaginaspersonalizadas::SubrayadoOno1(){
00311     return this->s1;
00312 }
00313 
00314 bool dialogcreacionpaginaspersonalizadas::SubrayadoOno2(){
00315     return this->s2;
00316 }
00317 
00318 bool dialogcreacionpaginaspersonalizadas::SubrayadoOno3(){
00319     return this->s3;
00320 }
00321 
00322 bool dialogcreacionpaginaspersonalizadas::SubrayadoOno4(){
00323     return this->s4;
00324 }
00325 
00326 QString dialogcreacionpaginaspersonalizadas::Texto1(){
00327     return this->t1;
00328 }
00329 
00330 QString dialogcreacionpaginaspersonalizadas::Texto2(){
00331     return this->t2;
00332 }
00333 
00334 QString dialogcreacionpaginaspersonalizadas::Texto3(){
00335     return this->t3;
00336 }
00337 
00338 QString dialogcreacionpaginaspersonalizadas::Texto4(){
00339     return this->t4;
00340 }
00341 
00342 QFont dialogcreacionpaginaspersonalizadas::Fuente1(){
00343     return this->fuente1;
00344 }
00345 
00346 QFont dialogcreacionpaginaspersonalizadas::Fuente2(){
00347     return this->fuente2;
00348 }
00349 
00350 QFont dialogcreacionpaginaspersonalizadas::Fuente3(){
00351     return this->fuente3;
00352 }
00353 
00354 QFont dialogcreacionpaginaspersonalizadas::Fuente4(){
00355     return this->fuente4;
00356 }
00357 
00358 QColor dialogcreacionpaginaspersonalizadas::Color1(){
00359     return this->clr1;
00360 }
00361 
00362 QColor dialogcreacionpaginaspersonalizadas::Color2(){
00363     return this->clr2;
00364 }
00365 
00366 QColor dialogcreacionpaginaspersonalizadas::Color3(){
00367     return this->clr3;
00368 }
00369 
00370 QColor dialogcreacionpaginaspersonalizadas::Color4(){
00371     return this->clr4;
00372 }
00373 
00374 bool dialogcreacionpaginaspersonalizadas::EscritoOno3(){
00375     return this->escritooNo3;
00376 }
00377 
00378 bool dialogcreacionpaginaspersonalizadas::EscritoOno4(){
00379     return this->escritooNo4;
00380 }
00381 
00382 bool dialogcreacionpaginaspersonalizadas::TextoColoreadoOno1(){
00383     return this->coloreadooNo1;
00384 }
00385 
00386 bool dialogcreacionpaginaspersonalizadas::TextoColoreadoOno2(){
00387     return this->coloreadooNo2;
00388 }
00389 
00390 bool dialogcreacionpaginaspersonalizadas::TextoColoreadoOno3(){
00391     return this->coloreadooNo3;
00392 }
00393 
00394 bool dialogcreacionpaginaspersonalizadas::TextoColoreadoOno4(){
00395     return this->coloreadooNo4;
00396 }
00397 
00398 
00399 void dialogcreacionpaginaspersonalizadas::InicializarTexto1(bool cc1, bool nn1, bool ss1, QString tt1, QFont ff1){
00400 
00401     c1=cc1;
00402     n1=nn1;
00403     s1=ss1;
00404     t1=tt1;
00405     fuente1=ff1;
00406 }
00407 
00408 void dialogcreacionpaginaspersonalizadas::InicializarTexto2(bool cc2, bool nn2, bool ss2, QString tt2, QFont ff2){
00409 
00410     c2=cc2;
00411     n2=nn2;
00412     s2=ss2;
00413     t2=tt2;
00414     fuente2=ff2;
00415 }
00416 
00417 void dialogcreacionpaginaspersonalizadas::InicializarTexto3(bool cc3, bool nn3, bool ss3, QString tt3, QFont ff3){
00418 
00419     c3=cc3;
00420     n3=nn3;
00421     s3=ss3;
00422     t3=tt3;
00423     fuente3=ff3;
00424 }
00425 
00426 void dialogcreacionpaginaspersonalizadas::InicializarTexto4 (bool cc4, bool nn4, bool ss4, QString tt4, QFont ff4){
00427 
00428     c4=cc4;
00429     n4=nn4;
00430     s4=ss4;
00431     t4=tt4;
00432     fuente4=ff4;
00433 }
00434 
00435 void dialogcreacionpaginaspersonalizadas::PushTexto(){
00436     this->ui->SelectorPlantilla->setDisabled(true);
00437     DialogTextoPagina *formTexto;
00438     try{
00439     formTexto= new DialogTextoPagina(0, GetNumTextos(), this->nombreplantilla, this->controlador, this->directorioPpal);
00440     }catch(std::exception& e){
00441                 Error *err=new Error(2, e.what(), this);
00442                 err->LanzarDialogo();
00443                 delete err;
00444                 exit(1);
00445                 }
00446     formTexto->exec();
00447     if(formTexto->formularioAceptado()){
00448 
00449     
00450         if(GetNumTextos()>0){
00451             InicializarTexto1(formTexto->cur1, formTexto->neg1, formTexto->sub1, formTexto->text1, formTexto->f1);
00452             escritooNo1=true;
00453             if(formTexto->coloreado1){
00454                 coloreadooNo1=true;
00455                 clr1=formTexto->colortexto1;
00456             }
00457         }
00458 
00459         if(GetNumTextos()>1){
00460             InicializarTexto2(formTexto->cur2, formTexto->neg2, formTexto->sub2, formTexto->text2, formTexto->f2);
00461             escritooNo2=true;
00462             if(formTexto->coloreado2){
00463                 coloreadooNo2=true;
00464                 clr2=formTexto->colortexto2;
00465             }
00466         }
00467 
00468         if(GetNumTextos()>2){
00469             InicializarTexto3(formTexto->cur3, formTexto->neg3, formTexto->sub3, formTexto->text3, formTexto->f3);
00470             escritooNo3=true;
00471             if(formTexto->coloreado3){
00472                 coloreadooNo3=true;
00473                 clr3=formTexto->colortexto3;
00474             }
00475         }
00476 
00477         if(GetNumTextos()>3){
00478             InicializarTexto4(formTexto->cur4, formTexto->neg4, formTexto->sub4, formTexto->text4, formTexto->f4);
00479             escritooNo4=true;
00480             if(formTexto->coloreado4){
00481                 coloreadooNo4=true;
00482                 clr4=formTexto->colortexto4;
00483             }
00484         }
00485 
00486 
00487         
00488     }
00489     if(GetNumTextos()==1){
00490         if(!this->t1.isNull()){
00491             this->textoEstablecido=true;
00492     
00493         }else{
00494             this->textoEstablecido=false;
00495         }
00496     }
00497     if(GetNumTextos()==2){
00498         if(!this->t1.isNull() && !this->t2.isNull()){
00499             this->textoEstablecido=true;
00500     
00501         }else{
00502             this->textoEstablecido=false;
00503         }
00504     }
00505     if(GetNumTextos()==3){
00506         if(!this->t1.isNull() && !this->t2.isNull() && !this->t3.isNull()){
00507             this->textoEstablecido=true;
00508     
00509         }else{
00510             this->textoEstablecido=false;
00511         }
00512     }
00513     if(GetNumTextos()==4){
00514         if(!this->t1.isNull() && !this->t2.isNull() && !this->t3.isNull() && !this->t4.isNull()){
00515             this->textoEstablecido=true;
00516     
00517         }else{
00518             this->textoEstablecido=false;
00519         }
00520     }
00521     if(this->textoEstablecido && this->subTareaCompleta){
00522         ui->pushSiguiente->setEnabled(true);
00523         ui->SelectorPlantilla->setDisabled(true);
00524     }
00525     delete formTexto;
00526 
00527 }
00528 
00529 int dialogcreacionpaginaspersonalizadas::GetFotosRestantes(){
00530     return this->numFotos;
00531 }
00532 
00533 void dialogcreacionpaginaspersonalizadas::ActivarVisualizacionPlantilla(){
00534   
00535     QGraphicsScene *scene;
00536     try{
00537        
00538         scene = new QGraphicsScene();
00539     }catch(std::exception& e){
00540         Error *err=new Error(2, e.what(), this);
00541         err->LanzarDialogo();
00542         delete err;
00543         exit(1);
00544     }
00545     ui->VisualizarPlantillas->setScene(scene);
00546 
00547     for (int i = ui->SelectorPlantilla->topLevelItemCount() - 1; i >= 0; i--){
00548 
00549         if((ui->SelectorPlantilla->topLevelItem(i))->isSelected()){
00550             ui->pushFondo->setEnabled(true);
00551             QString filename=this->directorioPpal.absolutePath() +"/templates/pages/" + (ui->SelectorPlantilla->topLevelItem(i))->text(0) + ".xml";
00552             nombreplantilla=filename;
00553             Parser parser(filename.toStdString(), this);
00554             ticpp::Element* element = parser.root();
00555             std::string filenameprev = parser.get_attribute("preview", element);
00556             std::string marco = parser.get_attribute("marcos", element);
00557             if(marco=="si"){
00558                 
00559                 ui->pushIntroMarco->setEnabled(true);
00560                 ui->groupBox_4->setEnabled(true);
00561             }else{
00562                 ui->pushIntroMarco->setDisabled(true);
00563                 ui->groupBox_4->setDisabled(true);
00564                 
00565             }
00566             int texto;
00567             int numero;
00568             parser.get_attribute("texto", element, &texto);
00569             parser.get_attribute("imagen", element, &numero);
00570             this->numFotosPagina=numero;
00571             int a=this->numPagina;
00572             int c=this->numFotos;
00573             int d=this->numFotosPagina;
00574             int b;
00575             b=c-d;
00576             QString *numA;
00577             QString *numB;
00578             try{
00579             numA=new QString("");
00580             numB=new QString("");
00581             }catch(std::exception& e){
00582                 Error *err=new Error(2, e.what(), this);
00583                 err->LanzarDialogo();
00584                 delete err;
00585                 exit(1);
00586             }
00587             
00588             numA->setNum(a+1);
00589             
00590             
00591             if(b<=0){
00592                 b=0;
00593                 ui->pushSiguiente->setText(tr("Fin"));
00594             }else{
00595               ui->pushSiguiente->setText(tr("Siguiente"));
00596             }
00597             numB->setNum(b);
00598             QString *cadena;
00599             QString *cadena2;
00600             QString *numAux=new QString("");;
00601             try{
00602             
00603             cadena=new QString((*numA));
00604             cadena->append(tr(" y "));
00605             
00606                numAux->setNum(a+2); 
00607             
00608             
00609             cadena->append(*numAux);
00610             cadena2=new QString((*numB));
00611             }catch(std::exception& e){
00612                 Error *err=new Error(2, e.what(), this);
00613                 err->LanzarDialogo();
00614                 delete err;
00615                 exit(1);
00616                 }
00617             QString *titulo=new QString(tr("Creación de páginas "));
00618             titulo->append(*cadena);
00619             this->setWindowTitle(*titulo);
00620             
00621             
00622             ui->labelFotosRestantes->setText(*cadena2);
00623 
00624             if(texto!=0){
00625                 ui->pushIntroTexto->setEnabled(true);
00626                 this->ui->groupBox_3->setEnabled(true);
00627                 numTextos=texto;
00628 
00629 
00630             }else{
00631                 ui->pushIntroTexto->setDisabled(true);
00632                 this->ui->groupBox_3->setDisabled(true);
00633                 numTextos=texto;
00634             }
00635 
00636             QString *aux;
00637             try{
00638             aux=new QString(filenameprev.c_str());
00639             }catch(std::exception& e){
00640                 Error *err=new Error(2, e.what(), this);
00641                 err->LanzarDialogo();
00642                 delete err;
00643                 exit(1);
00644                 }
00645             QString filenameprev2=this->directorioPpal.absolutePath() + "/templates/pages/";
00646             
00647             QImage *img;
00648             try{
00649             img= new QImage();
00650             }catch(std::exception& e){
00651                 Error *err=new Error(2, e.what(), this);
00652                 err->LanzarDialogo();
00653                 delete err;
00654                 exit(1);
00655                 }
00656             try{
00657             img->load(filenameprev2 + *aux);
00658             }catch(std::exception& e){
00659                 Error *err=new Error(4, e.what(), this);
00660                 err->LanzarDialogo();
00661                 delete err;
00662                 exit(1);
00663                 }
00664             QPixmap image=QPixmap::fromImage(*img);
00665             ui->VisualizarPlantillas->scene()->addPixmap(image.scaled((129*this->controlador->getWpaginaspersonalizadas())/485, (95*this->controlador->getHpaginaspersonalizadas())/295, Qt::IgnoreAspectRatio, Qt::SmoothTransformation));
00666             delete numA;
00667             delete numB;
00668             delete cadena;
00669             delete cadena2;
00670             delete numAux;
00671             delete titulo;
00672             delete aux;
00673             delete img;
00674         }
00675 
00676     }
00677 
00678     
00679 }
00680 
00681 QString dialogcreacionpaginaspersonalizadas::GetImagenFondo(){
00682     return *FondoElegido;
00683 }
00684 
00685 QColor dialogcreacionpaginaspersonalizadas::GetColorFondo(){
00686     return *ColorElegido;
00687 }
00688 
00689 QString dialogcreacionpaginaspersonalizadas::GetNombrePlantilla(){
00690     return this->nombreplantilla;
00691 }
00692 
00693 bool dialogcreacionpaginaspersonalizadas::ElegidoColor(){
00694     return this->color;
00695 }
00696 
00697 bool dialogcreacionpaginaspersonalizadas::ElegidoImagen(){
00698     return !color;
00699 }
00700 
00701 void dialogcreacionpaginaspersonalizadas::ActivarSeleccionPlantilla(){
00702     ui->SelectorPlantilla->setEnabled(true);
00703     ui->VisualizarPlantillas->setEnabled(true);
00704     ui->SelectorPlantilla->clear();
00705     ui->pushSiguiente->setDisabled(true);
00706     QDir *dir;
00707     QStringList *por;
00708     
00709     try{
00710    
00711     QString path=this->directorioPpal.absolutePath() + "/templates/pages";
00712     dir=new QDir(path);
00713     por=new QStringList("*.xml");
00714     }catch(std::exception& e){
00715                 Error *err=new Error(2, e.what(), this);
00716                 err->LanzarDialogo();
00717                 delete err;
00718                 exit(1);
00719     }
00720     QStringList fileNames = dir->entryList(*por);
00721     bool chivato=false;
00722     for (int i = 0; i < fileNames.count(); i++) {
00723         QFileInfo fi(fileNames.at(i).toLocal8Bit());
00724         QTreeWidgetItem *item;
00725         try{
00726             item= new QTreeWidgetItem(ui->SelectorPlantilla);
00727         }catch(std::exception& e){
00728                 Error *err=new Error(2, e.what(), this);
00729                 err->LanzarDialogo();
00730                 delete err;
00731                 exit(1);
00732         }
00733         QString texto=fi.fileName();
00734         texto.remove(".xml");
00735         item->setText(0, texto);
00736         QString plantilla=this->directorioPpal.absolutePath() + "/templates/pages/" + fi.fileName();
00737         Parser parser(plantilla.toStdString(), this);
00738         ticpp::Element* element = parser.root();
00739         int imagenes=0;
00740         parser.get_attribute("imagen", element, &imagenes);
00741         std::string resultado=parser.get_attribute("editable", element);
00742         if(resultado=="todo"){
00743             item->setText(1, "Si");
00744         }else{
00745             if(resultado=="solotexto"){
00746               item->setText(1, tr("Solo texto"));
00747             }else{
00748               item->setText(1, tr("No"));
00749             }
00750         }
00751         if(imagenes>this->numFotos){
00752             item->setDisabled(true);
00753         }else{
00754             item->setDisabled(false);
00755         }
00756         
00757         if(i==0 && imagenes<=this->numFotos){
00758             item->setSelected(true);
00759             chivato=true;
00760         }else{
00761         
00762         if(imagenes<=this->numFotos && !chivato){
00763             chivato=true;
00764             item->setSelected(true);
00765         }
00766         }
00767     }
00768     delete dir;
00769     delete por;
00770 }
 Todo Clases Archivos Funciones Variables