#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; }