OpenAlbum 1.0.b

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

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 
 Todo Clases Archivos Funciones Variables