kopia lustrzana https://gitlab.com/eliggett/wfview
Fixed issue where the "none" selection didn't work quite right. Also
fixed the T/R meter switching to clear out invalid readings.merge-requests/6/head
rodzic
064d9cc2ce
commit
d9a9a3ba2b
33
meter.cpp
33
meter.cpp
|
@ -48,13 +48,23 @@ meter::meter(QWidget *parent) : QWidget(parent)
|
|||
|
||||
}
|
||||
|
||||
void meter::setMeterType(meterKind type)
|
||||
void meter::clearMeterOnPTTtoggle()
|
||||
{
|
||||
if(type == meterType)
|
||||
return;
|
||||
// When a meter changes type, such as the fixed S -- TxPo meter,
|
||||
// there is automatic clearing. However, some meters do not switch on thier own,
|
||||
// and thus we are providing this clearing method. We are careful
|
||||
// not to clear meters that don't make sense to clear (such as Vd and Id)
|
||||
|
||||
meterType = type;
|
||||
// clear average and peak vectors:
|
||||
|
||||
if( (meterType == meterALC) || (meterType == meterSWR)
|
||||
|| (meterType == meterComp) || (meterType == meterTxMod) )
|
||||
{
|
||||
clearMeter();
|
||||
}
|
||||
}
|
||||
|
||||
void meter::clearMeter()
|
||||
{
|
||||
current = 0;
|
||||
average = 0;
|
||||
peak = 0;
|
||||
|
@ -70,6 +80,16 @@ void meter::setMeterType(meterKind type)
|
|||
update();
|
||||
}
|
||||
|
||||
void meter::setMeterType(meterKind type)
|
||||
{
|
||||
if(type == meterType)
|
||||
return;
|
||||
|
||||
meterType = type;
|
||||
// clear average and peak vectors:
|
||||
this->clearMeter();
|
||||
}
|
||||
|
||||
meterKind meter::getMeterType()
|
||||
{
|
||||
return meterType;
|
||||
|
@ -140,6 +160,9 @@ void meter::paintEvent(QPaintEvent *)
|
|||
peakRedLevel = 100;
|
||||
drawScaleComp(&painter);
|
||||
break;
|
||||
case meterNone:
|
||||
return;
|
||||
break;
|
||||
default:
|
||||
label = "DN";
|
||||
peakRedLevel = 241;
|
||||
|
|
4
meter.h
4
meter.h
|
@ -24,6 +24,8 @@ public slots:
|
|||
void updateDrawing(int num);
|
||||
void setLevels(int current, int peak, int average);
|
||||
void setLevel(int current);
|
||||
void clearMeterOnPTTtoggle();
|
||||
void clearMeter();
|
||||
void setMeterType(meterKind type);
|
||||
void setMeterShortString(QString);
|
||||
QString getMeterShortString();
|
||||
|
@ -47,8 +49,6 @@ private:
|
|||
std::vector<unsigned char> avgLevels;
|
||||
std::vector<unsigned char> peakLevels;
|
||||
|
||||
|
||||
|
||||
int peakRedLevel=0;
|
||||
bool drawLabels = true;
|
||||
int mXstart = 0; // Starting point for S=0.
|
||||
|
|
|
@ -2407,6 +2407,7 @@ void wfmain::doCmd(commandtype cmddata)
|
|||
{
|
||||
bool pttrequest = (*std::static_pointer_cast<bool>(data));
|
||||
emit setPTT(pttrequest);
|
||||
ui->meter2Widget->clearMeterOnPTTtoggle();
|
||||
if(pttrequest)
|
||||
{
|
||||
ui->meterSPoWidget->setMeterType(meterPower);
|
||||
|
@ -5257,6 +5258,7 @@ void wfmain::on_meter2selectionCombo_activated(int index)
|
|||
if(newMeterType==meterNone)
|
||||
{
|
||||
ui->meter2Widget->hide();
|
||||
ui->meter2Widget->setMeterType(newMeterType);
|
||||
} else {
|
||||
ui->meter2Widget->show();
|
||||
ui->meter2Widget->setMeterType(newMeterType);
|
||||
|
|
Ładowanie…
Reference in New Issue