creator-widgets
Elliott Liggett 2024-02-05 13:42:00 -08:00
rodzic 06642dcd5e
commit 81a82fc467
7 zmienionych plików z 125 dodań i 32 usunięć

12
prefs.h
Wyświetl plik

@ -25,11 +25,12 @@ enum prefIfItem {
if_confirmExit = 1 << 12,
if_confirmPowerOff = 1 << 13,
if_meter2Type = 1 << 14,
if_clickDragTuningEnable = 1 << 15,
if_currentColorPresetNumber = 1 << 16,
if_rigCreatorEnable = 1 << 17,
if_frequencyUnits = 1 << 18,
if_all = 1 << 19
if_meter3Type = 1 << 15,
if_clickDragTuningEnable = 1 << 16,
if_currentColorPresetNumber = 1 << 17,
if_rigCreatorEnable = 1 << 18,
if_frequencyUnits = 1 << 19,
if_all = 1 << 20
};
enum prefColItem {
@ -178,6 +179,7 @@ struct preferences {
bool confirmExit;
bool confirmPowerOff;
meter_t meter2Type;
meter_t meter3Type;
bool clickDragTuningEnable;
int currentColorPresetNumber = 0;
bool rigCreatorEnable = false;

Wyświetl plik

@ -81,6 +81,20 @@ void settingswidget::populateComboBoxes()
ui->meter2selectionCombo->show();
ui->meter2selectionCombo->blockSignals(false);
ui->meter3selectionCombo->blockSignals(true);
ui->meter3selectionCombo->addItem("None", meterNone);
ui->meter3selectionCombo->addItem("SWR", meterSWR);
ui->meter3selectionCombo->addItem("ALC", meterALC);
ui->meter3selectionCombo->addItem("Compression", meterComp);
ui->meter3selectionCombo->addItem("Voltage", meterVoltage);
ui->meter3selectionCombo->addItem("Current", meterCurrent);
ui->meter3selectionCombo->addItem("Center", meterCenter);
ui->meter3selectionCombo->addItem("TxRxAudio", meterAudio);
ui->meter3selectionCombo->addItem("RxAudio", meterRxAudio);
ui->meter3selectionCombo->addItem("TxAudio", meterTxMod);
ui->meter3selectionCombo->show();
ui->meter3selectionCombo->blockSignals(false);
ui->secondaryMeterSelectionLabel->show();
ui->audioRXCodecCombo->blockSignals(true);
@ -414,6 +428,14 @@ void settingswidget::updateIfPref(prefIfItem pif)
ui->meter2selectionCombo->blockSignals(false);
break;
}
case if_meter3Type:
{
ui->meter3selectionCombo->blockSignals(true);
int m = ui->meter3selectionCombo->findData(prefs->meter3Type);
ui->meter3selectionCombo->setCurrentIndex(m);
ui->meter3selectionCombo->blockSignals(false);
break;
}
case if_clickDragTuningEnable:
quietlyUpdateCheckbox(ui->clickDragTuningEnableChk, prefs->clickDragTuningEnable);
break;
@ -1492,6 +1514,12 @@ void settingswidget::on_meter2selectionCombo_currentIndexChanged(int index)
emit changedIfPref(if_meter2Type);
}
void settingswidget::on_meter3selectionCombo_currentIndexChanged(int index)
{
prefs->meter3Type = static_cast<meter_t>(ui->meter3selectionCombo->itemData(index).toInt());
emit changedIfPref(if_meter3Type);
}
void settingswidget::on_tuningFloorZerosChk_clicked(bool checked)
{
prefs->niceTS = checked;
@ -2646,3 +2674,4 @@ void settingswidget::connectionStatus(bool conn)
ui->serverTXAudioOutputCombo->setEnabled(!conn);
ui->audioSystemServerCombo->setEnabled(!conn);
}

Wyświetl plik

@ -236,6 +236,8 @@ private slots:
void serverAddUserLine(int row,const QString& user="", const QString& pass="", const int& type=0);
void on_meter3selectionCombo_currentIndexChanged(int index);
private:
Ui::settingswidget *ui;
void createSettingsListItems();

Wyświetl plik

@ -41,7 +41,7 @@
<item>
<widget class="QStackedWidget" name="settingsStack">
<property name="currentIndex">
<number>0</number>
<number>1</number>
</property>
<widget class="QWidget" name="radioAccess">
<layout class="QVBoxLayout" name="verticalLayout_21">
@ -1052,13 +1052,16 @@ ONLY use Manual CI-V when Transceive mode is not supported</string>
<item>
<widget class="QLabel" name="secondaryMeterSelectionLabel">
<property name="text">
<string>Secondary Meter Selection:</string>
<string>Additional Meter Selection:</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="meter2selectionCombo"/>
</item>
<item>
<widget class="QComboBox" name="meter3selectionCombo"/>
</item>
<item>
<widget class="QRadioButton" name="autoPollBtn">
<property name="toolTip">
@ -1276,8 +1279,8 @@ ONLY use Manual CI-V when Transceive mode is not supported</string>
<rect>
<x>0</x>
<y>0</y>
<width>925</width>
<height>330</height>
<width>916</width>
<height>309</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout_2">

Wyświetl plik

@ -729,6 +729,7 @@ void wfmain::receiveNetworkAudioLevels(networkAudioLevels l)
void wfmain::setupMainUI()
{
ui->meter2Widget->hide();
ui->meter3Widget->hide();
// Future ideas:
//ui->meter2selectionCombo->addItem("Transmit Audio", meterTxMod);
@ -1519,6 +1520,8 @@ void wfmain::setDefPrefs()
defPrefs.confirmExit = true;
defPrefs.confirmPowerOff = true;
defPrefs.meter2Type = meterNone;
defPrefs.meter3Type = meterNone;
defPrefs.tcpPort = 0;
defPrefs.tciPort = 50001;
defPrefs.waterfallFormat = 0;
@ -1589,6 +1592,8 @@ void wfmain::loadSettings()
prefs.confirmExit = settings->value("ConfirmExit", defPrefs.confirmExit).toBool();
prefs.confirmPowerOff = settings->value("ConfirmPowerOff", defPrefs.confirmPowerOff).toBool();
prefs.meter2Type = static_cast<meter_t>(settings->value("Meter2Type", defPrefs.meter2Type).toInt());
prefs.meter3Type = static_cast<meter_t>(settings->value("Meter3Type", defPrefs.meter3Type).toInt());
prefs.clickDragTuningEnable = settings->value("ClickDragTuning", false).toBool();
prefs.rigCreatorEnable = settings->value("RigCreator",false).toBool();
@ -2292,7 +2297,10 @@ void wfmain::extChangedIfPref(prefIfItem i)
// Not in settings widget
break;
case if_meter2Type:
changeMeter2Type(prefs.meter2Type);
changeMeterType(prefs.meter2Type, 2);
break;
case if_meter3Type:
changeMeterType(prefs.meter3Type, 3);
break;
case if_clickDragTuningEnable:
// There's nothing to do here since the code
@ -2357,6 +2365,7 @@ void wfmain::extChangedColPref(prefColItem i)
case col_meterText:
ui->meterSPoWidget->setColors(cp->meterLevel, cp->meterPeakScale, cp->meterPeakLevel, cp->meterAverage, cp->meterLowerLine, cp->meterLowText);
ui->meter2Widget->setColors(cp->meterLevel, cp->meterPeakScale, cp->meterPeakLevel, cp->meterAverage, cp->meterLowerLine, cp->meterLowText);
ui->meter3Widget->setColors(cp->meterLevel, cp->meterPeakScale, cp->meterPeakLevel, cp->meterAverage, cp->meterLowerLine, cp->meterLowText);
break;
default:
qWarning(logSystem()) << "Cannot update wfmain col pref" << (int)i;
@ -2748,6 +2757,7 @@ void wfmain::saveSettings()
settings->setValue("ConfirmExit", prefs.confirmExit);
settings->setValue("ConfirmPowerOff", prefs.confirmPowerOff);
settings->setValue("Meter2Type", (int)prefs.meter2Type);
settings->setValue("Meter3Type", (int)prefs.meter3Type);
settings->setValue("ClickDragTuning", prefs.clickDragTuningEnable);
settings->setValue("RigCreator",prefs.rigCreatorEnable);
settings->setValue("FrequencyUnits",prefs.frequencyUnits);
@ -3897,7 +3907,8 @@ void wfmain::receiveRigID(rigCapabilities rigCaps)
}
// Set the second meter here as I suspect we need to be connected for it to work?
changeMeter2Type(prefs.meter2Type);
changeMeterType(prefs.meter2Type, 2);
changeMeterType(prefs.meter3Type, 3);
// for (int i = 0; i < ui->meter2selectionCombo->count(); i++)
// {
// if (static_cast<meter_t>(ui->meter2selectionCombo->itemData(i).toInt()) == prefs.meter2Type)
@ -3963,6 +3974,17 @@ void wfmain::initPeriodicCommands()
queue->add(priorityMediumLow,funcToneSquelchType,true,false);
queue->add(priorityHighest,queueItem(funcSMeter,true));
meter* marray[2];
marray[0] = ui->meter2Widget;
marray[1] = ui->meter3Widget;
for(int m=0; m < 2; m++) {
funcs meterCmd = meter_tToMeterCommand(marray[m]->getMeterType());
if(meterCmd != funcNone) {
qDebug() << "Adding meter command per current UI meters.";
queue->add(priorityHighest,queueItem(meterCmd,true));
}
}
}
void wfmain::receivePTTstatus(bool pttOn)
@ -4578,9 +4600,10 @@ void wfmain::receiveTuningStep(unsigned char step)
void wfmain::receiveMeter(meter_t inMeter, unsigned char level)
{
switch(inMeter)
{
// These first two meters, S and Power,
// are automatically assigned to the primary meter.
case meterS:
ui->meterSPoWidget->setMeterType(meterS);
ui->meterSPoWidget->setLevel(level);
@ -4592,17 +4615,23 @@ void wfmain::receiveMeter(meter_t inMeter, unsigned char level)
ui->meterSPoWidget->update();
break;
default:
if(ui->meter2Widget->getMeterType() == inMeter)
{
// The incoming meter data matches the UI meter
ui->meter2Widget->setLevel(level);
} else if ( (ui->meter2Widget->getMeterType() == meterAudio) &&
(inMeter == meterTxMod) && amTransmitting) {
ui->meter2Widget->setLevel(level);
} else if ( (ui->meter2Widget->getMeterType() == meterAudio) &&
(inMeter == meterRxAudio) && !amTransmitting) {
ui->meter2Widget->setLevel(level);
meter* marray[2];
marray[0] = ui->meter2Widget;
marray[1] = ui->meter3Widget;
for(int m=0; m < 2; m++) {
if(marray[m]->getMeterType() == inMeter)
{
// The incoming meter data matches the UI meter
marray[m]->setLevel(level);
} else if ( (marray[m]->getMeterType() == meterAudio) &&
(inMeter == meterTxMod) && amTransmitting) {
marray[m]->setLevel(level);
} else if ( (marray[m]->getMeterType() == meterAudio) &&
(inMeter == meterRxAudio) && !amTransmitting) {
marray[m]->setLevel(level);
}
}
break;
}
}
@ -4946,15 +4975,26 @@ funcs wfmain::meter_tToMeterCommand(meter_t m)
}
void wfmain::changeMeter2Type(meter_t m)
void wfmain::changeMeterType(meter_t m, int meterNum)
{
qDebug() << "Changing meter type.";
meter_t newMeterType;
meter_t oldMeterType;
newMeterType = m;
oldMeterType = ui->meter2Widget->getMeterType();
if(newMeterType == oldMeterType)
meter* uiMeter = NULL;
if(meterNum == 2) {
uiMeter = ui->meter2Widget;
} else if (meterNum == 3) {
uiMeter = ui->meter3Widget;
} else {
qCritical() << "Error, invalid meter requested: meterNum ==" << meterNum;
return;
}
newMeterType = m;
oldMeterType = uiMeter->getMeterType();
if(newMeterType == oldMeterType) {
qDebug() << "Debug note: the old meter was the same as the new meter.";
}
funcs newCmd = meter_tToMeterCommand(newMeterType);
funcs oldCmd = meter_tToMeterCommand(oldMeterType);
@ -4966,11 +5006,11 @@ void wfmain::changeMeter2Type(meter_t m)
if(newMeterType==meterNone)
{
ui->meter2Widget->hide();
ui->meter2Widget->setMeterType(newMeterType);
uiMeter->hide();
uiMeter->setMeterType(newMeterType);
} else {
ui->meter2Widget->show();
ui->meter2Widget->setMeterType(newMeterType);
uiMeter->show();
uiMeter->setMeterType(newMeterType);
if((newMeterType!=meterRxAudio) && (newMeterType!=meterTxMod) && (newMeterType!=meterAudio))
queue->add(priorityHighest,queueItem(newCmd,true));
}
@ -5059,6 +5099,7 @@ void wfmain::useColorPreset(colorPrefsType *cp)
//qInfo(logSystem()) << "Setting plots to color preset number " << cp->presetNum << ", with name " << *(cp->presetName);
ui->meterSPoWidget->setColors(cp->meterLevel, cp->meterPeakScale, cp->meterPeakLevel, cp->meterAverage, cp->meterLowerLine, cp->meterLowText);
ui->meter2Widget->setColors(cp->meterLevel, cp->meterPeakScale, cp->meterPeakLevel, cp->meterAverage, cp->meterLowerLine, cp->meterLowText);
ui->meter3Widget->setColors(cp->meterLevel, cp->meterPeakScale, cp->meterPeakLevel, cp->meterAverage, cp->meterLowerLine, cp->meterLowText);
foreach(auto vfo, vfos) {
vfo->colorPreset(cp);
}

Wyświetl plik

@ -469,7 +469,7 @@ private slots:
void on_ritTuneDial_valueChanged(int value);
void on_ritEnableChk_clicked(bool checked);
void changeMeter2Type(meter_t m);
void changeMeterType(meter_t m, int meterNum);
void enableRigCtl(bool enabled);
void on_memoriesBtn_clicked();

Wyświetl plik

@ -117,6 +117,22 @@
</property>
</widget>
</item>
<item>
<widget class="meter" name="meter3Widget" native="true">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>60</height>
</size>
</property>
</widget>
</item>
</layout>
</item>
<item>