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