DynExp
Highly flexible laboratory automation for dynamically changing experiments.
CircuitDiagram Class Reference
+ Inheritance diagram for CircuitDiagram:

Classes

class  CircuitDiagramItem
 
struct  GraphType
 

Public Member Functions

 CircuitDiagram (QWidget *parent)
 
 ~CircuitDiagram ()
 
QTreeWidgetItem * GetSelectedEntry ()
 
bool Redraw (const DynExp::DynExpCore &DynExpCore)
 Rebuilds the complete circuit diagram. More...
 
bool UpdateStates (const DynExp::DynExpCore &DynExpCore)
 Updates the items' states shown in the circuit diagram displayed currently. More...
 

Protected Member Functions

virtual void mouseDoubleClickEvent (QMouseEvent *Event) override
 
virtual void wheelEvent (QWheelEvent *Event) override
 

Private Types

using NodeMapType = std::unordered_map< DynExp::ItemIDType, CircuitDiagramItem >
 
using NodeListType = std::vector< typename NodeMapType::mapped_type * >
 

Private Slots

void OnContextMenuRequested (QPoint Position)
 
void OnZoomIn ()
 
void OnZoomOut ()
 
void OnZoomReset ()
 
void OnSaveDiagram ()
 

Private Member Functions

void Clear ()
 
void BuildTree (const DynExp::DynExpCore &DynExpCore)
 
void ArrangeTree ()
 
void RefineBySimulatedAnnealing (GraphType &Graph)
 
void Render ()
 
void RenderItem (CircuitDiagramItem &Item, bool DrawOutputSocket)
 
void RenderLinks (CircuitDiagramItem &Item)
 
void UpdateItem (CircuitDiagramItem &Item)
 
int TransformIconSize (int Size) const
 
void RescaleIcons ()
 
void ZoomIn ()
 
void ZoomOut ()
 
void ZoomReset ()
 

Static Private Member Functions

static QLinearGradient GetGrayLinearGradient ()
 

Private Attributes

NodeMapType HardwareAdapterNodes
 
NodeMapType InstrumentNodes
 
NodeMapType ModuleNodes
 
bool SelectionChanged
 
QTreeWidgetItem * SelectedTreeWidgetItem
 
Ui::CircuitDiagram ui
 
std::unique_ptr< QGraphicsScene > Scene
 
QMenu * ContextMenu
 

Static Private Attributes

static constexpr double ZoomFactor = 1.6
 
static constexpr int NodeVSep = 40
 
static constexpr int NodeHSep = 220
 
static constexpr int TreeWidgetParentTypeColumn = 0
 
static constexpr int TreeWidgetItemNameColumn = 0
 
static constexpr int TreeWidgetItemTypeColumn = 1
 
static constexpr int TreeWidgetItemStateColumn = 2
 
static constexpr int OuterPenLineWidth = 4
 
static constexpr int InnerPenLineWidth = 1
 
static constexpr int CornerRoundingRadius = 8
 
static constexpr int InnerWidth = 140
 
static constexpr int InnerStartHeight = 50
 
static constexpr int InnerMargin = 6
 
static constexpr int InnerMarginTop = 10
 
static constexpr int InnerMarginBottom = 20
 
static constexpr int StateIconSize = 16
 
static constexpr int TypeIconSize = 24
 
static constexpr int IconMargin = 4
 
static constexpr int AdditionalHeightPerParam = 12
 
static constexpr int ParamSep = 6
 
static constexpr int SocketDiameter = 6
 
static constexpr int SocketPenLineWidth = 2
 
static constexpr int NetworkIconDistance = 30
 
static const QColor SocketOuterColor = QColor("darkturquoise")
 
static const QColor SocketInnerColor = QColor("turquoise")
 

Detailed Description

Definition at line 21 of file CircuitDiagram.h.

Member Typedef Documentation

◆ NodeListType

using CircuitDiagram::NodeListType = std::vector<typename NodeMapType::mapped_type*>
private

Definition at line 28 of file CircuitDiagram.h.

◆ NodeMapType

Definition at line 27 of file CircuitDiagram.h.

Constructor & Destructor Documentation

◆ CircuitDiagram()

CircuitDiagram::CircuitDiagram ( QWidget *  parent)

Definition at line 107 of file CircuitDiagram.cpp.

◆ ~CircuitDiagram()

CircuitDiagram::~CircuitDiagram ( )

Definition at line 126 of file CircuitDiagram.cpp.

Member Function Documentation

◆ ArrangeTree()

void CircuitDiagram::ArrangeTree ( )
private

Definition at line 254 of file CircuitDiagram.cpp.

◆ BuildTree()

void CircuitDiagram::BuildTree ( const DynExp::DynExpCore DynExpCore)
private

Definition at line 223 of file CircuitDiagram.cpp.

◆ Clear()

void CircuitDiagram::Clear ( )
private

Definition at line 213 of file CircuitDiagram.cpp.

◆ GetGrayLinearGradient()

QLinearGradient CircuitDiagram::GetGrayLinearGradient ( )
staticprivate

Definition at line 202 of file CircuitDiagram.cpp.

◆ GetSelectedEntry()

QTreeWidgetItem * CircuitDiagram::GetSelectedEntry ( )

Definition at line 130 of file CircuitDiagram.cpp.

◆ mouseDoubleClickEvent()

void CircuitDiagram::mouseDoubleClickEvent ( QMouseEvent *  Event)
overrideprotectedvirtual

Definition at line 178 of file CircuitDiagram.cpp.

◆ OnContextMenuRequested

void CircuitDiagram::OnContextMenuRequested ( QPoint  Position)
privateslot

Definition at line 661 of file CircuitDiagram.cpp.

◆ OnSaveDiagram

void CircuitDiagram::OnSaveDiagram ( )
privateslot

Definition at line 681 of file CircuitDiagram.cpp.

◆ OnZoomIn

void CircuitDiagram::OnZoomIn ( )
privateslot

Definition at line 666 of file CircuitDiagram.cpp.

◆ OnZoomOut

void CircuitDiagram::OnZoomOut ( )
privateslot

Definition at line 671 of file CircuitDiagram.cpp.

◆ OnZoomReset

void CircuitDiagram::OnZoomReset ( )
privateslot

Definition at line 676 of file CircuitDiagram.cpp.

◆ Redraw()

bool CircuitDiagram::Redraw ( const DynExp::DynExpCore DynExpCore)

Rebuilds the complete circuit diagram.

Parameters
DynExpCoreReference to the DynExpCore instance owning the resources to be visualized.
Returns
Returns true in case of success, false otherwise.

Definition at line 138 of file CircuitDiagram.cpp.

◆ RefineBySimulatedAnnealing()

void CircuitDiagram::RefineBySimulatedAnnealing ( GraphType Graph)
private

Definition at line 319 of file CircuitDiagram.cpp.

◆ Render()

void CircuitDiagram::Render ( )
private

Definition at line 394 of file CircuitDiagram.cpp.

◆ RenderItem()

void CircuitDiagram::RenderItem ( CircuitDiagramItem Item,
bool  DrawOutputSocket 
)
private

Definition at line 416 of file CircuitDiagram.cpp.

◆ RenderLinks()

void CircuitDiagram::RenderLinks ( CircuitDiagramItem Item)
private

Definition at line 569 of file CircuitDiagram.cpp.

◆ RescaleIcons()

void CircuitDiagram::RescaleIcons ( )
private

Definition at line 623 of file CircuitDiagram.cpp.

◆ TransformIconSize()

int CircuitDiagram::TransformIconSize ( int  Size) const
private

Definition at line 618 of file CircuitDiagram.cpp.

◆ UpdateItem()

void CircuitDiagram::UpdateItem ( CircuitDiagramItem Item)
private

Definition at line 597 of file CircuitDiagram.cpp.

◆ UpdateStates()

bool CircuitDiagram::UpdateStates ( const DynExp::DynExpCore DynExpCore)

Updates the items' states shown in the circuit diagram displayed currently.

Parameters
DynExpCoreReference to the DynExpCore instance owning the resources to be visualized.
Returns
Returns true in case of success, false otherwise.

Definition at line 156 of file CircuitDiagram.cpp.

◆ wheelEvent()

void CircuitDiagram::wheelEvent ( QWheelEvent *  Event)
overrideprotectedvirtual

Definition at line 189 of file CircuitDiagram.cpp.

◆ ZoomIn()

void CircuitDiagram::ZoomIn ( )
private

Definition at line 639 of file CircuitDiagram.cpp.

◆ ZoomOut()

void CircuitDiagram::ZoomOut ( )
private

Definition at line 646 of file CircuitDiagram.cpp.

◆ ZoomReset()

void CircuitDiagram::ZoomReset ( )
private

Definition at line 653 of file CircuitDiagram.cpp.

Member Data Documentation

◆ AdditionalHeightPerParam

constexpr int CircuitDiagram::AdditionalHeightPerParam = 12
staticconstexprprivate

Definition at line 172 of file CircuitDiagram.h.

◆ ContextMenu

QMenu* CircuitDiagram::ContextMenu
private

Definition at line 211 of file CircuitDiagram.h.

◆ CornerRoundingRadius

constexpr int CircuitDiagram::CornerRoundingRadius = 8
staticconstexprprivate

Definition at line 163 of file CircuitDiagram.h.

◆ HardwareAdapterNodes

NodeMapType CircuitDiagram::HardwareAdapterNodes
private

Definition at line 200 of file CircuitDiagram.h.

◆ IconMargin

constexpr int CircuitDiagram::IconMargin = 4
staticconstexprprivate

Definition at line 171 of file CircuitDiagram.h.

◆ InnerMargin

constexpr int CircuitDiagram::InnerMargin = 6
staticconstexprprivate

Definition at line 166 of file CircuitDiagram.h.

◆ InnerMarginBottom

constexpr int CircuitDiagram::InnerMarginBottom = 20
staticconstexprprivate

Definition at line 168 of file CircuitDiagram.h.

◆ InnerMarginTop

constexpr int CircuitDiagram::InnerMarginTop = 10
staticconstexprprivate

Definition at line 167 of file CircuitDiagram.h.

◆ InnerPenLineWidth

constexpr int CircuitDiagram::InnerPenLineWidth = 1
staticconstexprprivate

Definition at line 162 of file CircuitDiagram.h.

◆ InnerStartHeight

constexpr int CircuitDiagram::InnerStartHeight = 50
staticconstexprprivate

Definition at line 165 of file CircuitDiagram.h.

◆ InnerWidth

constexpr int CircuitDiagram::InnerWidth = 140
staticconstexprprivate

Definition at line 164 of file CircuitDiagram.h.

◆ InstrumentNodes

NodeMapType CircuitDiagram::InstrumentNodes
private

Definition at line 201 of file CircuitDiagram.h.

◆ ModuleNodes

NodeMapType CircuitDiagram::ModuleNodes
private

Definition at line 202 of file CircuitDiagram.h.

◆ NetworkIconDistance

constexpr int CircuitDiagram::NetworkIconDistance = 30
staticconstexprprivate

Definition at line 176 of file CircuitDiagram.h.

◆ NodeHSep

constexpr int CircuitDiagram::NodeHSep = 220
staticconstexprprivate

Definition at line 156 of file CircuitDiagram.h.

◆ NodeVSep

constexpr int CircuitDiagram::NodeVSep = 40
staticconstexprprivate

Definition at line 155 of file CircuitDiagram.h.

◆ OuterPenLineWidth

constexpr int CircuitDiagram::OuterPenLineWidth = 4
staticconstexprprivate

Definition at line 161 of file CircuitDiagram.h.

◆ ParamSep

constexpr int CircuitDiagram::ParamSep = 6
staticconstexprprivate

Definition at line 173 of file CircuitDiagram.h.

◆ Scene

std::unique_ptr<QGraphicsScene> CircuitDiagram::Scene
private

Definition at line 210 of file CircuitDiagram.h.

◆ SelectedTreeWidgetItem

QTreeWidgetItem* CircuitDiagram::SelectedTreeWidgetItem
private

Definition at line 206 of file CircuitDiagram.h.

◆ SelectionChanged

bool CircuitDiagram::SelectionChanged
private

Definition at line 205 of file CircuitDiagram.h.

◆ SocketDiameter

constexpr int CircuitDiagram::SocketDiameter = 6
staticconstexprprivate

Definition at line 174 of file CircuitDiagram.h.

◆ SocketInnerColor

const QColor CircuitDiagram::SocketInnerColor = QColor("turquoise")
staticprivate

Definition at line 178 of file CircuitDiagram.h.

◆ SocketOuterColor

const QColor CircuitDiagram::SocketOuterColor = QColor("darkturquoise")
staticprivate

Definition at line 177 of file CircuitDiagram.h.

◆ SocketPenLineWidth

constexpr int CircuitDiagram::SocketPenLineWidth = 2
staticconstexprprivate

Definition at line 175 of file CircuitDiagram.h.

◆ StateIconSize

constexpr int CircuitDiagram::StateIconSize = 16
staticconstexprprivate

Definition at line 169 of file CircuitDiagram.h.

◆ TreeWidgetItemNameColumn

constexpr int CircuitDiagram::TreeWidgetItemNameColumn = 0
staticconstexprprivate

Definition at line 158 of file CircuitDiagram.h.

◆ TreeWidgetItemStateColumn

constexpr int CircuitDiagram::TreeWidgetItemStateColumn = 2
staticconstexprprivate

Definition at line 160 of file CircuitDiagram.h.

◆ TreeWidgetItemTypeColumn

constexpr int CircuitDiagram::TreeWidgetItemTypeColumn = 1
staticconstexprprivate

Definition at line 159 of file CircuitDiagram.h.

◆ TreeWidgetParentTypeColumn

constexpr int CircuitDiagram::TreeWidgetParentTypeColumn = 0
staticconstexprprivate

Definition at line 157 of file CircuitDiagram.h.

◆ TypeIconSize

constexpr int CircuitDiagram::TypeIconSize = 24
staticconstexprprivate

Definition at line 170 of file CircuitDiagram.h.

◆ ui

Ui::CircuitDiagram CircuitDiagram::ui
private

Definition at line 209 of file CircuitDiagram.h.

◆ ZoomFactor

constexpr double CircuitDiagram::ZoomFactor = 1.6
staticconstexprprivate

Definition at line 30 of file CircuitDiagram.h.


The documentation for this class was generated from the following files: