mirror of
https://github.com/vcmi/vcmi.git
synced 2024-11-24 08:32:34 +02:00
56 lines
1.1 KiB
C++
56 lines
1.1 KiB
C++
|
#include "StdInc.h"
|
||
|
|
||
|
#include <QDesktopWidget>
|
||
|
|
||
|
#include "imageviewer.h"
|
||
|
#include "ui_imageviewer.h"
|
||
|
|
||
|
ImageViewer::ImageViewer(QWidget *parent) :
|
||
|
QDialog(parent),
|
||
|
ui(new Ui::ImageViewer)
|
||
|
{
|
||
|
ui->setupUi(this);
|
||
|
}
|
||
|
|
||
|
ImageViewer::~ImageViewer()
|
||
|
{
|
||
|
delete ui;
|
||
|
}
|
||
|
|
||
|
QSize ImageViewer::calculateWindowSize()
|
||
|
{
|
||
|
QDesktopWidget desktop;
|
||
|
return desktop.availableGeometry(desktop.primaryScreen()).size() * 0.8;
|
||
|
}
|
||
|
|
||
|
void ImageViewer::showPixmap(QPixmap & pixmap, QWidget *parent)
|
||
|
{
|
||
|
assert(!pixmap.isNull());
|
||
|
|
||
|
ImageViewer * iw = new ImageViewer(parent);
|
||
|
|
||
|
QSize size = pixmap.size();
|
||
|
size.scale(iw->calculateWindowSize(), Qt::KeepAspectRatio);
|
||
|
iw->resize(size);
|
||
|
|
||
|
iw->setPixmap(pixmap);
|
||
|
iw->setAttribute(Qt::WA_DeleteOnClose, true);
|
||
|
iw->setModal(Qt::WindowModal);
|
||
|
iw->show();
|
||
|
}
|
||
|
|
||
|
void ImageViewer::setPixmap(QPixmap & pixmap)
|
||
|
{
|
||
|
ui->label->setPixmap(pixmap);
|
||
|
}
|
||
|
|
||
|
void ImageViewer::mousePressEvent(QMouseEvent * event)
|
||
|
{
|
||
|
close();
|
||
|
}
|
||
|
|
||
|
void ImageViewer::keyPressEvent(QKeyEvent * event)
|
||
|
{
|
||
|
close(); // FIXME: it also closes on pressing modifiers (e.g. Ctrl/Alt). Not exactly expected
|
||
|
}
|