| 1 | #include "bgimagepage2.h" | 
 
 
 
 
 | 2 | #include "ui_bgimagepage2.h" | 
 
 
 
 
 | 3 |  | 
 
 
 
 
 | 4 | BGImagePage2::BGImagePage2(Logger *myLogger, QWidget *parent) : | 
 
 
 
 
 | 5 | QWizardPage(parent), | 
 
 
 
 
 | 6 | ui(new Ui::BGImagePage2) | 
 
 
 
 
 | 7 | { | 
 
 
 
 
 | 8 | ui->setupUi(this); | 
 
 
 
 
 | 9 | this->myLogger = myLogger; | 
 
 
 
 
 | 10 |  | 
 
 
 
 
 | 11 | this->setTitle("Image to use as background"); | 
 
 
 
 
 | 12 | this->setSubTitle("Add here the image that you want to convert. Image width and height must be greater than or equal 256 pixels. Example of valid image resolutions: 640x480, 1024x768."); | 
 
 
 
 
 | 13 |  | 
 
 
 
 
 | 14 | //Register fields | 
 
 
 
 
 | 15 | registerField("leImageFullPath", ui->leImageFullPath); | 
 
 
 
 
 | 16 | registerField("lbImageType", ui->lbImageType, "text"); | 
 
 
 
 
 | 17 | } | 
 
 
 
 
 | 18 |  | 
 
 
 
 
 | 19 | void BGImagePage2::initializePage() | 
 
 
 
 
 | 20 | { | 
 
 
 
 
 | 21 | // To the first time the page is displayed and when the wizard is restarted | 
 
 
 
 
 | 22 | if(ui->leImageFullPath->text().isEmpty()){ | 
 
 
 
 
 | 23 | // enable / hide image fields until we have an image | 
 
 
 
 
 | 24 | ui->gbImageInformation->setEnabled(false); | 
 
 
 
 
 | 25 | ui->lbImagePreview->hide(); | 
 
 
 
 
 | 26 | ui->lbImageName->hide(); | 
 
 
 
 
 | 27 | ui->lbImageWidth->hide(); | 
 
 
 
 
 | 28 | ui->lbImageHeight->hide(); | 
 
 
 
 
 | 29 | ui->lbImageSize->hide(); | 
 
 
 
 
 | 30 | ui->lbDateCreated->hide(); | 
 
 
 
 
 | 31 | ui->lbDateModified->hide(); | 
 
 
 
 
 | 32 | ui->lbImageType->hide(); | 
 
 
 
 
 | 33 | } | 
 
 
 
 
 | 34 | } | 
 
 
 
 
 | 35 |  | 
 
 
 
 
 | 36 | bool BGImagePage2::validatePage(){ | 
 
 
 
 
 | 37 | QString leImageFullPath=ui->leImageFullPath->text().trimmed(); | 
 
 
 
 
 | 38 |  | 
 
 
 
 
 | 39 | if(!validateField(leImageFullPath)){ | 
 
 
 
 
 | 40 | return false; | 
 
 
 
 
 | 41 | } | 
 
 
 
 
 | 42 |  | 
 
 
 
 
 | 43 | return true; | 
 
 
 
 
 | 44 | } | 
 
 
 
 
 | 45 |  | 
 
 
 
 
 | 46 | bool BGImagePage2::validateField(QString &field){ | 
 
 
 
 
 | 47 | if(field.isEmpty()){ | 
 
 
 
 
 | 48 | Util::showErrorPopUp("You need to choose an image."); | 
 
 
 
 
 | 49 | return false; | 
 
 
 
 
 | 50 | } | 
 
 
 
 
 | 51 |  | 
 
 
 
 
 | 52 | return true; | 
 
 
 
 
 | 53 | } | 
 
 
 
 
 | 54 |  | 
 
 
 
 
 | 55 | BGImagePage2::~BGImagePage2() | 
 
 
 
 
 | 56 | { | 
 
 
 
 
 | 57 | delete ui; | 
 
 
 
 
 | 58 | } | 
 
 
 
 
 | 59 |  | 
 
 
 
 
 | 60 | void BGImagePage2::on_pbBrowse_clicked() | 
 
 
 
 
 | 61 | { | 
 
 
 
 
 | 62 | QString selectedImage = QFileDialog::getOpenFileName(this,"Choose the image file...","./" , "Image (*.JPG *.JPEG *.PNG)"); | 
 
 
 
 
 | 63 |  | 
 
 
 
 
 | 64 | if(!selectedImage.isEmpty()){ | 
 
 
 
 
 | 65 |  | 
 
 
 
 
 | 66 | QImage myImage; | 
 
 
 
 
 | 67 | if(!myImage.load(selectedImage)){ | 
 
 
 
 
 | 68 | UtilVago::showAndLogErrorPopUp(this->myLogger,"Couldn't load image '" + Util::cutNameWithoutBackSlash(selectedImage) + "'. Is the image corrupt?"); | 
 
 
 
 
 | 69 | return; | 
 
 
 
 
 | 70 | } | 
 
 
 
 
 | 71 |  | 
 
 
 
 
 | 72 | if(myImage.width() < 256 || myImage.height() < 256){ | 
 
 
 
 
 | 73 | UtilVago::showAndLogErrorPopUp(this->myLogger,"Image '" + Util::cutNameWithoutBackSlash(selectedImage) + | 
 
 
 
 
 | 74 | "' does not have a width and height >= 256."); | 
 
 
 
 
 | 75 | return; | 
 
 
 
 
 | 76 | } | 
 
 
 
 
 | 77 |  | 
 
 
 
 
 | 78 | ui->leImageFullPath->setText(selectedImage); | 
 
 
 
 
 | 79 | ui->leImageFullPath->setToolTip(selectedImage); | 
 
 
 
 
 | 80 | setImage(selectedImage, myImage); | 
 
 
 
 
 | 81 | } | 
 
 
 
 
 | 82 | } | 
 
 
 
 
 | 83 |  | 
 
 
 
 
 | 84 | void BGImagePage2::setImage(const QString &imagePath, const QImage &image){ | 
 
 
 
 
 | 85 |  | 
 
 
 
 
 | 86 | QFileInfo myImageFileInfo(imagePath); | 
 
 
 
 
 | 87 |  | 
 
 
 
 
 | 88 | ui->gbImageInformation->setEnabled(true); | 
 
 
 
 
 | 89 | ui->lbImagePreview->show(); | 
 
 
 
 
 | 90 | ui->lbImageName->show(); | 
 
 
 
 
 | 91 | ui->lbImageWidth->show(); | 
 
 
 
 
 | 92 | ui->lbImageHeight->show(); | 
 
 
 
 
 | 93 | ui->lbImageSize->show(); | 
 
 
 
 
 | 94 | ui->lbDateCreated->show(); | 
 
 
 
 
 | 95 | ui->lbDateModified->show(); | 
 
 
 
 
 | 96 | ui->lbImageType->show(); | 
 
 
 
 
 | 97 |  | 
 
 
 
 
 | 98 | QPixmap previewImage(imagePath); | 
 
 
 
 
 | 99 | ui->lbImagePreview->setPixmap( previewImage ); | 
 
 
 
 
 | 100 | ui->lbImagePreview->setMask(previewImage.mask()); | 
 
 
 
 
 | 101 |  | 
 
 
 
 
 | 102 | // Thanks bukkfa! | 
 
 
 
 
 | 103 | // http://stackoverflow.com/questions/5653114/display-image-in-qt-to-fit-label-size | 
 
 
 
 
 | 104 | ui->lbImagePreview->setScaledContents( true ); | 
 
 
 
 
 | 105 | ui->lbImagePreview->setSizePolicy( QSizePolicy::Ignored, QSizePolicy::Ignored ); | 
 
 
 
 
 | 106 |  | 
 
 
 
 
 | 107 | // Update image information | 
 
 
 
 
 | 108 | ui->lbImageName->setText(myImageFileInfo.baseName().replace("." + myImageFileInfo.suffix(), "")); | 
 
 
 
 
 | 109 | ui->lbImageWidth->setText(QString::number(image.width())); | 
 
 
 
 
 | 110 | ui->lbImageHeight->setText(QString::number(image.height())); | 
 
 
 
 
 | 111 | ui->lbImageType->setText(myImageFileInfo.suffix()); | 
 
 
 
 
 | 112 | ui->lbImageSize->setText(QString::number(myImageFileInfo.size()/1024.0)); | 
 
 
 
 
 | 113 | ui->lbDateCreated->setText(myImageFileInfo.created().toString()); | 
 
 
 
 
 | 114 | ui->lbDateModified->setText(myImageFileInfo.lastModified().toString()); | 
 
 
 
 
 | 115 |  | 
 
 
 
 
 | 116 | ui->lbImagePreview->show(); | 
 
 
 
 
 | 117 | } |