![]() |
OpenAlbum 1.0.b
|
00001 #include <string> 00002 #include "parser.h" 00003 #include <QPainter> 00004 #include <QPaintEvent> 00005 #include <QString> 00006 #include <QGraphicsView> 00007 #include <qt4/QtGui/qgraphicsitem.h> 00008 #include "Portada.h" 00009 #include "error.h" 00010 00011 Portada::Portada(int width, int height, QWidget *parent_): w(width), h(height), parent(parent_){ 00012 color=false; 00013 contieneTexto=false; 00014 this->usaMascara=false; 00015 editada=false; 00016 try{ 00017 versionFinal=new QGraphicsView(); 00018 versionReducida= new QGraphicsView(); 00019 fondo=new QString(); 00020 this->pathPlantilla= new QString(); 00021 colorfondo=new QColor(); 00022 area_texto_lateral=new ATexto(); 00023 area_texto_frontal=new ATexto(); 00024 area_texto_trasera=new ATexto(); 00025 area_imagen_frontal=new AImagen(); 00026 area_imagen_trasera=new AImagen(); 00027 }catch(std::exception& e){ 00028 Error *err= new Error(2, e.what(), this->parent); 00029 err->LanzarDialogo(); 00030 delete err; 00031 exit(1); 00032 } 00033 area_imagen_frontal->h=0; 00034 area_imagen_frontal->w=0; 00035 area_imagen_frontal->pos_x=0; 00036 area_imagen_frontal->pos_y=0; 00037 area_imagen_trasera->h=0; 00038 area_imagen_trasera->w=0; 00039 area_imagen_trasera->pos_x=0; 00040 area_imagen_trasera->pos_y=0; 00041 area_texto_frontal->w=0; 00042 area_texto_trasera->w=0; 00043 area_texto_lateral->w=0; 00044 this->tieneTextoFrontal=true; 00045 this->tieneTextoTrasero=true; 00046 this->tieneTextoLateral=true; 00047 this->tieneImagenFrontal=true; 00048 this->tieneImagenTrasera=true; 00049 } 00050 00051 Portada::~Portada(){ 00052 delete this->colorfondo; 00053 delete this->fondo; 00054 delete this->pathPlantilla; 00055 delete this->area_imagen_frontal; 00056 delete this->area_imagen_trasera; 00057 delete this->area_texto_frontal; 00058 delete this->area_texto_lateral; 00059 delete this->area_texto_trasera; 00060 for(int i=0; i<this->objetosPortada.size(); i++){ 00061 delete this->objetosPortada[i]; 00062 } 00063 this->objetosPortada.clear(); 00064 for(int i=0; i < this->versionFinal->items().size(); i++){ 00065 delete this->versionFinal->items().at(i); 00066 } 00067 delete this->versionFinal->scene(); 00068 delete this->versionFinal; 00069 for(int i=0; i < this->versionReducida->items().size(); i++){ 00070 delete this->versionReducida->items().at(i); 00071 } 00072 delete this->versionReducida->scene(); 00073 delete this->versionReducida; 00074 } 00075 00076 void Portada::ActivarImagenFrontal(){ 00077 this->tieneImagenFrontal=true; 00078 } 00079 00080 void Portada::DesactivarImagenFrontal(){ 00081 this->tieneImagenFrontal=false; 00082 } 00083 00084 void Portada::ActivarImagenTrasera(){ 00085 this->tieneImagenTrasera=true; 00086 } 00087 00088 void Portada::DesactivarImagenTrasera(){ 00089 this->tieneImagenTrasera=false; 00090 } 00091 00092 void Portada::ActivarTextoFrontal(){ 00093 this->tieneTextoFrontal=true; 00094 } 00095 00096 void Portada::DesactivarTextoFrontal(){ 00097 this->tieneTextoFrontal=false; 00098 } 00099 00100 void Portada::ActivarTextoLateral(){ 00101 this->tieneTextoLateral=true; 00102 } 00103 00104 void Portada::DesactivarTextoLateral(){ 00105 this->tieneTextoLateral=false; 00106 } 00107 00108 void Portada::ActivarTextoTrasero(){ 00109 this->tieneTextoTrasero=true; 00110 } 00111 00112 void Portada::DesactivarTextoTrasero(){ 00113 this->tieneTextoTrasero=false; 00114 } 00115 00116 bool Portada::hayImagenFrontal(){ 00117 return this->tieneImagenFrontal; 00118 } 00119 00120 bool Portada::hayImagenTrasera(){ 00121 return this->tieneImagenTrasera; 00122 } 00123 00124 bool Portada::hayTextoFrontal(){ 00125 return this->tieneTextoFrontal; 00126 } 00127 00128 bool Portada::hayTextoLateral(){ 00129 return this->tieneTextoLateral; 00130 } 00131 00132 bool Portada::hayTextoTrasero(){ 00133 return this->tieneTextoTrasero; 00134 } 00135 00136 void Portada::setPosicionObjeto(unsigned indice, int posx, int posy){ 00137 try{ 00138 this->objetosPortada.at(indice)->setPos(posx, posy); 00139 }catch(std::exception& e){ 00140 Error *err= new Error(1, e.what(), this->parent); 00141 err->LanzarDialogo(); 00142 delete err; 00143 exit(1); 00144 } 00145 00146 } 00147 QList <QGraphicsItem*> Portada::getObjetosPortada(){ 00148 return this->objetosPortada; 00149 } 00150 void Portada::ActivarEdicion(){ 00151 this->editada=true; 00152 } 00153 void Portada::editPosFotoFrontal(int x, int y){ 00154 this->area_imagen_frontal->pos_x=x; 00155 this->area_imagen_frontal->pos_y=y; 00156 00157 } 00158 00159 void Portada::activarMascara(QString ruta){ 00160 this->usaMascara=true; 00161 this->rutaMascara=ruta; 00162 } 00163 00164 QString Portada::getMascara(){ 00165 return this->rutaMascara; 00166 } 00167 00168 bool Portada::activadaMascara(){ 00169 return this->usaMascara; 00170 } 00171 00172 void Portada::editPosFotoTrasera(int x, int y){ 00173 this->area_imagen_trasera->pos_x=x; 00174 this->area_imagen_trasera->pos_y=y; 00175 } 00176 00177 void Portada::editPosTextoLateral(int x, int y){ 00178 this->area_texto_lateral->pos_x=x; 00179 this->area_texto_lateral->pos_y=y; 00180 } 00181 00182 00183 void Portada::editPosTextoFrontal(int x, int y){ 00184 this->area_texto_frontal->pos_x=x; 00185 this->area_texto_frontal->pos_y=y; 00186 } 00187 00188 00189 void Portada::editPosTextoTrasero(int x, int y){ 00190 this->area_texto_trasera->pos_x=x; 00191 this->area_texto_trasera->pos_y=y; 00192 } 00193 00194 bool Portada::GetEditada(){ 00195 return this->editada; 00196 } 00197 00198 void Portada::LoadFotoFrontalRuta(QString filename){ 00199 area_imagen_frontal->ruta=filename; 00200 } 00201 00202 void Portada::LoadColorTextoFrontal(QColor c){ 00203 area_texto_frontal->color=c; 00204 } 00205 00206 void Portada::LoadColorTextoTrasera(QColor c){ 00207 area_texto_trasera->color=c; 00208 } 00209 00210 void Portada::LoadColorTextoLateral(QColor c){ 00211 area_texto_lateral->color=c; 00212 } 00213 00214 void Portada::LoadFotoTraseraRuta(QString filename){ 00215 area_imagen_trasera->ruta=filename; 00216 } 00217 00218 void Portada::LoadFotoFrontalResto(int width, int height, int x, int y, std::string pos){ 00219 area_imagen_frontal->w=width; 00220 area_imagen_frontal->h=height; 00221 area_imagen_frontal->pos_x=x; 00222 area_imagen_frontal->pos_y=y; 00223 area_imagen_frontal->pos=QString::fromStdString(pos); 00224 } 00225 00226 bool Portada::getImagenPosVertical(QString posicion){ 00227 bool devolver=false; 00228 if(posicion=="frontal"){ 00229 if(this->area_imagen_frontal->pos=="vertical"){ 00230 devolver=true; 00231 }else{ 00232 devolver=false; 00233 } 00234 } 00235 if(posicion=="trasera"){ 00236 if(this->area_imagen_trasera->pos=="vertical"){ 00237 devolver=true; 00238 }else{ 00239 devolver=false; 00240 } 00241 } 00242 return devolver; 00243 } 00244 00245 void Portada::LoadFotoTraseraResto(int width, int height, int x, int y, std::string pos){ 00246 area_imagen_trasera->w=width; 00247 area_imagen_trasera->h=height; 00248 area_imagen_trasera->pos_x=x; 00249 area_imagen_trasera->pos_y=y; 00250 area_imagen_trasera->pos=QString::fromStdString(pos); 00251 } 00252 void Portada::LoadTextoFrontal(bool cur, bool neg, bool sub, QString text, QFont f){ 00253 area_texto_frontal->cursiva=cur; 00254 area_texto_frontal->fuente=f; 00255 area_texto_frontal->negrita=neg; 00256 area_texto_frontal->subrayado=sub; 00257 area_texto_frontal->texto=text; 00258 } 00259 void Portada::LoadTextoTrasero(bool cur, bool neg, bool sub, QString text, QFont f){ 00260 area_texto_trasera->cursiva=cur; 00261 area_texto_trasera->fuente=f; 00262 area_texto_trasera->negrita=neg; 00263 area_texto_trasera->subrayado=sub; 00264 area_texto_trasera->texto=text; 00265 } 00266 void Portada::LoadTextoLateral(bool cur, bool neg, bool sub, QString text, QFont f){ 00267 area_texto_lateral->cursiva=cur; 00268 area_texto_lateral->fuente=f; 00269 area_texto_lateral->negrita=neg; 00270 area_texto_lateral->subrayado=sub; 00271 area_texto_lateral->texto=text; 00272 } 00273 void Portada::LoadTextoFrontalResto(int weight, int pt, int x, int y, std::string ver, std::string cen){ 00274 area_texto_frontal->w=weight; 00275 area_texto_frontal->puntos=pt; 00276 area_texto_frontal->pos_x=x; 00277 area_texto_frontal->pos_y=y; 00278 00279 if(ver=="vertical"){ 00280 area_texto_frontal->vertical=true; 00281 }else{ 00282 area_texto_frontal->vertical=false; 00283 } 00284 if(cen=="si"){ 00285 area_texto_frontal->centrado=true; 00286 }else{ 00287 area_texto_frontal->centrado=false; 00288 } 00289 } 00290 00291 void Portada::LoadTextoLateralResto(int weight, int pt, int x, int y, std::string ver, std::string cen){ 00292 area_texto_lateral->w=weight; 00293 area_texto_lateral->puntos=pt; 00294 area_texto_lateral->pos_x=x; 00295 area_texto_lateral->pos_y=y; 00296 if(ver=="vertical"){ 00297 area_texto_lateral->vertical=true; 00298 }else{ 00299 area_texto_lateral->vertical=false; 00300 } 00301 if(cen=="si"){ 00302 area_texto_lateral->centrado=true; 00303 }else{ 00304 area_texto_lateral->centrado=false; 00305 } 00306 } 00307 00308 void Portada::LoadTextoTraseroResto(int weight, int pt, int x, int y, std::string ver, std::string cen){ 00309 area_texto_trasera->w=weight; 00310 area_texto_trasera->puntos=pt; 00311 area_texto_trasera->pos_x=x; 00312 area_texto_trasera->pos_y=y; 00313 if(ver=="vertical"){ 00314 area_texto_trasera->vertical=true; 00315 }else{ 00316 area_texto_trasera->vertical=false; 00317 } 00318 if(cen=="si"){ 00319 area_texto_trasera->centrado=true; 00320 }else{ 00321 area_texto_trasera->centrado=false; 00322 } 00323 00324 00325 } 00326 00327 void Portada::LoadFondo(QString f){ 00328 *fondo=f; 00329 } 00330 00331 void Portada::LoadFondo (QColor c){ 00332 *colorfondo=c; 00333 } 00334 00335 QString Portada::FondoImg (){ 00336 return *fondo; 00337 } 00338 00339 QColor Portada::FondoClr (){ 00340 return *colorfondo; 00341 } 00342 00343 bool Portada::ColordeFondo(){ 00344 return color; 00345 } 00346 00347 void Portada::ActivarColordefondo(){ 00348 color=true; 00349 } 00350 00351 void Portada::DesactivarColordefondo(){ 00352 00353 this->color=false; 00354 } 00355 00356 void Portada::LoadDimensiones(int height, int weight){ 00357 w=weight; 00358 h=height; 00359 } 00360 00361 00362 00363 QString Portada::RutaFotoTrasera(){ 00364 return area_imagen_trasera->ruta; 00365 } 00366 00367 QString Portada::RutaFotoFrontal(){ 00368 return area_imagen_frontal->ruta; 00369 } 00370 00371 int Portada::DimensionWImagenTrasera(){ 00372 return area_imagen_trasera->w; 00373 } 00374 00375 int Portada::DimensionHImagenTrasera(){ 00376 return area_imagen_trasera->h; 00377 } 00378 00379 int Portada::PosicionXImagenTrasera(){ 00380 return area_imagen_trasera->pos_x; 00381 } 00382 00383 int Portada::PosicionYImagenTrasera(){ 00384 return area_imagen_trasera->pos_y; 00385 } 00386 00387 int Portada::DimensionWImagenFrontal(){ 00388 return area_imagen_frontal->w; 00389 } 00390 00391 int Portada::DimensionHImagenFrontal(){ 00392 return area_imagen_frontal->h; 00393 } 00394 00395 int Portada::PosicionXImagenFrontal(){ 00396 return area_imagen_frontal->pos_x; 00397 } 00398 00399 int Portada::PosicionYImagenFrontal(){ 00400 return area_imagen_frontal->pos_y; 00401 } 00402 00403 QFont Portada::FuenteTextoFrontal(){ 00404 return area_texto_frontal->fuente; 00405 } 00406 00407 QFont Portada::FuenteTextoLateral(){ 00408 return area_texto_lateral->fuente; 00409 } 00410 00411 00412 QFont Portada::FuenteTextoTrasera(){ 00413 return area_texto_trasera->fuente; 00414 } 00415 00416 QString Portada::TextoFrontal(){ 00417 return area_texto_frontal->texto; 00418 } 00419 00420 QString Portada::TextoLateral(){ 00421 return area_texto_lateral->texto; 00422 } 00423 00424 QString Portada::TextoTrasera(){ 00425 return area_texto_trasera->texto; 00426 } 00427 00428 int Portada::WTextoFrontal(){ 00429 return area_texto_frontal->w; 00430 } 00431 00432 int Portada::WTextoLateral(){ 00433 return area_texto_lateral->w; 00434 } 00435 00436 int Portada::WTextoTrasera(){ 00437 return area_texto_trasera->w; 00438 } 00439 00440 int Portada::PosXTextoFrontal(){ 00441 return area_texto_frontal->pos_x; 00442 } 00443 00444 int Portada::PosXTextoLateral(){ 00445 return area_texto_lateral->pos_x; 00446 } 00447 00448 int Portada::PosXTextoTrasera(){ 00449 return area_texto_trasera->pos_x; 00450 } 00451 00452 int Portada::PosYTextoFrontal(){ 00453 return area_texto_frontal->pos_y; 00454 } 00455 00456 int Portada::PosYTextoLateral(){ 00457 return area_texto_lateral->pos_y; 00458 } 00459 00460 int Portada::PosYTextoTrasera(){ 00461 return area_texto_trasera->pos_y; 00462 } 00463 00464 int Portada::TamTextoFrontal(){ 00465 return area_texto_frontal->puntos; 00466 } 00467 00468 int Portada::TamTextoLateral(){ 00469 return area_texto_lateral->puntos; 00470 } 00471 00472 int Portada::TamTextoTrasera(){ 00473 return area_texto_trasera->puntos; 00474 } 00475 00476 bool Portada::VerticalTextoFrontal(){ 00477 return area_texto_frontal->vertical; 00478 } 00479 00480 bool Portada::VerticalTextoLateral(){ 00481 return area_texto_lateral->vertical; 00482 } 00483 00484 bool Portada::VerticalTextoTrasera(){ 00485 return area_texto_trasera->vertical; 00486 } 00487 00488 bool Portada::CursivaTextoFrontal(){ 00489 return area_texto_frontal->cursiva; 00490 } 00491 00492 bool Portada::CursivaTextoLateral(){ 00493 return area_texto_lateral->cursiva; 00494 } 00495 00496 bool Portada::CursivaTextoTrasera(){ 00497 return area_texto_trasera->cursiva; 00498 } 00499 00500 bool Portada::NegritaTextoFrontal(){ 00501 return area_texto_frontal->negrita; 00502 } 00503 00504 bool Portada::NegritaTextoTrasera(){ 00505 return area_texto_trasera->negrita; 00506 } 00507 00508 bool Portada::NegritaTextoLateral(){ 00509 return area_texto_lateral->negrita; 00510 } 00511 00512 bool Portada::SubrayadoTextoFrontal(){ 00513 return area_texto_frontal->subrayado; 00514 } 00515 00516 bool Portada::SubrayadoTextoLateral(){ 00517 return area_texto_lateral->subrayado; 00518 } 00519 00520 bool Portada::SubrayadoTextoTrasera(){ 00521 return area_texto_trasera->subrayado; 00522 } 00523 00524 bool Portada::CentradoTextoFrontal(){ 00525 return area_texto_frontal->centrado; 00526 } 00527 00528 bool Portada::CentradoTextoLateral(){ 00529 return area_texto_lateral->centrado; 00530 } 00531 00532 bool Portada::CentradoTextoTrasera(){ 00533 return area_texto_trasera->centrado; 00534 } 00535 00536 QColor Portada::ColorTextoFrontal(){ 00537 return area_texto_frontal->color; 00538 } 00539 00540 QColor Portada::ColorTextoTrasera(){ 00541 return area_texto_trasera->color; 00542 } 00543 00544 QColor Portada::ColorTextoLateral(){ 00545 return area_texto_lateral->color; 00546 } 00547 00548 void Portada::LoadRutaPlantilla(QString ruta){ 00549 try{ 00550 *pathPlantilla= ruta; 00551 }catch(std::exception& e){ 00552 Error *err= new Error(2, e.what(), this->parent); 00553 err->LanzarDialogo(); 00554 delete err; 00555 exit(1); 00556 } 00557 } 00558 00559 QString Portada::RutaPlantilla(){ 00560 return *pathPlantilla; 00561 } 00562 00563 void Portada::DesactivarTexto(){ 00564 this->contieneTexto=false; 00565 } 00566 00567 void Portada::ActivarTexto(){ 00568 this->contieneTexto=true; 00569 } 00570 00571 bool Portada::ContieneTexto(){ 00572 return this->contieneTexto; 00573 } 00574 00575 void Portada::setObjetosPortada(QList <QGraphicsItem*> lista){ 00576 this->objetosPortada=lista; 00577 } 00578 00579 void Portada::LimpiarListaObjetos(){ 00580 for(int eliminador=0; eliminador < this->objetosPortada.size(); eliminador++){ 00581 delete this->objetosPortada.at(eliminador); 00582 } 00583 this->objetosPortada.clear(); 00584 00585 } 00586 00587 int Portada::GetW(){ 00588 return this->w; 00589 } 00590 00591 int Portada::GetH(){ 00592 return this->h; 00593 } 00594