50 #include <QGridLayout>
69 , m_pPluginConnectorConnection(pPluginConnectorConnection)
72 QWidget *rightFiller =
new QWidget;
73 rightFiller->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
75 QWidget *bottomFiller =
new QWidget;
76 bottomFiller->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
78 QString sSender = m_pPluginConnectorConnection->getSender()->getName();
79 QString sReceiver = m_pPluginConnectorConnection->getReceiver()->getName();
81 m_pLabel =
new QLabel(tr(
"Connector Connection: ")+sSender+
" -> "+sReceiver,
this);
82 m_pLabel->setStyleSheet(
"border: 0px; font-size: 14px; font-weight: bold;");
87 QGridLayout *layout =
new QGridLayout;
89 layout->addWidget(m_pLabel,curRow,0,1,3);
92 for(qint32 i = 0; i < m_pPluginConnectorConnection->getSender()->getOutputConnectors().size(); ++i)
94 QComboBox* m_pComboBox =
new QComboBox(
this);
95 QString t_sSenderName = m_pPluginConnectorConnection->getSender()->getOutputConnectors()[i]->getName();
96 QLabel* m_pLabelOutput =
new QLabel(t_sSenderName,
this);
97 m_qMapSenderToReceiverConnections.insert(t_sSenderName,m_pComboBox);
99 layout->addWidget(m_pLabelOutput,curRow,0);
101 ConnectorDataType t_senderConnectorDataType = PluginConnectorConnection::getDataType(m_pPluginConnectorConnection->getSender()->getOutputConnectors()[i]);
103 m_pComboBox->addItem(
"----");
105 for(qint32 j = 0; j < m_pPluginConnectorConnection->getReceiver()->getInputConnectors().size(); ++j)
107 ConnectorDataType t_receiverConnectorDataType = PluginConnectorConnection::getDataType(m_pPluginConnectorConnection->getReceiver()->getInputConnectors()[j]);
108 if(t_senderConnectorDataType == t_receiverConnectorDataType)
109 m_pComboBox->addItem(m_pPluginConnectorConnection->getReceiver()->getInputConnectors()[j]->getName());
112 layout->addWidget(m_pComboBox,curRow,1);
117 QHash<QPair<QString, QString>, QMetaObject::Connection>::iterator it;
118 for (it = pPluginConnectorConnection->m_qHashConnections.begin(); it != pPluginConnectorConnection->m_qHashConnections.end(); ++it)
120 QComboBox* m_pComboBox = m_qMapSenderToReceiverConnections[it.key().first];
122 for(qint32 i = 0; i < m_pComboBox->count(); ++i)
123 if(QString::compare(m_pComboBox->itemText(i), it.key().second) == 0)
124 m_pComboBox->setCurrentIndex(i);
128 foreach(QComboBox* m_pComboBox, m_qMapSenderToReceiverConnections)
131 layout->addWidget(bottomFiller,curRow,0);
134 layout->addWidget(rightFiller,1,3,curRow-1,1);
136 this->setLayout(layout);
144 m_qMapSenderToReceiverConnections.clear();
153 if(QString::compare(p_sCurrentReceiver, QString(
"----")) == 0)
157 QString t_sCurrentSender;
158 QComboBox* t_qComboBox;
159 QMap<QString, QComboBox*>::iterator it;
160 for (it = m_qMapSenderToReceiverConnections.begin(); it != m_qMapSenderToReceiverConnections.end(); ++it)
162 if(it.value()->hasFocus())
164 t_sCurrentSender = it.key();
165 t_qComboBox = it.value();
169 for(i = 0; i < m_pPluginConnectorConnection->m_pSender->getOutputConnectors().size(); ++i)
170 if(m_pPluginConnectorConnection->m_pSender->getOutputConnectors()[i]->getName() == t_sCurrentSender)
174 for(j = 0; j < m_pPluginConnectorConnection->m_pSender->getOutputConnectors().size(); ++j)
175 if(m_pPluginConnectorConnection->m_pReceiver->getInputConnectors()[j]->getName() == p_sCurrentReceiver)
178 m_pPluginConnectorConnection->m_qHashConnections.insert(QPair<QString,QString>(m_pPluginConnectorConnection->m_pSender->getOutputConnectors()[i]->getName(),
179 m_pPluginConnectorConnection->m_pReceiver->getInputConnectors()[j]->getName()),
180 connect(m_pPluginConnectorConnection->m_pSender->getOutputConnectors()[i].data(), &PluginOutputConnector::notify,
181 m_pPluginConnectorConnection->m_pReceiver->getInputConnectors()[j].data(), &PluginInputConnector::update, Qt::BlockingQueuedConnection));
186 for (it = m_qMapSenderToReceiverConnections.begin(); it != m_qMapSenderToReceiverConnections.end(); ++it)
188 if(it.value() != t_qComboBox && it.value()->currentText() == p_sCurrentReceiver)
190 QPair<QString, QString> t_qPair(it.key(),it.value()->currentText());
191 disconnect(m_pPluginConnectorConnection->m_qHashConnections[t_qPair]);
192 m_pPluginConnectorConnection->m_qHashConnections.remove(t_qPair);
193 it.value()->setCurrentIndex(0);
Contains the declaration of the PluginConnectorConnection class.
The PluginConnectorConnection class holds connector connections.