Qucs-S S-parameter Viewer & RF Synthesis Tools
Loading...
Searching...
No Matches
graphwidget.h
1
7
8#ifndef GRAPHWIDGET_H
9#define GRAPHWIDGET_H
10
11#include <QGraphicsView>
12#include <QMap>
13#include <QtGui>
14#include <deque>
15#include <math.h>
16
17#include "SchematicContent.h"
18#include "component.h"
19#include "node.h"
20#include "structures.h"
21#include "wire.h"
22
23class Node;
24class Wire;
25
28class GraphWidget : public QGraphicsView {
29 Q_OBJECT
30
31public:
34 GraphWidget(QWidget* parent = 0);
35
37 void itemMoved() {
38 if (!timerId) {
39 timerId = startTimer(1000 / 25);
40 }
41 }
42
45 void setComponents(QList<ComponentInfo>);
46
47
51
54 void setWires(const QList<WireInfo>&);
55
58 void setNodes(QList<NodeInfo>);
59
63
66 void setTexts(QList<QGraphicsTextItem*>);
67
69 void clear();
70
71public slots:
73 void shuffle();
74
76 void zoomIn() { scaleView(qreal(1.2)); }
77
79 void zoomOut() { scaleView(1 / qreal(1.2)); }
80
86
87protected:
89 void keyPressEvent(QKeyEvent* /*event*/){}
90
92 void timerEvent(QTimerEvent* event);
93
95 void wheelEvent(QWheelEvent* event) {
96 scaleView(pow((double)2, -event->angleDelta().y() / 240.0));
97 }
98
101 void scaleView(qreal scaleFactor);
102
103private:
104 int timerId;
105 std::deque<Component*> Components;
106 std::deque<Wire*> Wires;
107 std::deque<Node*> Nodes;
108 std::deque<QGraphicsTextItem*> Texts;
109
110signals:
114};
115
116#endif
Container for schematic circuit data (definition)
Component information container.
Definition infoclasses.h:18
Definition graphwidget.h:28
void clear()
Clear all items from scene.
Definition graphwidget.cpp:168
void keyPressEvent(QKeyEvent *)
Handle key press events.
Definition graphwidget.h:89
void itemMoved()
Notify that an item has moved.
Definition graphwidget.h:37
void timerEvent(QTimerEvent *event)
Handle timer events.
Definition graphwidget.cpp:22
void ModifyComponent(ComponentInfo)
Modify existing component parameters.
Definition graphwidget.cpp:69
void setTexts(QList< QGraphicsTextItem * >)
Set text items in the schematic.
Definition graphwidget.cpp:183
void scaleView(qreal scaleFactor)
Scale view by factor.
Definition graphwidget.cpp:33
void setComponents(QList< ComponentInfo >)
Set components (position, type, values) in the schematic.
Definition graphwidget.cpp:54
void SendComponentSelectionToMainFunction(ComponentInfo)
Send component selection to main function.
void shuffle()
Randomize component positions.
Definition graphwidget.cpp:45
void wheelEvent(QWheelEvent *event)
Handle mouse wheel events.
Definition graphwidget.h:95
void zoomIn()
Zoom in view.
Definition graphwidget.h:76
void setSchematic(SchematicContent)
Set complete schematic content.
Definition graphwidget.cpp:161
void setWires(const QList< WireInfo > &)
Set wires (position and connection properties) in the schematic.
Definition graphwidget.cpp:78
void ComponentSelectionHandler(struct ComponentInfo CI)
Handle component selection events.
Definition graphwidget.h:83
void setNodes(QList< NodeInfo >)
Set nodes in the schematic.
Definition graphwidget.cpp:150
void zoomOut()
Zoom out view.
Definition graphwidget.h:79
Wiring node for circuit connections.
Definition node.h:23
Container for schematic circuit data.
Definition SchematicContent.h:27
Wire connection between symbols.
Definition wire.h:21
Graphical component representation in schematic (definition)
Wiring node for circuit connections (implementation)
Wire connection between symbols (definition)