![]() |
OpenAlbum 1.0.b
|
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 }