git repos / SagoImageBrowser

blame: imageviewwidget.h

normal view · raw

61136b77 Poul Sander 2026-02-20 22:45 1
#pragma once
61136b77 Poul Sander 2026-02-20 22:45 2
61136b77 Poul Sander 2026-02-20 22:45 3
#include <QWidget>
61136b77 Poul Sander 2026-02-20 22:45 4
#include <QImage>
61136b77 Poul Sander 2026-02-20 22:45 5
#include <QPixmap>
61136b77 Poul Sander 2026-02-20 22:45 6
#include <QString>
61136b77 Poul Sander 2026-02-20 22:45 7
61136b77 Poul Sander 2026-02-20 22:45 8
class ImageViewWidget : public QWidget
61136b77 Poul Sander 2026-02-20 22:45 9
{
61136b77 Poul Sander 2026-02-20 22:45 10
    Q_OBJECT
61136b77 Poul Sander 2026-02-20 22:45 11
61136b77 Poul Sander 2026-02-20 22:45 12
public:
c58dbdb7 Poul Sander 2026-02-22 17:49 13
    enum ZoomMode { FitToScreen, OriginalSize, CustomZoom };
c58dbdb7 Poul Sander 2026-02-22 17:49 14
61136b77 Poul Sander 2026-02-20 22:45 15
    explicit ImageViewWidget(QWidget *parent = nullptr);
61136b77 Poul Sander 2026-02-20 22:45 16
61136b77 Poul Sander 2026-02-20 22:45 17
    void setImage(const QString &path);
c58dbdb7 Poul Sander 2026-02-22 17:49 18
    void zoomIn();
c58dbdb7 Poul Sander 2026-02-22 17:49 19
    void zoomOut();
c58dbdb7 Poul Sander 2026-02-22 17:49 20
    void zoomOriginal();
c58dbdb7 Poul Sander 2026-02-22 17:49 21
    void zoomFitToScreen();
61136b77 Poul Sander 2026-02-20 22:45 22
61136b77 Poul Sander 2026-02-20 22:45 23
signals:
61136b77 Poul Sander 2026-02-20 22:45 24
    void closeRequested();
1ffc1962 Poul Sander 2026-02-20 23:41 25
    void nextRequested();
1ffc1962 Poul Sander 2026-02-20 23:41 26
    void previousRequested();
61136b77 Poul Sander 2026-02-20 22:45 27
61136b77 Poul Sander 2026-02-20 22:45 28
protected:
61136b77 Poul Sander 2026-02-20 22:45 29
    void paintEvent(QPaintEvent *event) override;
61136b77 Poul Sander 2026-02-20 22:45 30
    void keyPressEvent(QKeyEvent *event) override;
61136b77 Poul Sander 2026-02-20 22:45 31
61136b77 Poul Sander 2026-02-20 22:45 32
private:
61136b77 Poul Sander 2026-02-20 22:45 33
    QPixmap m_pixmap;
c58dbdb7 Poul Sander 2026-02-22 17:49 34
    ZoomMode m_zoomMode = FitToScreen;
c58dbdb7 Poul Sander 2026-02-22 17:49 35
    double m_zoomFactor = 1.0;
61136b77 Poul Sander 2026-02-20 22:45 36
};
1970-01-01 00:00 37