QElectroTech 0.200.1-dev
Loading...
Searching...
No Matches
elementview.h
Go to the documentation of this file.
1/*
2 Copyright 2006-2026 The QElectroTech Team
3 This file is part of QElectroTech.
4
5 QElectroTech is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation, either version 2 of the License, or
8 (at your option) any later version.
9
10 QElectroTech is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
17*/
18#ifndef ELEMENT_VIEW_H
19#define ELEMENT_VIEW_H
20#include <QGraphicsView>
21#include "elementscene.h"
22
27class ElementView : public QGraphicsView {
28 Q_OBJECT
29 friend class PastePartsCommand;
30
31 // constructors, destructor
32 public:
33 ElementView(ElementScene *, QWidget * = nullptr);
34 ~ElementView() override;
35
36 private:
38
39 // methods
40 public:
41 ElementScene *scene() const;
42 void setScene(ElementScene *);
43 QRectF viewedSceneRect() const;
44
45 protected:
46 void mousePressEvent(QMouseEvent *) override;
47 void mouseMoveEvent(QMouseEvent *) override;
48 void mouseReleaseEvent(QMouseEvent *) override;
49 bool gestureEvent(QGestureEvent *event);
50 bool event(QEvent *event) override;
51 void wheelEvent(QWheelEvent *) override;
52 void drawBackground(QPainter *, const QRectF &) override;
53
54 private:
55 QRectF applyMovement(const QRectF &, const QPointF &);
56 void scaleClamped(qreal factor);
57
61 static constexpr qreal m_min_zoom = 0.1;
62 static constexpr qreal m_max_zoom = 200.0;
63
64 public slots:
66 void setSelectionMode();
67 void zoomIn();
68 void zoomOut();
69 void zoomInSlowly();
70 void zoomOutSlowly();
71 void zoomFit();
72 void zoomReset();
73 void adjustSceneRect();
74 void resetSceneRect ();
75 void cut();
76 void copy();
77 void paste();
78 void pasteInArea();
79
80 signals:
83
84 private slots:
85 void getPasteArea(const QRectF &);
86 ElementContent pasteAreaDefined(const QRectF &);
87 ElementContent paste(const QPointF &);
88 ElementContent paste(const QDomDocument &, const QPointF &);
89 ElementContent pasteWithOffset(const QDomDocument &);
90
91 // attributes
92 private:
98 bool gestures() const;
99};
100#endif
The ElementScene class This class is the canvas allowing the visual edition of an electrical element....
Definition elementscene.h:46
void mouseMoveEvent(QMouseEvent *) override
ElementView::mouseMoveEvent Manage the event move mouse.
Definition elementview.cpp:405
void zoomInSlowly()
Definition elementview.cpp:141
ElementScene * m_scene
Definition elementview.h:93
QString to_paste_in_area_
Definition elementview.h:94
void adjustSceneRect()
ElementView::adjustSceneRect Adjust the scenRect, so that he include all primitives of element plus t...
Definition elementview.cpp:180
ElementView(const ElementView &)
void zoomOutSlowly()
Definition elementview.cpp:149
void setVisualisationMode()
Definition elementview.cpp:86
void zoomFit()
Definition elementview.cpp:159
int offset_paste_count_
Definition elementview.h:95
void mousePressEvent(QMouseEvent *) override
Definition elementview.cpp:390
void drawBackground(QPainter *, const QRectF &) override
Definition elementview.cpp:506
void modeChanged()
Signal emitted after the mode changed.
bool gestureEvent(QGestureEvent *event)
ElementView::gestureEvent.
Definition elementview.cpp:484
QPointF start_top_left_corner_
Definition elementview.h:96
bool gestures() const
ElementView::gestures.
Definition elementview.cpp:439
ElementView(ElementScene *, QWidget *=nullptr)
Definition elementview.cpp:28
void wheelEvent(QWheelEvent *) override
ElementView::wheelEvent.
Definition elementview.cpp:450
void mouseReleaseEvent(QMouseEvent *) override
ElementView::mouseReleaseEvent Manage event release click mouse.
Definition elementview.cpp:424
void setScene(ElementScene *)
Definition elementview.cpp:78
bool event(QEvent *event) override
Definition elementview.cpp:466
ElementContent pasteAreaDefined(const QRectF &)
Definition elementview.cpp:309
void cut()
Definition elementview.cpp:202
void zoomIn()
Definition elementview.cpp:123
QPointF reference_view_
Definition elementview.h:97
void scaleClamped(qreal factor)
Definition elementview.cpp:110
static constexpr qreal m_max_zoom
Definition elementview.h:62
void resetSceneRect()
ElementView::resetSceneRect reset le sceneRect (zone du schéma visualisée par l'ElementView) afin que...
Definition elementview.cpp:193
ElementScene * scene() const
Definition elementview.cpp:50
static constexpr qreal m_min_zoom
Definition elementview.h:61
void getPasteArea(const QRectF &)
Definition elementview.cpp:292
QRectF viewedSceneRect() const
Definition elementview.cpp:58
ElementContent pasteWithOffset(const QDomDocument &)
Definition elementview.cpp:347
void paste()
Definition elementview.cpp:230
QRectF applyMovement(const QRectF &, const QPointF &)
ElementView::applyMovement Applique le decalage offset dans le sens movement au rectangle start.
Definition elementview.cpp:609
void copy()
Definition elementview.cpp:213
void zoomReset()
Definition elementview.cpp:168
void pasteInArea()
Definition elementview.cpp:255
friend class PastePartsCommand
Definition elementview.h:29
void zoomOut()
Definition elementview.cpp:132
~ElementView() override
Destructeur.
Definition elementview.cpp:45
void setSelectionMode()
Definition elementview.cpp:96
QList< QGraphicsItem * > ElementContent
Definition elementcontent.h:30