CableTestBench/Sources/Widgets/ConnectorTestVisualizationWidget.cpp
2019-05-08 14:17:31 -04:00

100 lines
2.3 KiB
C++

#include "ConnectorTestVisualizationWidget.h"
#include "GlobalDefine.h"
CConnectorTestVisualizationWidget::CConnectorTestVisualizationWidget(QWidget *parent) :
QWidget(parent)
{
mPinClicksEnabled = false;
}
int CConnectorTestVisualizationWidget::SetConnectorPinCount(int Count)
{
if(Count <= 0)
{
return RET_ERROR;
}
ClearConnectorsLists();
CONOFFStatusWidget *NewWidget;
int row = 0, col = 0;
for(int i = 0; i < Count; i++)
{
QString pin = QString("%1").arg(i+1);
NewWidget = new CONOFFStatusWidget(CONOFFStatusWidget::ON_OFF_LED_COLOR_GREEN,i+1,this,pin);
connect(NewWidget,SIGNAL(Clicked(int)),this,SLOT(ONOFFLedClicked(int)));
NewWidget->resize(ON_OFF_WIDGET_SIZE,ON_OFF_WIDGET_SIZE);
// NewWidget->move((col)*(ON_OFF_WIDGET_SIZE + col_offset),((row) * (ON_OFF_WIDGET_SIZE + row_offset)));
NewWidget->move(col,row);
NewWidget->show();
mPinsWidgetsList.append(NewWidget);
col += ON_OFF_WIDGET_SIZE+5;
if((col + ON_OFF_WIDGET_SIZE+5) >= geometry().width())
{
col = 0;
row += ON_OFF_WIDGET_SIZE + 5;
}
}
// repaint();
return RET_OK;
}
int CConnectorTestVisualizationWidget::ClearConnectorsLists()
{
for(int i = 0; i < mPinsWidgetsList.size(); i++)
{
delete mPinsWidgetsList.at(i);
}
mPinsWidgetsList.clear();
return RET_OK;
}
int CConnectorTestVisualizationWidget::EnablePinClicks()
{
mPinClicksEnabled = true;
return RET_OK;
}
int CConnectorTestVisualizationWidget::DisablePinClicks()
{
mPinClicksEnabled = false;
return RET_OK;
}
void CConnectorTestVisualizationWidget::ONOFFLedClicked(int Index)
{
if(mPinClicksEnabled)
{
emit PinClicked(Index);
}
}
int CConnectorTestVisualizationWidget::SetConnectorPinStates(QBitArray PinStates)
{
if(PinStates.size() != mPinsWidgetsList.size())
{
qDebug("Erreur de logique dans CConnectorTestVisualizationWidget::SetConnectorPinStates; taille des connecteurs incohérente");
return RET_ERROR;
}
if(mPinsWidgetsList.size() == 0)
{
return RET_OK;
}
for(int i = 0; i < mPinsWidgetsList.size(); i++)
{
mPinsWidgetsList.at(i)->SetState(PinStates.at(i));
}
return RET_OK;
}