Preference changes from settings widget are now received into wfmain.

Some even work!
widgets
Elliott Liggett 2023-02-19 18:29:22 -08:00
rodzic 00bb42c31d
commit e8239d606f
6 zmienionych plików z 350 dodań i 237 usunięć

Wyświetl plik

@ -20,7 +20,7 @@ enum prefIfItem {
if_wflength = 1 << 11,
if_confirmExit = 1 << 12,
if_confirmPowerOff = 1 << 13,
if_meterKind = 1 << 14,
if_meter2Type = 1 << 14,
if_clickDragTuningEnable = 1 << 15,
if_currentColorPresetNumber = 1 << 16,
if_all = 1 << 17

Wyświetl plik

@ -246,7 +246,7 @@ void settingswidget::updateIfPref(prefIfItem pif)
case if_confirmPowerOff:
// No UI element for this.
break;
case if_meterKind:
case if_meter2Type:
{
int m = ui->meter2selectionCombo->findData(prefs->meter2Type);
ui->meter2selectionCombo->setCurrentIndex(m);
@ -675,15 +675,19 @@ void settingswidget::updateUnderlayMode()
switch(prefs->underlayMode) {
case underlayNone:
quietlyUpdateRadiobutton(ui->underlayNone, true);
ui->underlayBufferSlider->setDisabled(true);
break;
case underlayPeakHold:
quietlyUpdateRadiobutton(ui->underlayPeakHold, true);
ui->underlayBufferSlider->setDisabled(true);
break;
case underlayPeakBuffer:
quietlyUpdateRadiobutton(ui->underlayPeakBuffer, true);
ui->underlayBufferSlider->setEnabled(true);
break;
case underlayAverageBuffer:
quietlyUpdateRadiobutton(ui->underlayAverageBuffer, true);
ui->underlayBufferSlider->setEnabled(true);
break;
default:
qWarning() << "Do not understand underlay mode: " << (unsigned int) prefs->underlayMode;
@ -762,3 +766,9 @@ void settingswidget::on_autoSSBchk_clicked(bool checked)
prefs->automaticSidebandSwitching = checked;
emit changedCtPrefs(ct_automaticSidebandSwitching);
}
void settingswidget::on_useSystemThemeChk_clicked(bool checked)
{
prefs->useSystemTheme = checked;
emit changedIfPrefs(if_useSystemTheme);
}

Wyświetl plik

@ -61,11 +61,19 @@ signals:
// since many of these changes are not thought
// of as merely "preferences"... although they generally are...
// ...hmm
void changedIfPref(int items);
void changedRaPref(int items);
void changedIfPrefs(int items);
void changedRaPrefs(int items);
void changedCtPrefs(int items);
void changedLanPrefs(int items);
void changedClusterPrefs(int items);
void changedUdpPrefs(int items);
void changedIfPref(prefIfItem i);
void changedRaPref(prefRaItem i);
void changedCtPref(prefCtItem i);
void changedLanPref(prefLanItem i);
void changedClusterPref(prefClusterItem i);
void changedUdpPref(udpPrefsItem i);
private slots:
void on_settingsList_currentRowChanged(int currentRow);
@ -74,6 +82,8 @@ private slots:
void on_autoSSBchk_clicked(bool checked);
void on_useSystemThemeChk_clicked(bool checked);
private:
Ui::settingswidget *ui;
void createSettingsListItems();

Wyświetl plik

@ -57,6 +57,14 @@ wfmain::wfmain(const QString settingsFile, const QString logFile, bool debugMode
setupui = new settingswidget();
qRegisterMetaType<udpPreferences>(); // Needs to be registered early.
qRegisterMetaType<udpPrefsItem>();
qRegisterMetaType<preferences>();
qRegisterMetaType<prefIfItem>();
qRegisterMetaType<prefRaItem>();
qRegisterMetaType<prefCtItem>();
qRegisterMetaType<prefLanItem>();
qRegisterMetaType<prefClusterItem>();
qRegisterMetaType<rigCapabilities>();
qRegisterMetaType<duplexMode>();
qRegisterMetaType<rptAccessTxRx>();
@ -91,6 +99,7 @@ wfmain::wfmain(const QString settingsFile, const QString logFile, bool debugMode
setupKeyShortcuts();
setupMainUI();
connectSettingsWidget();
prepareSettingsWindow();
setSerialDevicesUI();
@ -1058,23 +1067,23 @@ void wfmain::setupMainUI()
ui->wfthemeCombo->addItem("Spectrum", QCPColorGradient::gpSpectrum);
ui->wfthemeCombo->addItem("Candy", QCPColorGradient::gpCandy);
ui->meter2selectionCombo->addItem("None", meterNone);
ui->meter2selectionCombo->addItem("SWR", meterSWR);
ui->meter2selectionCombo->addItem("ALC", meterALC);
ui->meter2selectionCombo->addItem("Compression", meterComp);
ui->meter2selectionCombo->addItem("Voltage", meterVoltage);
ui->meter2selectionCombo->addItem("Current", meterCurrent);
ui->meter2selectionCombo->addItem("Center", meterCenter);
ui->meter2selectionCombo->addItem("TxRxAudio", meterAudio);
ui->meter2selectionCombo->addItem("RxAudio", meterRxAudio);
ui->meter2selectionCombo->addItem("TxAudio", meterTxMod);
// ui->meter2selectionCombo->addItem("None", meterNone);
// ui->meter2selectionCombo->addItem("SWR", meterSWR);
// ui->meter2selectionCombo->addItem("ALC", meterALC);
// ui->meter2selectionCombo->addItem("Compression", meterComp);
// ui->meter2selectionCombo->addItem("Voltage", meterVoltage);
// ui->meter2selectionCombo->addItem("Current", meterCurrent);
// ui->meter2selectionCombo->addItem("Center", meterCenter);
// ui->meter2selectionCombo->addItem("TxRxAudio", meterAudio);
// ui->meter2selectionCombo->addItem("RxAudio", meterRxAudio);
// ui->meter2selectionCombo->addItem("TxAudio", meterTxMod);
ui->meter2Widget->hide();
ui->meter2selectionCombo->show();
ui->meter2selectionCombo->setCurrentIndex((int)prefs.meter2Type);
// ui->meter2selectionCombo->show();
// ui->meter2selectionCombo->setCurrentIndex((int)prefs.meter2Type);
ui->secondaryMeterSelectionLabel->show();
// ui->secondaryMeterSelectionLabel->show();
// Future ideas:
@ -1220,6 +1229,27 @@ void wfmain::setupMainUI()
}
void wfmain::connectSettingsWidget()
{
connect(setupui, SIGNAL(changedClusterPref(prefClusterItem)), this, SLOT(extChangedClusterPref(prefClusterItem)));
connect(setupui, SIGNAL(changedClusterPrefs(int)), this, SLOT(extChangedClusterPrefs(int)));
connect(setupui, SIGNAL(changedCtPref(prefCtItem)), this, SLOT(extChangedCtPref(prefCtItem)));
connect(setupui, SIGNAL(changedCtPrefs(int)), this, SLOT(extChangedCtPrefs(int)));
connect(setupui, SIGNAL(changedIfPref(prefIfItem)), this, SLOT(extChangedIfPref(prefIfItem)));
connect(setupui, SIGNAL(changedIfPrefs(int)), this, SLOT(extChangedIfPrefs(int)));
connect(setupui, SIGNAL(changedLanPref(prefLanItem)), this, SLOT(extChangedLanPref(prefLanItem)));
connect(setupui, SIGNAL(changedLanPrefs(int)), this, SLOT(extChangedLanPrefs(int)));
connect(setupui, SIGNAL(changedRaPref(prefRaItem)), this, SLOT(extChangedRaPref(prefRaItem)));
connect(setupui, SIGNAL(changedRaPrefs(int)), this, SLOT(extChangedRaPrefs(int)));
connect(setupui, SIGNAL(changedUdpPref(udpPrefsItem)), this, SLOT(extChangedUdpPref(udpPrefsItem)));
connect(setupui, SIGNAL(changedUdpPrefs(int)), this, SLOT(extChangedUdpPrefs(int)));
}
void wfmain::prepareSettingsWindow()
{
settingsTabisAttached = true;
@ -1379,38 +1409,38 @@ void wfmain::setServerToPrefs()
void wfmain::setUIToPrefs()
{
ui->fullScreenChk->setChecked(prefs.useFullScreen);
on_fullScreenChk_clicked(prefs.useFullScreen);
//ui->fullScreenChk->setChecked(prefs.useFullScreen);
changeFullScreenMode(prefs.useFullScreen);
ui->useSystemThemeChk->setChecked(prefs.useSystemTheme);
on_useSystemThemeChk_clicked(prefs.useSystemTheme);
//ui->useSystemThemeChk->setChecked(prefs.useSystemTheme);
useSystemTheme(prefs.useSystemTheme);
underlayMode = prefs.underlayMode;
switch(underlayMode)
{
case underlayNone:
ui->underlayNone->setChecked(true);
break;
case underlayPeakHold:
ui->underlayPeakHold->setChecked(true);
break;
case underlayPeakBuffer:
ui->underlayPeakBuffer->setChecked(true);
break;
case underlayAverageBuffer:
ui->underlayAverageBuffer->setChecked(true);
break;
default:
break;
}
// switch(underlayMode)
// {
// case underlayNone:
// ui->underlayNone->setChecked(true);
// break;
// case underlayPeakHold:
// ui->underlayPeakHold->setChecked(true);
// break;
// case underlayPeakBuffer:
// ui->underlayPeakBuffer->setChecked(true);
// break;
// case underlayAverageBuffer:
// ui->underlayAverageBuffer->setChecked(true);
// break;
// default:
// break;
// }
ui->underlayBufferSlider->setValue(prefs.underlayBufferSize);
//ui->underlayBufferSlider->setValue(prefs.underlayBufferSize);
on_underlayBufferSlider_valueChanged(prefs.underlayBufferSize);
ui->wfAntiAliasChk->setChecked(prefs.wfAntiAlias);
//ui->wfAntiAliasChk->setChecked(prefs.wfAntiAlias);
on_wfAntiAliasChk_clicked(prefs.wfAntiAlias);
ui->wfInterpolateChk->setChecked(prefs.wfInterpolate);
//ui->wfInterpolateChk->setChecked(prefs.wfInterpolate);
on_wfInterpolateChk_clicked(prefs.wfInterpolate);
ui->wfLengthSlider->setValue(prefs.wflength);
@ -2606,6 +2636,212 @@ void wfmain::loadSettings()
setupui->updateUdpPrefs((int)u_all);
}
void wfmain::extChangedIfPrefs(int items)
{
prefIfItem pif;
if(items & (int)if_all)
{
items = 0xffffffff;
}
for(int i=1; i < (int)if_all; i = i << 1)
{
if(items & i)
{
qDebug(logSystem()) << "Updating If pref in wfmain" << (int)i;
pif = (prefIfItem)i;
extChangedIfPref(pif);
}
}
}
void wfmain::extChangedRaPrefs(int items)
{
prefRaItem pra;
if(items & (int)ra_all)
{
items = 0xffffffff;
}
for(int i=1; i < (int)ra_all; i = i << 1)
{
if(items & i)
{
qDebug(logSystem()) << "Updating Ra pref in wfmain" << (int)i;
pra = (prefRaItem)i;
extChangedRaPref(pra);
}
}
}
void wfmain::extChangedCtPrefs(int items)
{
prefCtItem pct;
if(items & (int)ct_all)
{
items = 0xffffffff;
}
for(int i=1; i < (int)ct_all; i = i << 1)
{
if(items & i)
{
qDebug(logSystem()) << "Updating Ct pref in wfmain" << (int)i;
pct = (prefCtItem)i;
extChangedCtPref(pct);
}
}
}
void wfmain::extChangedLanPrefs(int items)
{
prefLanItem plan;
if(items & (int)l_all)
{
items = 0xffffffff;
}
for(int i=1; i < (int)l_all; i = i << 1)
{
if(items & i)
{
qDebug(logSystem()) << "Updating Lan pref in wfmain" << (int)i;
plan = (prefLanItem)i;
extChangedLanPref(plan);
}
}
}
void wfmain::extChangedClusterPrefs(int items)
{
prefClusterItem pcl;
if(items & (int)cl_all)
{
items = 0xffffffff;
}
for(int i=1; i < (int)cl_all; i = i << 1)
{
if(items & i)
{
qDebug(logSystem()) << "Updating Cluster pref in wfmain" << (int)i;
pcl = (prefClusterItem)i;
extChangedClusterPref(pcl);
}
}
}
void wfmain::extChangedUdpPrefs(int items)
{
udpPrefsItem upi;
if(items & (int)u_all)
{
items = 0xffffffff;
}
for(int i=1; i < (int)u_all; i = i << 1)
{
if(items & i)
{
qDebug(logSystem()) << "Updating UDP preference in wfmain:" << i;
upi = (udpPrefsItem)i;
extChangedUdpPref(upi);
}
}
}
void wfmain::extChangedIfPref(prefIfItem i)
{
switch(i)
{
case if_useFullScreen:
changeFullScreenMode(prefs.useFullScreen);
break;
case if_useSystemTheme:
useSystemTheme(prefs.useSystemTheme);
break;
case if_drawPeaks:
// depreciated;
break;
case if_underlayMode:
underlayMode = prefs.underlayMode;
on_clearPeakBtn_clicked();
break;
case if_underlayBufferSize:
resizePlasmaBuffer(prefs.underlayBufferSize);
spectrumPlasmaSize = prefs.underlayBufferSize;
break;
case if_wfAntiAlias:
colorMap->setAntialiased(prefs.wfAntiAlias);
break;
case if_wfInterpolate:
colorMap->setInterpolate(prefs.wfInterpolate);
break;
case if_wftheme:
// Not in settings widget
colorMap->setGradient(static_cast<QCPColorGradient::GradientPreset>(prefs.wftheme));
break;
case if_plotFloor:
// Not in settings widget
wfFloor = prefs.plotFloor;
plotFloor = prefs.plotFloor;
plot->yAxis->setRange(QCPRange(plotFloor, plotCeiling));
colorMap->setDataRange(QCPRange(wfFloor, wfCeiling));
break;
case if_plotCeiling:
// Not in settings widget
wfCeiling = prefs.plotCeiling;
plotCeiling = prefs.plotCeiling;
plot->yAxis->setRange(QCPRange(plotFloor, plotCeiling));
colorMap->setDataRange(QCPRange(wfFloor, wfCeiling));
break;
case if_stylesheetPath:
// Not in settings widget
break;
case if_wflength:
// Not in settings widget
break;
case if_confirmExit:
// Not in settings widget
break;
case if_confirmPowerOff:
// Not in settings widget
break;
case if_meter2Type:
changeMeter2Type(prefs.meter2Type);
break;
case if_clickDragTuningEnable:
// There's nothing to do here since the code
// already uses the preference variable as state.
break;
case if_currentColorPresetNumber:
// TODO.....
break;
default:
qWarning(logGui()) << "Did not understand if pref update item " << (int)i;
break;
}
}
void wfmain::extChangedRaPref(prefRaItem i)
{
}
void wfmain::extChangedCtPref(prefCtItem i)
{
}
void wfmain::extChangedLanPref(prefLanItem i)
{
}
void wfmain::extChangedClusterPref(prefClusterItem i)
{
}
void wfmain::extChangedUdpPref(udpPrefsItem i)
{
}
void wfmain::serverAddUserLine(const QString& user, const QString& pass, const int& type)
{
ui->serverUsersTable->blockSignals(true);
@ -3167,11 +3403,13 @@ void wfmain::shortcutF11()
{
this->showNormal();
onFullscreen = false;
prefs.useFullScreen = false;
} else {
this->showFullScreen();
onFullscreen = true;
prefs.useFullScreen = true;
}
ui->fullScreenChk->setChecked(onFullscreen);
setupui->updateIfPref(if_useFullScreen);
}
void wfmain::shortcutF1()
@ -3618,7 +3856,7 @@ void wfmain::showStatusBarText(QString text)
ui->statusBar->showMessage(text, 5000);
}
void wfmain::on_useSystemThemeChk_clicked(bool checked)
void wfmain::useSystemTheme(bool checked)
{
setAppTheme(!checked);
prefs.useSystemTheme = checked;
@ -4788,16 +5026,17 @@ void wfmain::receiveRigID(rigCapabilities rigCaps)
initPeriodicCommands();
// Set the second meter here as I suspect we need to be connected for it to work?
for (int i = 0; i < ui->meter2selectionCombo->count(); i++)
{
if (static_cast<meterKind>(ui->meter2selectionCombo->itemData(i).toInt()) == prefs.meter2Type)
{
// I thought that setCurrentIndex() would call the activated() function for the combobox
// but it doesn't, so call it manually.
ui->meter2selectionCombo->setCurrentIndex(i);
on_meter2selectionCombo_activated(i);
}
}
changeMeter2Type(prefs.meter2Type);
// for (int i = 0; i < ui->meter2selectionCombo->count(); i++)
// {
// if (static_cast<meterKind>(ui->meter2selectionCombo->itemData(i).toInt()) == prefs.meter2Type)
// {
// // I thought that setCurrentIndex() would call the activated() function for the combobox
// // but it doesn't, so call it manually.
// //ui->meter2selectionCombo->setCurrentIndex(i);
// changeMeter2Type(i);
// }
// }
}
updateSizes(ui->tabWidget->currentIndex());
}
@ -5789,7 +6028,7 @@ void wfmain::on_clearPeakBtn_clicked()
return;
}
void wfmain::on_fullScreenChk_clicked(bool checked)
void wfmain::changeFullScreenMode(bool checked)
{
if(checked)
{
@ -7325,11 +7564,11 @@ cmds wfmain::meterKindToMeterCommand(meterKind m)
}
void wfmain::on_meter2selectionCombo_activated(int index)
void wfmain::changeMeter2Type(meterKind m)
{
meterKind newMeterType;
meterKind oldMeterType;
newMeterType = static_cast<meterKind>(ui->meter2selectionCombo->currentData().toInt());
newMeterType = m;
oldMeterType = ui->meter2Widget->getMeterType();
if(newMeterType == oldMeterType)
return;
@ -7349,9 +7588,6 @@ void wfmain::on_meter2selectionCombo_activated(int index)
if((newMeterType!=meterRxAudio) && (newMeterType!=meterTxMod) && (newMeterType!=meterAudio))
insertPeriodicCommandUnique(newCmd);
}
prefs.meter2Type = newMeterType;
(void)index;
}
void wfmain::on_enableRigctldChk_clicked(bool checked)
@ -7601,7 +7837,7 @@ void wfmain::clearPlasmaBuffer()
void wfmain::on_underlayNone_toggled(bool checked)
{
ui->underlayBufferSlider->setDisabled(checked);
//ui->underlayBufferSlider->setDisabled(checked);
if(checked)
{
underlayMode = underlayNone;
@ -7612,7 +7848,7 @@ void wfmain::on_underlayNone_toggled(bool checked)
void wfmain::on_underlayPeakHold_toggled(bool checked)
{
ui->underlayBufferSlider->setDisabled(checked);
//ui->underlayBufferSlider->setDisabled(checked);
if(checked)
{
underlayMode = underlayPeakHold;
@ -7623,7 +7859,7 @@ void wfmain::on_underlayPeakHold_toggled(bool checked)
void wfmain::on_underlayPeakBuffer_toggled(bool checked)
{
ui->underlayBufferSlider->setDisabled(!checked);
//ui->underlayBufferSlider->setDisabled(!checked);
if(checked)
{
underlayMode = underlayPeakBuffer;
@ -7633,7 +7869,7 @@ void wfmain::on_underlayPeakBuffer_toggled(bool checked)
void wfmain::on_underlayAverageBuffer_toggled(bool checked)
{
ui->underlayBufferSlider->setDisabled(!checked);
//ui->underlayBufferSlider->setDisabled(!checked);
if(checked)
{
underlayMode = underlayAverageBuffer;

Wyświetl plik

@ -241,6 +241,22 @@ signals:
void setFrequencyRange(double low, double high);
private slots:
// Triggered from external preference changes:
void extChangedIfPrefs(int items);
void extChangedRaPrefs(int items);
void extChangedCtPrefs(int items);
void extChangedLanPrefs(int items);
void extChangedClusterPrefs(int items);
void extChangedUdpPrefs(int items);
void extChangedIfPref(prefIfItem i);
void extChangedRaPref(prefRaItem i);
void extChangedCtPref(prefCtItem i);
void extChangedLanPref(prefLanItem i);
void extChangedClusterPref(prefClusterItem i);
void extChangedUdpPref(udpPrefsItem i);
void setAudioDevicesUI();
void updateSizes(int tabIndex);
void shortcutF1();
@ -370,7 +386,7 @@ private slots:
void on_clearPeakBtn_clicked();
void on_fullScreenChk_clicked(bool checked);
void changeFullScreenMode(bool checked);
void on_usbControllerBtn_clicked();
void on_usbButtonsResetBtn_clicked();
@ -419,7 +435,7 @@ private slots:
void on_txPowerSlider_valueChanged(int value);
void on_micGainSlider_valueChanged(int value);
void on_scopeRefLevelSlider_valueChanged(int value);
void on_useSystemThemeChk_clicked(bool checked);
void useSystemTheme(bool checked);
void on_modInputCombo_activated(int index);
void on_modInputDataCombo_activated(int index);
void on_tuneLockChk_clicked(bool checked);
@ -443,7 +459,7 @@ private slots:
void on_wfLengthSlider_valueChanged(int value);
void on_wfAntiAliasChk_clicked(bool checked);
void on_wfInterpolateChk_clicked(bool checked);
void on_meter2selectionCombo_activated(int index);
void changeMeter2Type(meterKind m);
void on_waterfallFormatCombo_activated(int index);
void on_enableRigctldChk_clicked(bool checked);
void on_rigctldPortTxt_editingFinished();
@ -572,6 +588,7 @@ private:
QSettings *settings=Q_NULLPTR;
void loadSettings();
void saveSettings();
void connectSettingsWidget();
void createSettingsListItems();
@ -971,6 +988,13 @@ Q_DECLARE_METATYPE(struct rigCapabilities)
Q_DECLARE_METATYPE(struct freqt)
Q_DECLARE_METATYPE(struct mode_info)
Q_DECLARE_METATYPE(struct udpPreferences)
Q_DECLARE_METATYPE(struct preferences)
Q_DECLARE_METATYPE(enum prefIfItem)
Q_DECLARE_METATYPE(enum prefRaItem)
Q_DECLARE_METATYPE(enum prefCtItem)
Q_DECLARE_METATYPE(enum prefLanItem)
Q_DECLARE_METATYPE(enum prefClusterItem)
Q_DECLARE_METATYPE(enum udpPrefsItem)
Q_DECLARE_METATYPE(struct audioPacket)
Q_DECLARE_METATYPE(struct audioSetup)
Q_DECLARE_METATYPE(struct SERVERCONFIG)

175
wfmain.ui
Wyświetl plik

@ -18,7 +18,7 @@
<item>
<widget class="QTabWidget" name="tabWidget">
<property name="currentIndex">
<number>0</number>
<number>1</number>
</property>
<widget class="QWidget" name="mainTab">
<attribute name="title">
@ -1266,7 +1266,7 @@
<item>
<widget class="QStackedWidget" name="settingsStack">
<property name="currentIndex">
<number>4</number>
<number>1</number>
</property>
<widget class="QWidget" name="radioAccess">
<layout class="QVBoxLayout" name="verticalLayout_21">
@ -2020,40 +2020,6 @@
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_22">
<item>
<widget class="QCheckBox" name="wfInterpolateChk">
<property name="toolTip">
<string>Enables interpolation between pixels. Note that this will increase CPU usage.</string>
</property>
<property name="text">
<string>Interpolate Waterfall</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="wfAntiAliasChk">
<property name="text">
<string>Anti-Alias Waterfall</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="useSystemThemeChk">
<property name="text">
<string>Use System Theme</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="fullScreenChk">
<property name="text">
<string>Show full screen</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_12">
<property name="orientation">
@ -2069,129 +2035,6 @@
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_43">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="underlayLabel">
<property name="text">
<string>Underlay Mode</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="underlayNone">
<property name="toolTip">
<string>No underlay graphics</string>
</property>
<property name="text">
<string>None</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
<attribute name="buttonGroup">
<string notr="true">underlayButtonGroup</string>
</attribute>
</widget>
</item>
<item>
<widget class="QRadioButton" name="underlayPeakHold">
<property name="toolTip">
<string>Indefinite peak hold</string>
</property>
<property name="text">
<string>Peak Hold</string>
</property>
<attribute name="buttonGroup">
<string notr="true">underlayButtonGroup</string>
</attribute>
</widget>
</item>
<item>
<widget class="QRadioButton" name="underlayPeakBuffer">
<property name="toolTip">
<string>Peak value within the buffer</string>
</property>
<property name="text">
<string>Peak</string>
</property>
<attribute name="buttonGroup">
<string notr="true">underlayButtonGroup</string>
</attribute>
</widget>
</item>
<item>
<widget class="QRadioButton" name="underlayAverageBuffer">
<property name="toolTip">
<string>Average value within the buffer</string>
</property>
<property name="text">
<string>Average</string>
</property>
<attribute name="buttonGroup">
<string notr="true">underlayButtonGroup</string>
</attribute>
</widget>
</item>
<item>
<widget class="QLabel" name="label_42">
<property name="text">
<string>Underlay Buffer Size:</string>
</property>
</widget>
</item>
<item>
<widget class="QSlider" name="underlayBufferSlider">
<property name="maximumSize">
<size>
<width>100</width>
<height>16777215</height>
</size>
</property>
<property name="toolTip">
<string>Size of buffer for spectrum data. Shorter values are more responsive.</string>
</property>
<property name="minimum">
<number>8</number>
</property>
<property name="maximum">
<number>128</number>
</property>
<property name="value">
<number>64</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_27">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_28">
<item>
@ -2217,16 +2060,6 @@
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="secondaryMeterSelectionLabel">
<property name="text">
<string>Secondary Meter Selection:</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="meter2selectionCombo"/>
</item>
<item>
<widget class="QRadioButton" name="autoPollBtn">
<property name="toolTip">
@ -2464,8 +2297,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>570</width>
<height>254</height>
<width>818</width>
<height>319</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout_2">