1 /* 2 SPDX-FileCopyrightText: 2008-2016 Graeme Gott <graeme@gottcode.org> 3 4 SPDX-License-Identifier: GPL-3.0-or-later 5 */ 6 7 #ifndef TETZLE_OVERVIEW_H 8 #define TETZLE_OVERVIEW_H 9 10 #include <QGraphicsView> 11 12 class Overview : public QGraphicsView 13 { 14 Q_OBJECT 15 16 public: 17 explicit Overview(QWidget* parent = nullptr); 18 19 void load(const QImage& image, qreal pixelratio); 20 void reset(); 21 22 signals: 23 void toggled(bool visible); 24 25 protected: 26 void hideEvent(QHideEvent* event) override; 27 void moveEvent(QMoveEvent* event) override; 28 void resizeEvent(QResizeEvent* event) override; 29 void showEvent(QShowEvent* event) override; 30 void wheelEvent(QWheelEvent* event) override; 31 32 private: 33 void setPixmap(const QPixmap& pixmap); 34 void zoomIn(); 35 void zoomOut(); 36 void zoom(int level); 37 38 private: 39 QGraphicsPixmapItem* m_pixmap; 40 int m_min_scale_level; 41 int m_scale_level; 42 bool m_default; 43 }; 44 45 #endif // TETZLE_OVERVIEW_H 46