File indexing completed on 2024-04-14 03:40:16
0001 /* 0002 SPDX-FileCopyrightText: 2007 Carsten Niehaus <cniehaus@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef ISOTOPEGUIDEVIEW_H 0008 #define ISOTOPEGUIDEVIEW_H 0009 0010 #include <QGraphicsView> 0011 #include <QMouseEvent> 0012 #include <QResizeEvent> 0013 0014 #include "isotopeview.h" 0015 0016 class IsotopeGuideView : public QGraphicsView 0017 { 0018 Q_OBJECT 0019 0020 public: 0021 explicit IsotopeGuideView(QWidget *parent = nullptr); 0022 void setGuidedView(IsotopeView *guidedView); 0023 0024 protected: 0025 void drawForeground(QPainter *painter, const QRectF &rect) override; 0026 0027 private: 0028 IsotopeView *m_guidedView = nullptr; 0029 double m_zoomLevel; 0030 double m_scale; 0031 QPolygonF m_visibleSceneRect; 0032 QPoint m_lastMousePos; 0033 bool m_dragEvent; 0034 0035 void resizeEvent(QResizeEvent *event) override; 0036 void mousePressEvent(QMouseEvent *event) override; 0037 void mouseReleaseEvent(QMouseEvent *event) override; 0038 void mouseMoveEvent(QMouseEvent *event) override; 0039 0040 public Q_SLOTS: 0041 void updateScene(); 0042 0043 private Q_SLOTS: 0044 void setZoomLevel(double zoomLevel); 0045 void setVisibleSceneRect(const QPolygonF &sceneRect); 0046 }; 0047 0048 #endif // ISOTOPEGUIDEVIEW_H