| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
1 |
#include "imageviewwidget.h" |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
2 |
|
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
3 |
#include <QPainter> |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
4 |
#include <QKeyEvent> |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
5 |
#include <QImageReader> |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
6 |
|
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
7 |
ImageViewWidget::ImageViewWidget(QWidget *parent) |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
8 |
: QWidget(parent) |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
9 |
{ |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
10 |
setFocusPolicy(Qt::StrongFocus); |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
11 |
setStyleSheet("background-color: black;"); |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
12 |
} |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
13 |
|
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
14 |
void ImageViewWidget::setImage(const QString &path) |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
15 |
{ |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
16 |
QImageReader reader(path); |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
17 |
reader.setAutoTransform(true); |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
18 |
QImage image = reader.read(); |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
19 |
|
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
20 |
if (!image.isNull()) |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
21 |
m_pixmap = QPixmap::fromImage(image); |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
22 |
else |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
23 |
m_pixmap = QPixmap(); |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
24 |
|
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
25 |
update(); |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
26 |
} |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
27 |
|
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
28 |
void ImageViewWidget::paintEvent(QPaintEvent *) |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
29 |
{ |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
30 |
if (m_pixmap.isNull()) |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
31 |
return; |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
32 |
|
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
33 |
QPainter painter(this); |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
34 |
QPixmap scaled = m_pixmap.scaled(size(), Qt::KeepAspectRatio, Qt::SmoothTransformation); |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
35 |
int x = (width() - scaled.width()) / 2; |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
36 |
int y = (height() - scaled.height()) / 2; |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
37 |
painter.drawPixmap(x, y, scaled); |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
38 |
} |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
39 |
|
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
40 |
void ImageViewWidget::keyPressEvent(QKeyEvent *event) |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
41 |
{ |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
42 |
if (event->key() == Qt::Key_Escape) |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
43 |
{ |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
44 |
emit closeRequested(); |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
45 |
event->accept(); |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
46 |
return; |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
47 |
} |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
48 |
|
| 1ffc1962 |
Poul Sander |
2026-02-20 23:41 |
49 |
if (event->key() == Qt::Key_PageDown) |
| 1ffc1962 |
Poul Sander |
2026-02-20 23:41 |
50 |
{ |
| 1ffc1962 |
Poul Sander |
2026-02-20 23:41 |
51 |
emit nextRequested(); |
| 1ffc1962 |
Poul Sander |
2026-02-20 23:41 |
52 |
event->accept(); |
| 1ffc1962 |
Poul Sander |
2026-02-20 23:41 |
53 |
return; |
| 1ffc1962 |
Poul Sander |
2026-02-20 23:41 |
54 |
} |
| 1ffc1962 |
Poul Sander |
2026-02-20 23:41 |
55 |
|
| 1ffc1962 |
Poul Sander |
2026-02-20 23:41 |
56 |
if (event->key() == Qt::Key_PageUp) |
| 1ffc1962 |
Poul Sander |
2026-02-20 23:41 |
57 |
{ |
| 1ffc1962 |
Poul Sander |
2026-02-20 23:41 |
58 |
emit previousRequested(); |
| 1ffc1962 |
Poul Sander |
2026-02-20 23:41 |
59 |
event->accept(); |
| 1ffc1962 |
Poul Sander |
2026-02-20 23:41 |
60 |
return; |
| 1ffc1962 |
Poul Sander |
2026-02-20 23:41 |
61 |
} |
| 1ffc1962 |
Poul Sander |
2026-02-20 23:41 |
62 |
|
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
63 |
QWidget::keyPressEvent(event); |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
64 |
} |
|
|
1970-01-01 00:00 |
65 |
|