100 lines
2.3 KiB
C++
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;
|
|
}
|
|
|
|
|