Dev
This commit is contained in:
@@ -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);
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user