MNE-CPP 0.1.9
A Framework for Electrophysiology
Loading...
Searching...
No Matches
selectionsceneitem.cpp
Go to the documentation of this file.
1//=============================================================================================================
36//=============================================================================================================
37// INCLUDES
38//=============================================================================================================
39
40#include "selectionsceneitem.h"
41
42//=============================================================================================================
43// QT INCLUDES
44//=============================================================================================================
45
46#include <QPainter>
47#include <QStaticText>
48
49//=============================================================================================================
50// EIGEN INCLUDES
51//=============================================================================================================
52
53//=============================================================================================================
54// USED NAMESPACES
55//=============================================================================================================
56
57using namespace DISPLIB;
58
59//=============================================================================================================
60// DEFINE MEMBER METHODS
61//=============================================================================================================
62
64 int channelNumber,
65 QPointF channelPosition,
66 int channelKind,
67 int channelUnit,
68 QColor channelColor,
69 bool bIsBadChannel)
70: m_sChannelName(channelName)
71, m_iChannelNumber(channelNumber)
72, m_qpChannelPosition(channelPosition)
73, m_cChannelColor(channelColor)
74, m_bHighlightItem(false)
75, m_iChannelKind(channelKind)
76, m_iChannelUnit(channelUnit)
77, m_bIsBadChannel(bIsBadChannel)
78{
79 this->setAcceptHoverEvents(true);
80 this->setFlag(QGraphicsItem::ItemIsSelectable, true);
81}
82
83//=============================================================================================================
84
86{
87 return QRectF(-25, -30, 50, 50);
88}
89
90//=============================================================================================================
91
92void SelectionSceneItem::paint(QPainter *painter,
93 const QStyleOptionGraphicsItem *option,
94 QWidget *widget)
95{
96 Q_UNUSED(option);
97 Q_UNUSED(widget);
98
99 this->setPos(10*m_qpChannelPosition.x(), -10*m_qpChannelPosition.y());
100
101 // Plot shadow
102 painter->setPen(Qt::NoPen);
103 painter->setBrush(Qt::darkGray);
104 painter->drawEllipse(-12, -12, 30, 30);
105
106 //Plot red if bad
107 if(m_bIsBadChannel) {
108 painter->setBrush(Qt::red);
109 painter->drawEllipse(-15, -15, 30, 30);
110 } else {
111 painter->setBrush(m_cChannelColor);
112 painter->drawEllipse(-15, -15, 30, 30);
113 }
114
115 //Plot selected item
116 if(this->isSelected()){
117 //painter->setPen(QPen(QColor(255,84,22), 5));
118 painter->setPen(QPen(Qt::red, 5));
119 painter->drawEllipse(-15, -15, 30, 30);
120 }
121
122 //OLD
123// //Plot selected item
124// if(this->isSelected())
125// painter->setBrush(QBrush(QColor(93,177,47)));
126// else
127// painter->setBrush(QBrush(m_cChannelColor));
128
129// //Plot highlighted selected item
130// if(m_bHighlightItem) {
131// painter->setPen(QPen(Qt::red, 4));
132// painter->drawEllipse(-15, -15, 30, 30);
133// }
134// else {
135// painter->setPen(QPen(Qt::black, 1));
136// painter->drawEllipse(-15, -15, 30, 30);
137// }
138
139 // Plot electrode name
140 painter->setPen(QPen(Qt::black, 1));
141 QStaticText staticElectrodeName = QStaticText(m_sChannelName);
142 QSizeF sizeText = staticElectrodeName.size();
143 painter->drawStaticText(-15+((30-sizeText.width())/2), -32, staticElectrodeName);
144}
145
146//=============================================================================================================
147
148SelectionItem::SelectionItem(const SelectionItem &other)
149{
155}
Contains the declaration of the SelectionSceneItem class.
The SelectionSceneItem class provides a new data structure for visualizing channels in a 2D layout.
QList< QPointF > m_qpChannelPosition
QList< QString > m_sChannelName
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
SelectionSceneItem(QString channelName, int channelNumber, QPointF channelPosition, int channelKind, int channelUnit, QColor channelColor=Qt::blue, bool bIsBadChannel=false)