]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - matrix-gui-v2/image-gallery.git/blob - mainwindow.cpp
mainwindow: Fix scaling of initial image.
[matrix-gui-v2/image-gallery.git] / mainwindow.cpp
1 #include "mainwindow.h"
2 #include "ui_mainwindow.h"
4 QString dirLocation;
6 MainWindow::MainWindow(QWidget *parent) :
7     QMainWindow(parent),
8     ui(new Ui::MainWindow)
9 {
11     ui->setupUi(this);
14     currentIndex = 0;
16     QStringList filters;
17     filters << "*.jpeg" << "*.jpg";
19     imagesDir = new QDir (dirLocation);
21     imagesDir->setFilter(QDir::Files);
22     imagesDir->setNameFilters( filters);
23     imagesDir->setSorting(QDir::Name);
24     imagesList = imagesDir->entryList();
27      ui->prevImage->setEnabled(false);
28     if(imagesList.count() == 0 || imagesList.count() == 1) {
30         ui->nextImage->setEnabled(false);
32         if(imagesList.count() == 0) {
33             ui->label->clear();
34             ui->label->setText("No images found");
35             ui->clearImages->setEnabled(false);
36         }
37     }
38 }
40 MainWindow::~MainWindow()
41 {
42     delete ui;
43 }
46 void MainWindow::on_prevImage_clicked()
47 {
48     currentIndex--;
49     if(currentIndex <= 0)
50        ui->prevImage->setEnabled(false);
52     if(currentIndex < imagesList.count())
53        ui->nextImage->setEnabled(true);
55     displayImage(currentIndex);
56 }
58 void MainWindow::on_clearImages_clicked()
59 {
61      QMessageBox::StandardButton reply;
62      reply = QMessageBox::question(this,"Delete Confirmation","Delete image?",QMessageBox::Yes|QMessageBox::No);
64      if(reply == QMessageBox::No)
65          return;
67      ui->nextImage->setEnabled(false);
68      ui->prevImage->setEnabled(false);
70      QStringList clearList = imagesDir->entryList();
73     imagesDir->remove(clearList[currentIndex]);
75     imagesDir->refresh();
77     imagesList = imagesDir->entryList();
79     currentIndex--;
81     if(currentIndex < 0)
82         currentIndex = 0;
84     ui->nextImage->setEnabled(false);
85     ui->prevImage->setEnabled(false);
87     if(imagesList.count() > 1 && imagesList.count() -1 > currentIndex)
88         ui->nextImage->setEnabled(true);
90     if(currentIndex > 0)
91         ui->prevImage->setEnabled(true);
93     if(imagesList.count() >= 1)
94         displayImage(currentIndex);
95     else {
96         ui->clearImages->setEnabled(false);
97         ui->label->clear();
98         ui->label->setText("No images found");
99     }
104 void MainWindow::on_nextImage_clicked()
106     currentIndex++;
107     if(currentIndex >= imagesList.size()-1)
108        ui->nextImage->setEnabled(false);
110     ui->prevImage->setEnabled(true);
112     displayImage(currentIndex);
116 void MainWindow::displayImage(int index) {
118     int width = ui->label->width();
119     int height = ui->label->height();
120     QPixmap image;
121     image.load(dirLocation+imagesList[index]);
122     image = image.scaled(width,height,Qt::KeepAspectRatio);
123     ui->label->setPixmap(image);
127 void MainWindow::on_pushButton_clicked()
129     this->close();
131 void MainWindow::resizeEvent(QResizeEvent *ev)
133     QMainWindow::resizeEvent(ev);
135     if(imagesList.count() > 0)
136         displayImage(currentIndex);