kopia lustrzana https://gitlab.com/eliggett/wfview
Merge branch 'creator-widgets' of https://gitlab.com/eliggett/wfview into creator-widgets
commit
1c6db285e0
26
freqctrl.cpp
26
freqctrl.cpp
|
@ -536,8 +536,29 @@ void freqCtrl::wheelEvent(QWheelEvent *event)
|
|||
QPointF pt = event->position();
|
||||
#endif
|
||||
int delta = m_InvertScrolling ? -event->angleDelta().y() : event->angleDelta().y();
|
||||
int numDegrees = delta / 8;
|
||||
int numSteps = numDegrees / 15;
|
||||
qreal numDegrees = delta / 8;
|
||||
qreal offset = numDegrees / 15;
|
||||
|
||||
|
||||
qreal stepsToScroll = QApplication::wheelScrollLines() * offset;
|
||||
|
||||
if( (scrollWheelOffsetAccumulated > 0) && (offset > 0) ) {
|
||||
scrollWheelOffsetAccumulated += stepsToScroll;
|
||||
} else if ((scrollWheelOffsetAccumulated < 0) && (offset < 0)) {
|
||||
scrollWheelOffsetAccumulated += stepsToScroll;
|
||||
} else {
|
||||
// Changed direction, zap the old accumulation:
|
||||
scrollWheelOffsetAccumulated = stepsToScroll;
|
||||
//qInfo() << "Scroll changed direction";
|
||||
}
|
||||
|
||||
int numSteps = int(scrollWheelOffsetAccumulated);
|
||||
|
||||
if(!numSteps) {
|
||||
// we have not accumulated enough for a complete step.
|
||||
// come back later.
|
||||
return;
|
||||
}
|
||||
|
||||
for (int i = m_DigStart; i < m_NumDigits; i++)
|
||||
{
|
||||
|
@ -549,6 +570,7 @@ void freqCtrl::wheelEvent(QWheelEvent *event)
|
|||
decFreq();
|
||||
}
|
||||
}
|
||||
scrollWheelOffsetAccumulated = 0;
|
||||
}
|
||||
|
||||
void freqCtrl::keyPressEvent(QKeyEvent *event)
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
#include <QFrame>
|
||||
#include <QImage>
|
||||
#include <QtGui>
|
||||
#include <QApplication>
|
||||
|
||||
enum FctlUnit {
|
||||
FCTL_UNIT_NONE, // Freq displayed without unit: 14.236.000
|
||||
|
@ -110,6 +111,10 @@ private:
|
|||
int m_DecPos;
|
||||
int m_NumSeps;
|
||||
|
||||
int scrollYperClick = 24;
|
||||
int scrollXperClick = 24;
|
||||
qreal scrollWheelOffsetAccumulated=0;
|
||||
|
||||
qint64 m_MinStep;
|
||||
qint64 m_freq;
|
||||
qint64 m_Oldfreq;
|
||||
|
|
36
meter.cpp
36
meter.cpp
|
@ -63,9 +63,9 @@ meter::meter(QWidget *parent) : QWidget(parent)
|
|||
connect(combo, SIGNAL(activated(int)), this, SLOT(acceptComboItem(int)));
|
||||
//connect(combo, SIGNAL(currentIndexChanged(int)), this, SLOT(acceptComboItem(int)));
|
||||
|
||||
this->setToolTip("");
|
||||
combo->hide();
|
||||
this->installEventFilter(this);
|
||||
|
||||
}
|
||||
|
||||
void meter::setCompReverse(bool reverse) {
|
||||
|
@ -125,12 +125,23 @@ void meter::clearMeter()
|
|||
update();
|
||||
}
|
||||
|
||||
void meter::setMeterType(meter_t type)
|
||||
void meter::setMeterType(meter_t m_type_req)
|
||||
{
|
||||
if(type == meterType)
|
||||
if(m_type_req == meterType)
|
||||
return;
|
||||
|
||||
meterType = type;
|
||||
if( (m_type_req == meterS) || (m_type_req == meterPower) ) {
|
||||
this->setToolTip("");
|
||||
} else {
|
||||
this->setToolTip("Double-click to select meter type.");
|
||||
}
|
||||
|
||||
int m_index = combo->findData(m_type_req);
|
||||
combo->blockSignals(true);
|
||||
combo->setCurrentIndex(m_index);
|
||||
combo->blockSignals(false);
|
||||
|
||||
meterType = m_type_req;
|
||||
// clear average and peak vectors:
|
||||
this->clearMeter();
|
||||
}
|
||||
|
@ -179,13 +190,26 @@ void meter::handleDoubleClick() {
|
|||
}
|
||||
|
||||
bool meter::eventFilter(QObject *object, QEvent *event) {
|
||||
|
||||
if( (freezeDrawing) && (event->type() == QEvent::MouseButtonPress) ) {
|
||||
combo->hide();
|
||||
freezeDrawing = false;
|
||||
return true;
|
||||
}
|
||||
|
||||
if( (freezeDrawing) && (event->type() == QEvent::MouseButtonDblClick) ) {
|
||||
combo->hide();
|
||||
freezeDrawing = false;
|
||||
return true;
|
||||
}
|
||||
|
||||
if(event->type() == QEvent::MouseButtonDblClick) {
|
||||
qDebug() << "Mouse double click event in meter widget";
|
||||
if( !(meterType == meterS || meterType == meterPower)) {
|
||||
handleDoubleClick();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
(void)object;
|
||||
return false;
|
||||
}
|
||||
|
@ -253,6 +277,8 @@ void meter::paintEvent(QPaintEvent *)
|
|||
}
|
||||
break;
|
||||
case meterNone:
|
||||
label = "Double-click to set meter";
|
||||
drawLabel(&painter);
|
||||
return;
|
||||
break;
|
||||
case meterAudio:
|
||||
|
|
51
wfmain.cpp
51
wfmain.cpp
|
@ -714,29 +714,6 @@ void wfmain::receiveStatusUpdate(networkStatus status)
|
|||
|
||||
void wfmain::receiveNetworkAudioLevels(networkAudioLevels l)
|
||||
{
|
||||
/*
|
||||
meter_t m2mtr = ui->meter2Widget->getMeterType();
|
||||
|
||||
if(m2mtr == meterAudio)
|
||||
{
|
||||
if(amTransmitting)
|
||||
{
|
||||
if(l.haveTxLevels)
|
||||
ui->meter2Widget->setLevels(l.txAudioRMS, l.txAudioPeak);
|
||||
} else {
|
||||
if(l.haveRxLevels)
|
||||
ui->meter2Widget->setLevels(l.rxAudioRMS, l.rxAudioPeak);
|
||||
}
|
||||
} else if (m2mtr == meterTxMod) {
|
||||
if(l.haveTxLevels)
|
||||
ui->meter2Widget->setLevels(l.txAudioRMS, l.txAudioPeak);
|
||||
} else if (m2mtr == meterRxAudio) {
|
||||
if(l.haveRxLevels)
|
||||
ui->meter2Widget->setLevels(l.rxAudioRMS, l.rxAudioPeak);
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
meter_t m = meterNone;
|
||||
if(l.haveRxLevels)
|
||||
{
|
||||
|
@ -748,19 +725,10 @@ void wfmain::receiveNetworkAudioLevels(networkAudioLevels l)
|
|||
m = meterTxMod;
|
||||
receiveMeter(m, l.txAudioPeak);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void wfmain::setupMainUI()
|
||||
{
|
||||
ui->meter2Widget->hide();
|
||||
ui->meter3Widget->hide();
|
||||
|
||||
// Future ideas:
|
||||
//ui->meter2selectionCombo->addItem("Transmit Audio", meterTxMod);
|
||||
//ui->meter2selectionCombo->addItem("Receive Audio", meterRxAudio);
|
||||
//ui->meter2selectionCombo->addItem("Latency", meterLatency);
|
||||
|
||||
// Set scroll wheel response (tick interval)
|
||||
// and set arrow key response (single step)
|
||||
ui->rfGainSlider->setTickInterval(100);
|
||||
|
@ -3941,8 +3909,13 @@ void wfmain::receiveRigID(rigCapabilities rigCaps)
|
|||
// Set the second meter here as I suspect we need to be connected for it to work?
|
||||
changeMeterType(prefs.meter2Type, 2);
|
||||
changeMeterType(prefs.meter3Type, 3);
|
||||
ui->meter2Widget->blockMeterType(prefs.meter3Type);
|
||||
ui->meter3Widget->blockMeterType(prefs.meter2Type);
|
||||
ui->meter2Widget->setCompReverse(prefs.compMeterReverse);
|
||||
ui->meter3Widget->setCompReverse(prefs.compMeterReverse);
|
||||
|
||||
|
||||
|
||||
// for (int i = 0; i < ui->meter2selectionCombo->count(); i++)
|
||||
// {
|
||||
// if (static_cast<meter_t>(ui->meter2selectionCombo->itemData(i).toInt()) == prefs.meter2Type)
|
||||
|
@ -4318,13 +4291,16 @@ void wfmain::on_tuneNowBtn_clicked()
|
|||
{
|
||||
queue->addUnique(priorityImmediate,queueItem(funcTunerStatus,QVariant::fromValue<uchar>(2U)));
|
||||
showStatusBarText("Starting ATU tuning cycle...");
|
||||
ATUCheckTimer.setSingleShot(true);
|
||||
ATUCheckTimer.start(5000);
|
||||
}
|
||||
|
||||
void wfmain::on_tuneEnableChk_clicked(bool checked)
|
||||
{
|
||||
queue->addUnique(priorityImmediate,queueItem(funcTunerStatus,QVariant::fromValue<uchar>(checked)));
|
||||
|
||||
showStatusBarText(QString("Turning %0 ATU").arg(checked?"on":"off"));
|
||||
ATUCheckTimer.setSingleShot(true);
|
||||
ATUCheckTimer.start(5000);
|
||||
}
|
||||
|
||||
bool wfmain::on_exitBtn_clicked()
|
||||
|
@ -4404,20 +4380,24 @@ void wfmain::receiveATUStatus(unsigned char atustatus)
|
|||
ui->tuneEnableChk->blockSignals(true);
|
||||
ui->tuneEnableChk->setChecked(false);
|
||||
ui->tuneEnableChk->blockSignals(false);
|
||||
showStatusBarText("ATU not enabled.");
|
||||
if(ATUCheckTimer.isActive())
|
||||
showStatusBarText("ATU not enabled.");
|
||||
break;
|
||||
case 0x01:
|
||||
// ATU enabled
|
||||
ui->tuneEnableChk->blockSignals(true);
|
||||
ui->tuneEnableChk->setChecked(true);
|
||||
ui->tuneEnableChk->blockSignals(false);
|
||||
showStatusBarText("ATU enabled.");
|
||||
if(ATUCheckTimer.isActive())
|
||||
showStatusBarText("ATU enabled.");
|
||||
break;
|
||||
case 0x02:
|
||||
// ATU tuning in-progress.
|
||||
// Add command queue to check again and update status bar
|
||||
// qInfo(logSystem()) << "Received ATU status update that *tuning* is taking place";
|
||||
showStatusBarText("ATU is Tuning...");
|
||||
ATUCheckTimer.stop();
|
||||
ATUCheckTimer.start(5000);
|
||||
queue->add(priorityHighest,funcTunerStatus);
|
||||
break;
|
||||
default:
|
||||
|
@ -5078,7 +5058,6 @@ void wfmain::changeMeterType(meter_t m, int meterNum)
|
|||
|
||||
if(newMeterType==meterNone)
|
||||
{
|
||||
uiMeter->hide();
|
||||
uiMeter->setMeterType(newMeterType);
|
||||
} else {
|
||||
uiMeter->show();
|
||||
|
|
1
wfmain.h
1
wfmain.h
|
@ -513,6 +513,7 @@ private:
|
|||
void initLogging();
|
||||
QTimer logCheckingTimer;
|
||||
int logCheckingOldPosition = 0;
|
||||
QTimer ATUCheckTimer;
|
||||
|
||||
QCustomPlot *plot; // line plot
|
||||
QCustomPlot *wf; // waterfall image
|
||||
|
|
Ładowanie…
Reference in New Issue