git repos / SagoImageBrowser

blame: imageviewwidget.cpp

normal view · raw

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
61136b77 Poul Sander 2026-02-20 22:45 49
    QWidget::keyPressEvent(event);
61136b77 Poul Sander 2026-02-20 22:45 50
}
1970-01-01 00:00 51