This commit is contained in:
JF
2019-05-08 14:17:31 -04:00
parent ea4c6769f4
commit d2a37c3b5f
43 changed files with 2150 additions and 132 deletions
@@ -4,6 +4,7 @@
CConnectorTestVisualizationWidget::CConnectorTestVisualizationWidget(QWidget *parent) :
QWidget(parent)
{
mPinClicksEnabled = false;
}
int CConnectorTestVisualizationWidget::SetConnectorPinCount(int Count)
@@ -21,7 +22,8 @@ int CConnectorTestVisualizationWidget::SetConnectorPinCount(int Count)
for(int i = 0; i < Count; i++)
{
QString pin = QString("%1").arg(i+1);
NewWidget = new CONOFFStatusWidget(CONOFFStatusWidget::ON_OFF_LED_COLOR_GREEN,this,pin);
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)));
@@ -52,3 +54,46 @@ int CConnectorTestVisualizationWidget::ClearConnectorsLists()
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;
}
@@ -3,8 +3,9 @@
#include <QWidget>
#include "ONOFFStatusWidget.h"
#include <QList>
#include "CableTestBenchDefs.h"
#include <QList>
#include <QBitArray>
#define ON_OFF_WIDGET_SIZE 30
#define LED_PER_LINE_COUNT 10
@@ -16,14 +17,28 @@ public:
QList<CONOFFStatusWidget*> mPinsWidgetsList;
int SetConnectorPinCount(int count);
int ClearConnectorsLists();
int DisablePinClicks();
int EnablePinClicks();
int SetConnectorPinStates(QBitArray PinStates);
signals:
void PinClicked(int PinNbr);
private:
bool mPinClicksEnabled;
public slots:
void ONOFFLedClicked(int Index);
};
+31 -6
View File
@@ -18,7 +18,7 @@
#include "ONOFFStatusWidget.h"
#include <QPainter>
CONOFFStatusWidget::CONOFFStatusWidget(eONOFFLedColor Color, QWidget *Parent, QString Label)
CONOFFStatusWidget::CONOFFStatusWidget(eONOFFLedColor Color,int index, QWidget *Parent,QString Label)
{
setParent(Parent);
if(Color == ON_OFF_LED_COLOR_GREEN)
@@ -34,6 +34,9 @@ CONOFFStatusWidget::CONOFFStatusWidget(eONOFFLedColor Color, QWidget *Parent, QS
mLabel = new QLabel(Label,this);
mLabel->move(0,15);
mIndex = index;
mIsOn = false;
}
CONOFFStatusWidget::~CONOFFStatusWidget()
@@ -42,17 +45,34 @@ CONOFFStatusWidget::~CONOFFStatusWidget()
void CONOFFStatusWidget::SetON()
{
IsOn = true;
if(mIsOn == false)
{
mIsOn = true;
repaint();
}
}
void CONOFFStatusWidget::SetOFF()
{
IsOn = true;
if(mIsOn == true)
{
mIsOn = false;
repaint();
}
}
void CONOFFStatusWidget::SetState(bool IsON)
{
if(IsON != mIsOn) //don't repaint if not necessary
{
mIsOn = IsON;
repaint();
}
}
void CONOFFStatusWidget::Toggle()
{
if(IsOn)
if(mIsOn)
{
SetOFF();
}
@@ -66,13 +86,13 @@ void CONOFFStatusWidget::paintEvent(QPaintEvent *PaintEvent)
{
QPainter painter(this);
if(IsOn)
if(mIsOn)
{
painter.drawPixmap(0,0,mLedOnPixmap);
}
else
{
painter.drawPixmap(0,0,mLedOnPixmap);
painter.drawPixmap(0,0,mLedOffPixmap);
}
}
@@ -99,3 +119,8 @@ void CONOFFStatusWidget::resizeEvent(QResizeEvent *event)
mLabel->move((width/2)-(LabelWidth/2),height);
}
void CONOFFStatusWidget::mouseReleaseEvent(QMouseEvent *event)
{
emit Clicked(mIndex);
}
+8 -3
View File
@@ -19,24 +19,29 @@ public:
ON_OFF_LED_COLOR_RED
};
CONOFFStatusWidget(eONOFFLedColor Color, QWidget *Parent = NULL,QString Label = QString());
CONOFFStatusWidget(eONOFFLedColor Color,int index = -1, QWidget *Parent = NULL,QString Label = QString());
~CONOFFStatusWidget();
void paintEvent(QPaintEvent *PaintEvent);
void resizeEvent(QResizeEvent *);
void mouseReleaseEvent(QMouseEvent *event);
QLabel *mLabel;
QPixmap mLedOnPixmap,mLedOffPixmap;
bool IsOn;
bool mIsOn;
void SetON();
void SetOFF();
void Toggle();
void SetState(bool IsON);
int mIndex;
public slots:
signals:
void Clicked(int index);