OpenAlbum 1.0.b

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

00001 #include "dialogordenpersonalizado.h"
00002 #include "ui_dialogordenpersonalizado.h"
00003 #include <stack>
00004 #include "error.h"
00005 #include <QtGui>
00006 
00007 DialogOrdenPersonalizado::DialogOrdenPersonalizado(std::vector<ImagenInfo> images, QWidget *parent, controladorResolucion *controlador_, QDir directoriodetrabajo) :
00008     QDialog(parent),
00009     ui(new Ui::DialogOrdenPersonalizado)
00010 {
00011     ui->setupUi(this);
00012     this->controlador=controlador_;
00013     this->setDimensiones();
00014     
00015     this->ui->ListaImagenes->setStyle(new QWindowsStyle);
00016     utilidad_finalizada=false;
00017     this->ui->groupBox->setStyle(new QWindowsStyle);
00018     for(unsigned i=0; i<images.size(); i++){
00019         QTreeWidgetItem *item;
00020         try{
00021         item = new QTreeWidgetItem(ui->ListaImagenes);
00022         }catch(std::exception& e){
00023                 Error *err=new Error(2, e.what(), this);
00024                 err->LanzarDialogo();
00025                 delete err;
00026                 exit(1);
00027         }
00028         try{
00029         item->setText(0, images[i].nombre);
00030         imagenes_copia.push_back(images[i]);
00031         }catch(std::exception& e){
00032                 Error *err=new Error(1, e.what(), this);
00033                 err->LanzarDialogo();
00034                 delete err;
00035                 exit(1);
00036     }
00037     }
00038     std::stack<QString> pila;
00039 
00040     for(int j=0; j<ui->ListaImagenes->topLevelItemCount(); j++){
00041         pila.push(ui->ListaImagenes->topLevelItem(j)->text(0));
00042     }
00043     ui->ListaImagenes->clear();
00044 
00045     while(!pila.empty()){
00046         try{
00047         QTreeWidgetItem *item = new QTreeWidgetItem(ui->ListaImagenes);
00048         item->setText(0, pila.top());
00049         pila.pop();
00050         }catch(std::exception& e){
00051                 Error *err=new Error(2, e.what(), this);
00052                 err->LanzarDialogo();
00053                 delete err;
00054                 exit(1);
00055     }
00056     }
00057     QIcon *iconoVentana=new QIcon(directoriodetrabajo.absolutePath() + "/data/iconlargue.png");
00058     this->setWindowIcon(*iconoVentana);
00059     delete iconoVentana;
00060     
00061     QIcon *icono1=new QIcon(directoriodetrabajo.absolutePath() + "/data/icon_flecha_up.png");
00062     this->ui->upButton->setIcon(*icono1);
00063     delete icono1;
00064     
00065     QIcon *icono2=new QIcon(directoriodetrabajo.absolutePath() + "/data/icon_flecha_down.png");
00066     this->ui->DownButton->setIcon(*icono2);
00067     delete icono2;
00068 }
00069 
00070 DialogOrdenPersonalizado::~DialogOrdenPersonalizado()
00071 {
00072     delete ui;
00073 }
00074 
00075 void DialogOrdenPersonalizado::setDimensiones(){
00076      this->setFixedSize(this->controlador->getWordenpersonalizado(), this->controlador->getHordenpersonalizado());
00077     int W=this->controlador->getWordenpersonalizado();
00078     int H=this->controlador->getHordenpersonalizado();
00079     
00080     
00081         int x,y;
00082         x=this->ui->DownButton->x();
00083         y=this->ui->DownButton->y();
00084         this->ui->DownButton->setGeometry((x*W)/387, (y*H)/308, (41*W)/387, (51*H)/308);
00085         x=this->ui->upButton->x();
00086         y=this->ui->upButton->y();
00087         this->ui->upButton->setGeometry((x*W)/387, (y*H)/308, (41*W)/387, (51*H)/308);
00088         x=this->ui->ListaImagenes->x();
00089         y=this->ui->ListaImagenes->y();
00090         this->ui->ListaImagenes->setGeometry((x*W)/387, (y*H)/308, (251*W)/387, (161*H)/308);
00091         x=this->ui->groupBox->x();
00092         y=this->ui->groupBox->y();
00093         this->ui->groupBox->setGeometry((x*W)/387, (y*H)/308, (361*W)/387, (251*H)/308);
00094         x=this->ui->label->x();
00095         y=this->ui->label->y();
00096         this->ui->label->setGeometry((x*W)/387, (y*H)/308, (341*W)/387, (41*H)/308);
00097         x=this->ui->pushCancelar->x();
00098         y=this->ui->pushCancelar->y();
00099         this->ui->pushCancelar->setGeometry((x*W)/387, (y*H)/308, (98*W)/387, (27*H)/308);
00100         x=this->ui->pushTerminar->x();
00101         y=this->ui->pushTerminar->y();
00102         this->ui->pushTerminar->setGeometry((x*W)/387, (y*H)/308, (98*W)/387, (27*H)/308);
00103        
00104         
00105 }
00106 
00107 std::vector<ImagenInfo> DialogOrdenPersonalizado::GetVectorImagenes(){
00108 
00109     return imagenes_final;
00110 
00111 }
00112 
00113 void DialogOrdenPersonalizado::CambiarPosArriba(){
00114     try{
00115     for(int i=0; i<ui->ListaImagenes->topLevelItemCount(); i++){
00116 
00117         if(ui->ListaImagenes->topLevelItem(i)->isSelected() && i!=0){
00118             QString auxiliar= ui->ListaImagenes->topLevelItem(i)->text(0);
00119             ui->ListaImagenes->topLevelItem(i)->setText(0, ui->ListaImagenes->topLevelItem(i-1)->text(0));
00120             ui->ListaImagenes->topLevelItem(i-1)->setText(0, auxiliar);
00121             ui->ListaImagenes->topLevelItem(i-1)->setSelected(true);
00122             ui->ListaImagenes->topLevelItem(i)->setSelected(false);
00123         }
00124     }
00125     }catch(std::exception& e){
00126                 Error *err=new Error(1, e.what(), this);
00127                 err->LanzarDialogo();
00128                 delete err;
00129                 exit(1);
00130     }
00131 }
00132 
00133 void DialogOrdenPersonalizado::CambiarPosAbajo(){
00134     static int a;
00135     try{
00136     for(int i=0; i<ui->ListaImagenes->topLevelItemCount(); i++){
00137         if(ui->ListaImagenes->topLevelItem(i)->isSelected() && i!=(ui->ListaImagenes->topLevelItemCount()-1)){
00138             QString auxiliar= ui->ListaImagenes->topLevelItem(i)->text(0);
00139             ui->ListaImagenes->topLevelItem(i)->setText(0, ui->ListaImagenes->topLevelItem(i+1)->text(0));
00140             ui->ListaImagenes->topLevelItem(i+1)->setText(0, auxiliar);
00141             a=i;
00142         }
00143     }
00144     if(a<(ui->ListaImagenes->topLevelItemCount()-1)){
00145         ui->ListaImagenes->topLevelItem(a)->setSelected(false);
00146         ui->ListaImagenes->topLevelItem(a+1)->setSelected(true);
00147     }
00148     }catch(std::exception& e){
00149                 Error *err=new Error(1, e.what(), this);
00150                 err->LanzarDialogo();
00151                 delete err;
00152                 exit(1);
00153     }
00154 }
00155 
00156 void DialogOrdenPersonalizado::CancelarTarea(){
00157     utilidad_finalizada=false;
00158     close();
00159     this->finished(0);
00160     this->setResult(0);
00161 }
00162 
00163 
00164 void DialogOrdenPersonalizado::AcabarTarea(){
00165 
00166     for(int i=0; i<ui->ListaImagenes->topLevelItemCount(); i++){
00167         for(unsigned j=0; j<imagenes_copia.size(); j++){
00168             if(ui->ListaImagenes->topLevelItem(i)->text(0)==imagenes_copia[j].nombre){
00169                 imagenes_final.push_back(imagenes_copia[j]);
00170             }
00171         }
00172     }
00173     utilidad_finalizada=true;
00174     close();
00175     this->finished(1);
00176     this->setResult(1);
00177 }
00178 
00179 bool DialogOrdenPersonalizado::ComprobarFinUtilidad(){
00180     return utilidad_finalizada;
00181 
00182 }
 Todo Clases Archivos Funciones Variables