You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

85 lines
1.6 KiB
C++

#include "cimageviewer.h"
#include "ui_cimageviewer.h"
#include "cimage.h"
#include <QKeyEvent>
#include <QFile>
#include <QDebug>
cImageViewer::cImageViewer(QWidget *parent) :
QDialog(parent),
ui(new Ui::cImageViewer),
m_lpImage(nullptr)
{
ui->setupUi(this);
ui->m_lpImage->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
connect(ui->m_lpImage, &cLabel::imageNext, this, &cImageViewer::onImageNext);
connect(ui->m_lpImage, &cLabel::imagePrev, this, &cImageViewer::onImagePrev);
connect(ui->m_lpImage, &cLabel::imageFirst, this, &cImageViewer::onImageFirst);
connect(ui->m_lpImage, &cLabel::imageLast, this, &cImageViewer::onImageLast);
}
cImageViewer::~cImageViewer()
{
if(m_lpImage)
delete m_lpImage;
delete ui;
}
void cImageViewer::setPicture(QString szNumber, QString szRootPath, cPicture* lpPicture)
{
QApplication::setOverrideCursor(Qt::WaitCursor);
if(m_lpImage)
delete m_lpImage;
QFile file(szRootPath + "/" + lpPicture->filePath() + "/" + lpPicture->fileName());
if(!file.exists())
return;
m_lpImage = new cImage(file.fileName());
QApplication::restoreOverrideCursor();
if(m_lpImage->isNull())
{
delete m_lpImage;
m_lpImage = nullptr;
return;
}
ui->m_lpImage->setImage(m_lpImage);
ui->m_lpFileName->setText(szNumber + " - " + lpPicture->filePath() + "/" + lpPicture->fileName());
setWindowFlag(Qt::Window);
showMaximized();
ui->m_lpImage->setFocus();
}
void cImageViewer::onImageNext()
{
emit imageNext();
}
void cImageViewer::onImagePrev()
{
emit imagePrev();
}
void cImageViewer::onImageLast()
{
emit imageLast();
}
void cImageViewer::onImageFirst()
{
emit imageFirst();
}