Work in progress.

merge-requests/1/head
Teuniz 2015-05-31 21:59:29 +02:00
rodzic 77513394f6
commit 38749e7909
2 zmienionych plików z 90 dodań i 13 usunięć

Wyświetl plik

@ -429,20 +429,30 @@ void SignalCurve::setDeviceParameters(struct device_settings *devp)
void SignalCurve::drawTopLabels(QPainter *painter) void SignalCurve::drawTopLabels(QPainter *painter)
{ {
QPainterPath path; int i;
char str[128]; char str[128];
QPainterPath path;
if(devparms == NULL) if(devparms == NULL)
{ {
return; return;
} }
path.addRoundedRect(5, 5, 70, 20, 3, 3);
painter->fillPath(path, Qt::black);
painter->setPen(Qt::white);
painter->drawText(5, 5, 70, 20, Qt::AlignCenter, devparms->modelname);
//////////////// triggerstatus /////////////////////////////// //////////////// triggerstatus ///////////////////////////////
path = QPainterPath(); path = QPainterPath();
path.addRoundedRect(55, 5, 45, 20, 3, 3); path.addRoundedRect(80, 5, 35, 20, 3, 3);
if((devparms->triggerstatus == 1) || (devparms->triggerstatus == 3)) if((devparms->triggerstatus == 1) || (devparms->triggerstatus == 3))
{ {
@ -478,18 +488,18 @@ void SignalCurve::drawTopLabels(QPainter *painter)
switch(devparms->triggerstatus) switch(devparms->triggerstatus)
{ {
case 0 : painter->drawText(55, 5, 45, 20, Qt::AlignCenter, "T'D"); case 0 : painter->drawText(80, 5, 35, 20, Qt::AlignCenter, "T'D");
break; break;
case 1 : painter->drawText(55, 5, 45, 20, Qt::AlignCenter, "WAIT"); case 1 : painter->drawText(80, 5, 35, 20, Qt::AlignCenter, "WAIT");
break; break;
case 2 : painter->drawText(55, 5, 45, 20, Qt::AlignCenter, "RUN"); case 2 : painter->drawText(80, 5, 35, 20, Qt::AlignCenter, "RUN");
break; break;
case 3 : painter->drawText(55, 5, 45, 20, Qt::AlignCenter, "AUTO"); case 3 : painter->drawText(80, 5, 35, 20, Qt::AlignCenter, "AUTO");
break; break;
case 4 : painter->drawText(55, 5, 45, 20, Qt::AlignCenter, "FIN"); case 4 : painter->drawText(80, 5, 35, 20, Qt::AlignCenter, "FIN");
break; break;
case 5 : painter->setPen(Qt::red); case 5 : painter->setPen(Qt::red);
painter->drawText(55, 5, 45, 20, Qt::AlignCenter, "STOP"); painter->drawText(80, 5, 35, 20, Qt::AlignCenter, "STOP");
break; break;
} }
@ -497,19 +507,19 @@ void SignalCurve::drawTopLabels(QPainter *painter)
path = QPainterPath(); path = QPainterPath();
path.addRoundedRect(130, 5, 70, 20, 3, 3); path.addRoundedRect(140, 5, 70, 20, 3, 3);
painter->fillPath(path, Qt::black); painter->fillPath(path, Qt::black);
painter->setPen(Qt::white); painter->setPen(Qt::white);
painter->drawText(115, 20, "H"); painter->drawText(125, 20, "H");
convert_to_metric_suffix(str, devparms->timebasescale); convert_to_metric_suffix(str, devparms->timebasescale);
strcat(str, "s"); strcat(str, "s");
painter->drawText(130, 5, 70, 20, Qt::AlignCenter, str); painter->drawText(140, 5, 70, 20, Qt::AlignCenter, str);
//////////////// samplerate /////////////////////////////// //////////////// samplerate ///////////////////////////////
@ -527,6 +537,37 @@ void SignalCurve::drawTopLabels(QPainter *painter)
painter->drawText(200, 14, 85, 20, Qt::AlignCenter, str); painter->drawText(200, 14, 85, 20, Qt::AlignCenter, str);
//////////////// memory position ///////////////////////////////
path = QPainterPath();
path.addRoundedRect(285, 5, 240, 20, 3, 3);
painter->fillPath(path, Qt::black);
painter->setPen(Qt::gray);
painter->drawRect(288, 16, 233, 8);
painter->setPen(Qt::white);
painter->drawLine(289, 20, 291, 22);
for(i=0; i<19; i++)
{
painter->drawLine((i * 12) + 291, 22, (i * 12) + 293, 22);
painter->drawLine((i * 12) + 297, 18, (i * 12) + 299, 18);
painter->drawLine((i * 12) + 294, 21, (i * 12) + 296, 19);
painter->drawLine((i * 12) + 300, 19, (i * 12) + 302, 21);
}
painter->drawLine(519, 22, 520, 22);
drawSmallTriggerArrow(painter, 407, 16, QColor(255, 128, 0));
//////////////// delay /////////////////////////////// //////////////// delay ///////////////////////////////
path = QPainterPath(); path = QPainterPath();
@ -683,6 +724,11 @@ void SignalCurve::drawChanLabel(QPainter *painter, int xpos, int ypos, int chn)
painter->drawText(xpos + 25, ypos + 1, 85, 20, Qt::AlignCenter, str2); painter->drawText(xpos + 25, ypos + 1, 85, 20, Qt::AlignCenter, str2);
if(devparms->chanbwlimit[chn])
{
painter->drawText(xpos + 90, ypos + 1, 20, 20, Qt::AlignCenter, "B");
}
if(devparms->chancoupling[chn] == 0) if(devparms->chancoupling[chn] == 0)
{ {
painter->drawLine(xpos + 33, ypos + 6, xpos + 33, ypos + 10); painter->drawLine(xpos + 33, ypos + 6, xpos + 33, ypos + 10);
@ -724,6 +770,11 @@ void SignalCurve::drawChanLabel(QPainter *painter, int xpos, int ypos, int chn)
painter->drawText(xpos + 25, ypos + 1, 85, 20, Qt::AlignCenter, str2); painter->drawText(xpos + 25, ypos + 1, 85, 20, Qt::AlignCenter, str2);
if(devparms->chanbwlimit[chn])
{
painter->drawText(xpos + 90, ypos + 1, 20, 20, Qt::AlignCenter, "B");
}
if(devparms->chancoupling[chn] == 0) if(devparms->chancoupling[chn] == 0)
{ {
painter->drawLine(xpos + 33, ypos + 6, xpos + 33, ypos + 10); painter->drawLine(xpos + 33, ypos + 6, xpos + 33, ypos + 10);
@ -766,6 +817,11 @@ void SignalCurve::drawChanLabel(QPainter *painter, int xpos, int ypos, int chn)
painter->drawText(xpos + 25, ypos + 1, 85, 20, Qt::AlignCenter, str2); painter->drawText(xpos + 25, ypos + 1, 85, 20, Qt::AlignCenter, str2);
if(devparms->chanbwlimit[chn])
{
painter->drawText(xpos + 90, ypos + 1, 20, 20, Qt::AlignCenter, "B");
}
if(devparms->chancoupling[chn] == 0) if(devparms->chancoupling[chn] == 0)
{ {
painter->drawLine(xpos + 33, ypos + 6, xpos + 33, ypos + 10); painter->drawLine(xpos + 33, ypos + 6, xpos + 33, ypos + 10);
@ -864,14 +920,34 @@ void SignalCurve::drawArrow(QPainter *painter, int xpos, int ypos, int rot, QCol
} }
void SignalCurve::drawSmallTriggerArrow(QPainter *painter, int xpos, int ypos, QColor color)
{
QPainterPath path;
path.moveTo(xpos + 5, ypos - 10);
path.lineTo(xpos + 5, ypos - 5);
path.lineTo(xpos, ypos);
path.lineTo(xpos - 4, ypos - 5);
path.lineTo(xpos - 4, ypos - 10);
path.lineTo(xpos + 5, ypos - 10);
painter->fillPath(path, color);
painter->setPen(Qt::black);
painter->drawLine(xpos - 2, ypos - 8, xpos + 2, ypos - 8);
painter->drawLine(xpos, ypos - 8, xpos, ypos - 3);
}
void SignalCurve::drawTrigCenterArrow(QPainter *painter, int xpos, int ypos) void SignalCurve::drawTrigCenterArrow(QPainter *painter, int xpos, int ypos)
{ {
QPainterPath path; QPainterPath path;
path.moveTo(xpos + 6, ypos); path.moveTo(xpos + 7, ypos);
path.lineTo(xpos - 6, ypos); path.lineTo(xpos - 6, ypos);
path.lineTo(xpos, ypos + 7); path.lineTo(xpos, ypos + 7);
path.lineTo(xpos + 6, ypos); path.lineTo(xpos + 7, ypos);
painter->fillPath(path, QColor(255, 128, 0)); painter->fillPath(path, QColor(255, 128, 0));
} }

Wyświetl plik

@ -138,6 +138,7 @@ private:
void drawWidget(QPainter *, int, int); void drawWidget(QPainter *, int, int);
void drawArrow(QPainter *, int, int, int, QColor, char); void drawArrow(QPainter *, int, int, int, QColor, char);
void drawSmallTriggerArrow(QPainter *, int, int, QColor);
void drawTrigCenterArrow(QPainter *, int, int); void drawTrigCenterArrow(QPainter *, int, int);
void drawChanLabel(QPainter *, int, int, int); void drawChanLabel(QPainter *, int, int, int);
void drawTopLabels(QPainter *); void drawTopLabels(QPainter *);