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