Move more settings to widget

translations
Phil Taylor 2023-06-08 08:20:50 +01:00
rodzic aa65d021c2
commit 368c9a3281
15 zmienionych plików z 530 dodań i 1390 usunięć

Wyświetl plik

@ -571,6 +571,13 @@
</property>
</spacer>
</item>
<item>
<widget class="QCheckBox" name="SubBandCheck">
<property name="text">
<string>Work on Sub Band</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>

Wyświetl plik

@ -18,6 +18,7 @@ cwSender::cwSender(QWidget *parent) :
ui->statusbar->setToolTipDuration(3000);
this->setToolTipDuration(3000);
connect(ui->textToSendEdit->lineEdit(), &QLineEdit::textEdited, this, &cwSender::textChanged);
this->setObjectName("CW Sender");
queue = cachingQueue::getInstance(this);
}

Wyświetl plik

@ -8,6 +8,7 @@ debugWindow::debugWindow(QWidget *parent) :
ui(new Ui::debugWindow)
{
ui->setupUi(this);
this->setObjectName("Debug Window");
qDebug() << "debugWindow() Creating new window";
queue = cachingQueue::getInstance();
ui->cacheView->setColumnWidth(0,20);

Wyświetl plik

@ -8,7 +8,7 @@ frequencyinputwidget::frequencyinputwidget(QWidget *parent) :
ui->setupUi(this);
this->setWindowTitle("Frequency Input");
ui->freqMhzLineEdit->setValidator( new QDoubleValidator(0, 100, 6, this));
this->setObjectName("freqInput");
this->setObjectName("freq Input");
queue = cachingQueue::getInstance(this);
}

17
prefs.h
Wyświetl plik

@ -7,6 +7,7 @@
#include "audioconverter.h"
#include "rigidentities.h"
#include "wfviewtypes.h"
#include "udpserver.h"
enum prefIfItem {
if_useFullScreen = 1 << 0,
@ -61,8 +62,14 @@ enum prefRsItem {
rs_data1Mod = 1 << 1,
rs_data2Mod = 1 << 2,
rs_data3Mod = 1 << 3,
rs_clockUseUtc = 1 << 4,
rs_all = 1 << 5
rs_setClock = 1 << 4,
rs_clockUseUtc = 1 << 5,
rs_pttOn = 1 << 6,
rs_pttOff = 1 << 7,
rs_satOps = 1 << 8,
rs_adjRef = 1 << 9,
rs_debug = 1 << 10,
rs_all = 1 << 11
};
enum prefRaItem {
@ -85,7 +92,8 @@ enum prefCtItem {
ct_niceTS = 1 << 1,
ct_automaticSidebandSwitching = 1 << 2,
ct_enableUSBControllers = 1 << 3,
ct_usbSensitivity = 1 << 4,
ct_USBControllersSetup = 1 << 4,
ct_USBControllersReset = 1 << 5,
ct_all = 1 << 5
};
@ -134,6 +142,7 @@ enum udpPrefsItem {
};
struct preferences {
// Program:
QString version;
@ -198,11 +207,13 @@ struct preferences {
QString clusterTcpUserName;
QString clusterTcpPassword;
SERVERCONFIG server; // Contains server settings
// Temporary settings
inputTypes inputDataOff=inputNone;
inputTypes inputData1=inputNone;
inputTypes inputData2=inputNone;
inputTypes inputData3=inputNone;
bool useUTC = false;
audioSetup rxSetup;
audioSetup txSetup;

Wyświetl plik

@ -221,6 +221,7 @@ void rigCommander::commonSetup()
rigCaps.commands.insert(funcTransceiverId,funcType(funcTransceiverId, QString("Transceiver ID"),QByteArrayLiteral("\x19\x00"),0,0,false));
rigCaps.commandsReverse.insert(QByteArrayLiteral("\x19\x00"),funcTransceiverId);
this->setObjectName("Rig Commander");
queue = cachingQueue::getInstance(this);
connect(queue,SIGNAL(haveCommand(funcs,QVariant,bool)),this,SLOT(receiveCommand(funcs,QVariant,bool)));
oldScopeMode = spectModeUnknown;
@ -6166,7 +6167,7 @@ void rigCommander::receiveCommand(funcs func, QVariant value, bool sub)
{
if (func == funcFilterWidth) {
payload.append(makeFilterWidth(value.value<ushort>(),sub));
qInfo() << "Setting filter width" << value.value<ushort>() << "sub" << sub << "hex" << payload.toHex();
//qInfo() << "Setting filter width" << value.value<ushort>() << "sub" << sub << "hex" << payload.toHex();
}
else

Wyświetl plik

@ -315,6 +315,7 @@ void rigCtlD::receiveRigCaps(rigCapabilities caps)
rigCtlClient::rigCtlClient(int socketId, rigCapabilities caps, rigCtlD* parent) : QObject(parent)
{
this->setObjectName("RigCtlD");
queue = cachingQueue::getInstance(this);
commandBuffer.clear();
sessionId = socketId;

Wyświetl plik

@ -1,4 +1,5 @@
#include "settingswidget.h"
#include "qserialportinfo.h"
#include "ui_settingswidget.h"
#define setchk(a,b) quietlyUpdateCheckbox(a,b)
@ -11,6 +12,15 @@ settingswidget::settingswidget(QWidget *parent) :
createSettingsListItems();
populateComboBoxes();
#ifdef QT_DEBUG
ui->debugBtn->setVisible(true);
ui->satOpsBtn->setVisible(true);
#else
ui->debugBtn->setVisible(false);
ui->satOpsBtn->setVisible(false);
#endif
}
settingswidget::~settingswidget()
@ -420,11 +430,20 @@ void settingswidget::updateIfPref(prefIfItem pif)
break;
case if_currentColorPresetNumber:
//ui->colorPresetCombo->blockSignals(true);
ui->colorPresetCombo->setCurrentIndex(prefs->currentColorPresetNumber);
//ui->colorPresetCombo->blockSignals(false);
// activate? or done when prefs load? Maybe some of each?
// TODO
break;
{
colorPrefsType p;
for(int pn=0; pn < numColorPresetsTotal; pn++)
{
p = colorPreset[pn];
if(p.presetName != Q_NULLPTR)
ui->colorPresetCombo->setItemText(pn, *p.presetName);
}
ui->colorPresetCombo->setCurrentIndex(prefs->currentColorPresetNumber);
//ui->colorPresetCombo->blockSignals(false);
// activate? or done when prefs load? Maybe some of each?
// TODO
break;
}
case if_rigCreatorEnable:
quietlyUpdateCheckbox(ui->rigCreatorChk, prefs->rigCreatorEnable);
default:
@ -634,28 +653,29 @@ void settingswidget::updateRaPref(prefRaItem pra)
break;
case ra_serialPortRadio:
{
if(!haveSerialDevices)
ui->serialDeviceListCombo->blockSignals(true);
ui->serialDeviceListCombo->clear();
ui->serialDeviceListCombo->addItem("Auto", 0);
int i = 0;
foreach(const QSerialPortInfo & serialPortInfo, QSerialPortInfo::availablePorts())
{
qCritical(logGui()) << "Asked to show serial device without serial device list.";
break;
#if defined(Q_OS_LINUX) || defined(Q_OS_MAC)
ui->serialDeviceListCombo->addItem(QString("/dev/") + serialPortInfo.portName(), i++);
#else
ui->serialDeviceListCombo->addItem(serialPortInfo.portName(), i++);
#endif
}
if(!prefs->serialPortRadio.isEmpty())
#if defined(Q_OS_LINUX) || defined(Q_OS_MAC)
ui->serialDeviceListCombo->addItem("Manual...", 256);
#endif
ui->serialDeviceListCombo->setCurrentIndex(ui->serialDeviceListCombo->findText(prefs->serialPortRadio));
if (ui->serialDeviceListCombo->currentIndex() == -1)
{
int serialIndex = -1;
if(prefs->serialPortRadio.toLower() == "auto")
{
serialIndex = ui->serialDeviceListCombo->findText(QString("Auto"));
} else {
serialIndex = ui->serialDeviceListCombo->findText(prefs->serialPortRadio);
}
if (serialIndex != -1) {
ui->serialDeviceListCombo->setCurrentIndex(serialIndex);
} else {
qWarning(logGui()) << "Cannot find serial port" << prefs->serialPortRadio << "mentioned in preferences inside the serial combo box.";
}
} else {
qDebug(logGui()) << "Serial port in prefs is blank";
ui->serialDeviceListCombo->setCurrentIndex(0);
}
ui->serialDeviceListCombo->blockSignals(false);
break;
}
case ra_serialPortBaud:
@ -663,22 +683,30 @@ void settingswidget::updateRaPref(prefRaItem pra)
break;
case ra_virtualSerialPort:
{
if(!haveVspDevices)
ui->vspCombo->blockSignals(true);
ui->vspCombo->clear();
ui->vspCombo->addItem("Auto", 0);
int i = 0;
foreach(const QSerialPortInfo & serialPortInfo, QSerialPortInfo::availablePorts())
{
qCritical(logGui()) << "Asked to select VSP device without VSP device list.";
break;
#if defined(Q_OS_LINUX) || defined(Q_OS_MAC)
ui->vspCombo->addItem(QString("/dev/") + serialPortInfo.portName(), i++);
#else
ui->vspCombo->addItem(serialPortInfo.portName(), i++);
#endif
}
int vspIndex = ui->vspCombo->findText(prefs->virtualSerialPort);
if (vspIndex != -1) {
ui->vspCombo->setCurrentIndex(vspIndex);
} else {
// TODO: Are we sure this is a good idea?
if(!prefs->virtualSerialPort.isEmpty())
{
ui->vspCombo->addItem(prefs->virtualSerialPort);
ui->vspCombo->setCurrentIndex(ui->vspCombo->count() - 1);
}
#if defined(Q_OS_LINUX) || defined(Q_OS_MAC)
ui->vspCombo->addItem("Manual...", 256);
#endif
ui->vspCombo->setCurrentIndex(ui->vspCombo->findText(prefs->virtualSerialPort));
if (ui->vspCombo->currentIndex() == -1)
{
ui->vspCombo->setCurrentIndex(0);
}
ui->vspCombo->blockSignals(false);
break;
}
case ra_localAFgain:
@ -746,9 +774,6 @@ void settingswidget::updateCtPref(prefCtItem pct)
case ct_enableUSBControllers:
quietlyUpdateCheckbox(ui->enableUsbChk, prefs->enableUSBControllers);
break;
case ct_usbSensitivity:
// No UI element for this.
break;
default:
qWarning(logGui()) << "No UI element matches setting" << (int)pct;
break;
@ -1042,56 +1067,6 @@ void settingswidget::updateAllPrefs()
}
void settingswidget::updateSerialPortList(QStringList deviceList, QVector<int> data)
{
if(deviceList.length() == data.length())
{
ui->serialDeviceListCombo->blockSignals(true);
ui->serialDeviceListCombo->addItem("Auto", 0);
for(int i=0; i < deviceList.length(); i++)
{
ui->serialDeviceListCombo->addItem(deviceList.at(i), data.at(i));
}
#if defined(Q_OS_LINUX) || defined(Q_OS_MAC) || defined(Q_OS_UNIX)
ui->serialDeviceListCombo->addItem("Manual...", 256);
#endif
ui->serialDeviceListCombo->blockSignals(false);
haveSerialDevices = true;
} else {
qCritical(logGui()) << "Cannot populate serial device list. Data of unequal length.";
}
}
void settingswidget::updateVSPList(QStringList deviceList, QVector<int> data)
{
// Do not supply "None" device, that is a UI thing and it is done here.
// Supply the complete filename
// TODO: Should we clear the list first?
if(deviceList.length() == data.length())
{
ui->vspCombo->blockSignals(true);
for(int i=0; i < deviceList.length(); i++)
{
ui->vspCombo->addItem(deviceList.at(i), data.at(i));
if (QFile::exists(deviceList.at(i))) {
auto* model = qobject_cast<QStandardItemModel*>(ui->vspCombo->model());
auto* item = model->item(ui->vspCombo->count() - 1);
item->setEnabled(false);
}
}
ui->serialDeviceListCombo->addItem("None", deviceList.size());
ui->vspCombo->blockSignals(false);
haveVspDevices = true;
} else {
qCritical(logGui()) << "Cannot populate serial device list. Data of unequal length.";
}
}
void settingswidget::updateModSourceList(uchar num, QVector<rigInput> data)
{
@ -1395,34 +1370,43 @@ void settingswidget::on_serialEnableBtn_clicked(bool checked)
prefs->enableLAN = !checked;
ui->groupSerial->setEnabled(checked);
ui->groupNetwork->setEnabled(!checked);
/*
ui->serialDeviceListCombo->setEnabled(checked);
ui->ipAddressTxt->setEnabled(!checked);
ui->controlPortTxt->setEnabled(!checked);
ui->usernameTxt->setEnabled(!checked);
ui->passwordTxt->setEnabled(!checked);
ui->audioRXCodecCombo->setEnabled(!checked);
ui->audioTXCodecCombo->setEnabled(!checked);
ui->audioSampleRateCombo->setEnabled(!checked);
ui->rxLatencySlider->setEnabled(!checked);
ui->txLatencySlider->setEnabled(!checked);
ui->rxLatencyValue->setEnabled(!checked);
ui->txLatencyValue->setEnabled(!checked);
ui->audioOutputCombo->setEnabled(!checked);
ui->audioInputCombo->setEnabled(!checked);
ui->baudRateCombo->setEnabled(checked);
ui->serialDeviceListCombo->setEnabled(checked);
ui->serverRXAudioInputCombo->setEnabled(checked);
ui->serverTXAudioOutputCombo->setEnabled(checked);
ui->useRTSforPTTchk->setEnabled(checked);
*/
emit changedLanPref(l_enableLAN);
}
void settingswidget::on_rigCIVManualAddrChk_clicked(bool checked)
{
if(checked)
{
ui->rigCIVaddrHexLine->setEnabled(true);
ui->rigCIVaddrHexLine->setText(QString("%1").arg(prefs->radioCIVAddr, 2, 16));
} else {
ui->rigCIVaddrHexLine->setText("auto");
ui->rigCIVaddrHexLine->setEnabled(false);
prefs->radioCIVAddr = 0; // auto
}
emit changedRaPref(ra_radioCIVAddr);
}
void settingswidget::on_rigCIVaddrHexLine_editingFinished()
{
bool okconvert=false;
unsigned char propCIVAddr = (unsigned char) ui->rigCIVaddrHexLine->text().toUInt(&okconvert, 16);
if(okconvert && (propCIVAddr < 0xe0) && (propCIVAddr != 0))
{
prefs->radioCIVAddr = propCIVAddr;
emit changedRaPref(ra_radioCIVAddr);
} else {
ui->rigCIVaddrHexLine->setText("0");
}
}
void settingswidget::on_useCIVasRigIDChk_clicked(bool checked)
{
prefs->CIVisRadioModel = checked;
emit changedRaPref(ra_CIVisRadioModel);
}
void settingswidget::on_autoSSBchk_clicked(bool checked)
{
@ -1439,17 +1423,20 @@ void settingswidget::on_useSystemThemeChk_clicked(bool checked)
void settingswidget::on_enableUsbChk_clicked(bool checked)
{
prefs->enableUSBControllers = checked;
ui->usbControllerBtn->setEnabled(checked);
ui->usbButtonsResetBtn->setEnabled(checked);
ui->usbCommandsResetBtn->setEnabled(checked);
ui->usbControllersSetup->setEnabled(checked);
ui->usbControllersReset->setEnabled(checked);
ui->usbResetLbl->setVisible(checked);
emit changedCtPref(ct_enableUSBControllers);
}
void settingswidget::on_usbControllerBtn_clicked()
void settingswidget::on_usbControllersSetup_clicked()
{
emit showUSBControllerSetup();
emit changedCtPref(ct_USBControllersSetup);
}
void settingswidget::on_usbControllersReset_clicked()
{
emit changedCtPref(ct_USBControllersReset);
}
void settingswidget::on_autoPollBtn_clicked(bool checked)
@ -1639,11 +1626,6 @@ void settingswidget::on_pttEnableChk_clicked(bool checked)
emit changedCtPref(ct_enablePTT);
}
void settingswidget::on_clickDragTuningEnableChk_clicked(bool checked)
{
prefs->clickDragTuningEnable = checked;
emit changedIfPref(if_clickDragTuningEnable);
}
void settingswidget::on_rigCreatorChk_clicked(bool checked)
{
@ -1952,42 +1934,6 @@ void settingswidget::on_audioInputCombo_currentIndexChanged(int index)
/* End of UDP connection settings */
/* Beginning of UDP Server settings */
void settingswidget::on_serverRXAudioInputCombo_currentIndexChanged(int index)
{
emit changedServerRXAudioInputCombo(index);
}
void settingswidget::on_serverTXAudioOutputCombo_currentIndexChanged(int index)
{
emit changedServerTXAudioOutputCombo(index);
}
void settingswidget::on_serverEnableCheckbox_clicked(bool checked)
{
serverConfig->enabled = checked;
emit changedServerConfig(s_enabled);
}
void settingswidget::on_serverAddUserBtn_clicked()
{
if(!haveServerConfig)
{
qCritical(logGui()) << "Cannot modify users without valid serverConfig.";
return;
}
serverAddUserLine("", "", 0);
SERVERUSER user;
user.username = "";
user.password = "";
user.userType = 0;
serverConfig->users.append(user);
ui->serverAddUserBtn->setEnabled(false);
}
/* End of UDP Server settings */
/* Beginning of radio specific settings */
void settingswidget::on_modInputCombo_activated(int index)
@ -2243,49 +2189,7 @@ void settingswidget::on_colorRevertPresetBtn_clicked()
// ---------- Color UI slots ----------//
void settingswidget::on_colorSavePresetBtn_clicked()
{
int pn = ui->colorPresetCombo->currentIndex();
/*
settings->beginGroup("ColorPresets");
settings->setValue("currentColorPresetNumber", prefs.currentColorPresetNumber);
settings->beginWriteArray("ColorPreset", numColorPresetsTotal);
colorPrefsType *p;
p = &(colorPreset[pn]);
settings->setArrayIndex(pn);
settings->setValue("presetNum", p->presetNum);
settings->setValue("presetName", *(p->presetName));
settings->setValue("gridColor", p->gridColor.name(QColor::HexArgb));
settings->setValue("axisColor", p->axisColor.name(QColor::HexArgb));
settings->setValue("textColor", p->textColor.name(QColor::HexArgb));
settings->setValue("spectrumLine", p->spectrumLine.name(QColor::HexArgb));
settings->setValue("spectrumFill", p->spectrumFill.name(QColor::HexArgb));
settings->setValue("underlayLine", p->underlayLine.name(QColor::HexArgb));
settings->setValue("underlayFill", p->underlayFill.name(QColor::HexArgb));
settings->setValue("plotBackground", p->plotBackground.name(QColor::HexArgb));
settings->setValue("tuningLine", p->tuningLine.name(QColor::HexArgb));
settings->setValue("passband", p->passband.name(QColor::HexArgb));
settings->setValue("pbt", p->pbt.name(QColor::HexArgb));
settings->setValue("wfBackground", p->wfBackground.name(QColor::HexArgb));
settings->setValue("wfGrid", p->wfGrid.name(QColor::HexArgb));
settings->setValue("wfAxis", p->wfAxis.name(QColor::HexArgb));
settings->setValue("wfText", p->wfText.name(QColor::HexArgb));
settings->setValue("meterLevel", p->meterLevel.name(QColor::HexArgb));
settings->setValue("meterAverage", p->meterAverage.name(QColor::HexArgb));
settings->setValue("meterPeakScale", p->meterPeakScale.name(QColor::HexArgb));
settings->setValue("meterPeakLevel", p->meterPeakLevel.name(QColor::HexArgb));
settings->setValue("meterLowerLine", p->meterLowerLine.name(QColor::HexArgb));
settings->setValue("meterLowText", p->meterLowText.name(QColor::HexArgb));
settings->setValue("clusterSpots", p->clusterSpots.name(QColor::HexArgb));
settings->endArray();
settings->endGroup();
settings->sync();
*/
}
// Removed save preset button.
// Grid:
void settingswidget::on_colorSetBtnGrid_clicked()
@ -2644,4 +2548,89 @@ void settingswidget::on_colorEditClusterSpots_editingFinished()
// ---------- End color UI slots ----------//
void settingswidget::on_useUTCChk_clicked(bool checked)
{
prefs->useUTC=checked;
}
void settingswidget::on_setClockBtn_clicked()
{
emit changedRsPref(rs_setClock);
}
void settingswidget::on_pttOnBtn_clicked()
{
emit changedRsPref(rs_pttOn);
}
void settingswidget::on_pttOffBtn_clicked()
{
emit changedRsPref(rs_pttOff);
}
void settingswidget::on_adjRefBtn_clicked()
{
emit changedRsPref(rs_adjRef);
}
void settingswidget::on_satOpsBtn_clicked()
{
emit changedRsPref(rs_satOps);
}
/* Beginning of UDP Server settings */
void settingswidget::on_serverRXAudioInputCombo_currentIndexChanged(int index)
{
emit changedServerRXAudioInputCombo(index);
}
void settingswidget::on_serverTXAudioOutputCombo_currentIndexChanged(int index)
{
emit changedServerTXAudioOutputCombo(index);
}
void settingswidget::on_serverEnableCheckbox_clicked(bool checked)
{
serverConfig->enabled = checked;
emit changedServerConfig(s_enabled);
}
void settingswidget::on_serverAddUserBtn_clicked()
{
if(!haveServerConfig)
{
qCritical(logGui()) << "Cannot modify users without valid serverConfig.";
return;
}
serverAddUserLine("", "", 0);
SERVERUSER user;
user.username = "";
user.password = "";
user.userType = 0;
serverConfig->users.append(user);
ui->serverAddUserBtn->setEnabled(false);
}
void settingswidget::on_serverControlPortText_textChanged(QString text)
{
serverConfig->controlPort = text.toInt();
emit changedServerConfig(s_controlPort);
}
void settingswidget::on_serverCivPortText_textChanged(QString text)
{
serverConfig->civPort = text.toInt();
emit changedServerConfig(s_civPort);
}
void settingswidget::on_serverAudioPortText_textChanged(QString text)
{
serverConfig->audioPort = text.toInt();
emit changedServerConfig(s_audioPort);
}
/* End of UDP Server settings */

Wyświetl plik

@ -66,8 +66,6 @@ public slots:
void updateUdpPref(udpPrefsItem upi);
void updateUdpPrefs(int items);
void updateSerialPortList(QStringList deviceList, QVector<int> data);
void updateVSPList(QStringList deviceList, QVector<int> data);
void updateModSourceList(uchar num, QVector<rigInput> data);
void setAudioDevicesUI();
@ -98,7 +96,6 @@ signals:
void changedUdpPref(udpPrefsItem i);
void changedServerConfig(serverItems i);
void showUSBControllerSetup();
void changedModInput(uchar num, inputTypes input);
private slots:
@ -108,7 +105,8 @@ private slots:
void on_autoSSBchk_clicked(bool checked);
void on_useSystemThemeChk_clicked(bool checked);
void on_enableUsbChk_clicked(bool checked);
void on_usbControllerBtn_clicked();
void on_usbControllersSetup_clicked();
void on_usbControllersReset_clicked();
void on_autoPollBtn_clicked(bool checked);
void on_manualPollBtn_clicked(bool checked);
void on_pollTimeMsSpin_valueChanged(int arg1);
@ -128,9 +126,11 @@ private slots:
void on_underlayAverageBuffer_clicked(bool checked);
void on_underlayBufferSlider_valueChanged(int value);
void on_pttEnableChk_clicked(bool checked);
void on_clickDragTuningEnableChk_clicked(bool checked);
void on_rigCreatorChk_clicked(bool checked);
void on_serialEnableBtn_clicked(bool checked);
void on_rigCIVManualAddrChk_clicked(bool checked);
void on_rigCIVaddrHexLine_editingFinished();
void on_useCIVasRigIDChk_clicked(bool checked);
void on_enableRigctldChk_clicked(bool checked);
void on_rigctldPortTxt_editingFinished();
void on_tcpServerPortTxt_editingFinished();
@ -153,9 +153,6 @@ private slots:
void on_audioDuplexCombo_currentIndexChanged(int index);
void on_audioOutputCombo_currentIndexChanged(int index);
void on_audioInputCombo_currentIndexChanged(int index);
void on_serverRXAudioInputCombo_currentIndexChanged(int index);
void on_serverTXAudioOutputCombo_currentIndexChanged(int index);
void on_serverEnableCheckbox_clicked(bool checked);
void on_rxLatencySlider_valueChanged(int value);
void on_txLatencySlider_valueChanged(int value);
@ -170,9 +167,22 @@ private slots:
void on_modInputData2Combo_activated(int index);
void on_modInputData3Combo_activated(int index);
void on_useUTCChk_clicked(bool checked);
void on_setClockBtn_clicked();
void on_pttOnBtn_clicked();
void on_pttOffBtn_clicked();
void on_adjRefBtn_clicked();
void on_satOpsBtn_clicked();
void on_serverEnableCheckbox_clicked(bool checked);
void on_serverRXAudioInputCombo_currentIndexChanged(int index);
void on_serverTXAudioOutputCombo_currentIndexChanged(int index);
void on_serverControlPortText_textChanged(QString text);
void on_serverCivPortText_textChanged(QString text);
void on_serverAudioPortText_textChanged(QString text);
// Color slots
void on_colorPresetCombo_currentIndexChanged(int index);
void on_colorSavePresetBtn_clicked();
void on_colorSetBtnPlotBackground_clicked();
void on_colorEditPlotBackground_editingFinished();

Wyświetl plik

@ -41,7 +41,7 @@
<item>
<widget class="QStackedWidget" name="settingsStack">
<property name="currentIndex">
<number>0</number>
<number>3</number>
</property>
<widget class="QWidget" name="radioAccess">
<layout class="QVBoxLayout" name="verticalLayout_21">
@ -1151,16 +1151,6 @@ ONLY use Manual CI-V when Transceive mode is not supported</string>
</item>
</widget>
</item>
<item>
<widget class="QPushButton" name="colorSavePresetBtn">
<property name="toolTip">
<string>Saves the current preset to the settings file.</string>
</property>
<property name="text">
<string>Save Preset</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="colorRevertPresetBtn">
<property name="toolTip">
@ -1245,8 +1235,8 @@ ONLY use Manual CI-V when Transceive mode is not supported</string>
<rect>
<x>0</x>
<y>0</y>
<width>453</width>
<height>235</height>
<width>925</width>
<height>332</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout_2">
@ -2475,7 +2465,113 @@ ONLY use Manual CI-V when Transceive mode is not supported</string>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_32">
<item>
<widget class="QTableWidget" name="serverUsersTable">
<widget class="QLineEdit" name="serverControlPortText_2">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>130</width>
<height>25</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>130</width>
<height>25</height>
</size>
</property>
<property name="inputMask">
<string>99999</string>
</property>
<property name="text">
<string>50001</string>
</property>
<property name="frame">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="tableWidget" name="serverUsersTable_2">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>400</width>
<height>160</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>750</width>
<height>330</height>
</size>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="lineWidth">
<number>1</number>
</property>
<property name="midLineWidth">
<number>0</number>
</property>
<property name="columnCount">
<number>4</number>
</property>
<attribute name="horizontalHeaderCascadingSectionResizes">
<bool>false</bool>
</attribute>
<attribute name="horizontalHeaderDefaultSectionSize">
<number>100</number>
</attribute>
<attribute name="horizontalHeaderShowSortIndicator" stdset="0">
<bool>false</bool>
</attribute>
<attribute name="horizontalHeaderStretchLastSection">
<bool>true</bool>
</attribute>
<attribute name="verticalHeaderVisible">
<bool>false</bool>
</attribute>
<attribute name="verticalHeaderShowSortIndicator" stdset="0">
<bool>true</bool>
</attribute>
<attribute name="verticalHeaderStretchLastSection">
<bool>false</bool>
</attribute>
<column>
<property name="text">
<string>Username</string>
</property>
</column>
<column>
<property name="text">
<string>Password</string>
</property>
</column>
<column>
<property name="text">
<string>Admin</string>
</property>
</column>
<column>
<property name="text">
<string>Delete?</string>
</property>
</column>
</widget>
</item>
<item>
<widget class="tableWidget" name="serverUsersTable">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
@ -2832,7 +2928,7 @@ ONLY use Manual CI-V when Transceive mode is not supported</string>
</widget>
</item>
<item>
<widget class="QPushButton" name="usbControllerBtn">
<widget class="QPushButton" name="usbControllersSetup">
<property name="toolTip">
<string/>
</property>
@ -2855,19 +2951,12 @@ ONLY use Manual CI-V when Transceive mode is not supported</string>
</spacer>
</item>
<item>
<widget class="QPushButton" name="usbButtonsResetBtn">
<widget class="QPushButton" name="usbControllersReset">
<property name="text">
<string>Reset Buttons</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="usbCommandsResetBtn">
<property name="text">
<string>Reset Commands</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="usbResetLbl">
<property name="text">
@ -3232,6 +3321,11 @@ ONLY use Manual CI-V when Transceive mode is not supported</string>
<header location="global">qledlabel.h</header>
<container>1</container>
</customwidget>
<customwidget>
<class>tableWidget</class>
<extends>QTableWidget</extends>
<header location="global">tablewidget.h</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>

Wyświetl plik

@ -8,7 +8,7 @@ spectrumScope::spectrumScope(QWidget *parent)
{
QMutexLocker locker(&mutex);
this->setObjectName("SpectrumScope");
this->setObjectName("Spectrum Scope");
this->setTitle("Band");
queue = cachingQueue::getInstance();
spectrum = new QCustomPlot();
@ -861,15 +861,15 @@ void spectrumScope::scopeClick(QMouseEvent* me)
}
}
// TODO clickdragtuning and sending messages to statusbar
/*
else if (prefs.clickDragTuningEnable)
else if (clickDragTuning)
{
showStatusBarText(QString("Selected %1 MHz").arg(this->mousePressFreq));
}
else {
//showStatusBarText(QString("Selected %1 MHz").arg(this->mousePressFreq));
showStatusBarText(QString("Selected %1 MHz").arg(this->mousePressFreq));
}
*/
}
else if (me->button() == Qt::RightButton)
{
@ -923,16 +923,16 @@ void spectrumScope::scopeClick(QMouseEvent* me)
void spectrumScope::scopeMouseRelease(QMouseEvent* me)
{
/*
QCPAbstractItem* item = spectrum->itemAt(me->pos(), true);
QCPItemText* textItem = dynamic_cast<QCPItemText*> (item);
if (textItem == nullptr && prefs.clickDragTuningEnable) {
this->mouseReleaseFreq = plot->xAxis->pixelToCoord(me->pos().x());
if (textItem == nullptr && clickDragTuning) {
this->mouseReleaseFreq = spectrum->xAxis->pixelToCoord(me->pos().x());
double delta = mouseReleaseFreq - mousePressFreq;
qInfo(logGui()) << "Mouse release delta: " << delta;
}
*/
if (passbandAction != passbandStatic) {
passbandAction = passbandStatic;
}
@ -1041,23 +1041,19 @@ void spectrumScope::scopeMouseMove(QMouseEvent* me)
lastFreq = movedFrequency;
}
}
else if (passbandAction == passbandStatic && me->buttons() == Qt::LeftButton && textItem == nullptr)
else if (passbandAction == passbandStatic && me->buttons() == Qt::LeftButton && textItem == nullptr && clickDragTuning)
{
}
/* && prefs.clickDragTuningEnable)
{
double delta = plot->xAxis->pixelToCoord(cursor) - mousePressFreq;
double delta = spectrum->xAxis->pixelToCoord(cursor) - mousePressFreq;
qDebug(logGui()) << "Mouse moving delta: " << delta;
if( (( delta < -0.0001 ) || (delta > 0.0001)) && ((delta < 0.501) && (delta > -0.501)) )
{
freqt freqGo;
freqGo.Hz = (freq.MHzDouble + delta) * 1E6;
//freqGo.Hz = roundFrequency(freqGo.Hz, tsWfScrollHz);
freqGo.Hz = roundFrequency(freqGo.Hz, stepSize);
freqGo.MHzDouble = (float)freqGo.Hz / 1E6;
issueCmdUniquePriority(cmdSetFreq, freqGo);
queue->add(priorityImmediate,queueItem((sub?funcUnselectedFreq:funcSelectedFreq),QVariant::fromValue<freqt>(freqGo),false,sub));
}
}
*/
else {
setCursor(Qt::ArrowCursor);
}
@ -1066,8 +1062,8 @@ void spectrumScope::scopeMouseMove(QMouseEvent* me)
void spectrumScope::waterfallClick(QMouseEvent *me)
{
//double x = spectrum->xAxis->pixelToCoord(me->pos().x());
//showStatusBarText(QString("Selected %1 MHz").arg(x));
double x = spectrum->xAxis->pixelToCoord(me->pos().x());
emit showStatusBarText(QString("Selected %1 MHz").arg(x));
}
void spectrumScope::scroll(QWheelEvent *we)
@ -1250,7 +1246,7 @@ void spectrumScope::receivePassband(quint16 pass)
if (passbandWidth != pb) {
passbandWidth = pb;
//trxadj->updatePassband(pass);
qInfo(logSystem()) << QString("%0 Received new IF Filter/Passband %1 Hz").arg((sub?"Sub":"Main")).arg(pass);
//showStatusBarText(QString("IF filter width %0 Hz (%1 MHz)").arg(pass).arg(passbandWidth));
qInfo(logSystem()) << QString("%0 Received new IF Filter/Passband %1 Hz").arg(sub?"Sub":"Main").arg(pass);
emit showStatusBarText(QString("%0 IF filter width %1 Hz (%2 MHz)").arg(sub?"Sub":"Main").arg(pass).arg(passbandWidth));
}
}

Wyświetl plik

@ -50,6 +50,9 @@ public:
void setIdentity(QString name, bool s) {this->setTitle(name), sub = s;}
bool getSub() { return sub;}
void setTuningFloorZeros(bool tf) {this->tuningFloorZeros = tf;}
void setClickDragTuning(bool cg) { this->clickDragTuning = cg;}
void receiveCwPitch(uchar p);
quint16 getCwPitch() { return cwPitch;}
void receivePassband(quint16 pass);
@ -88,6 +91,8 @@ signals:
void frequencyRange(double start, double end);
void updateScopeMode(spectrumMode_t index);
void updateSpan(centerSpanData s);
void showStatusBarText(QString text);
private slots:
void updatedScopeMode(int index);
@ -197,11 +202,13 @@ private:
QVector <QByteArray> wfimage;
cachingQueue* queue;
bool sub=false;
bool tuningFloorZeros=false;
bool sub=false;
double startFrequency;
QMap<QString, spotData*> clusterSpots;
// Assorted settings
bool tuningFloorZeros=false;
bool clickDragTuning=false;
};
#endif // SPECTRUMSCOPE_H

Wyświetl plik

@ -102,6 +102,7 @@ wfmain::wfmain(const QString settingsFile, const QString logFile, bool debugMode
haveRigCaps = false;
this->setObjectName("wfmain");
queue = cachingQueue::getInstance(this);
connect(queue,SIGNAL(sendValue(cacheItem)),this,SLOT(receiveValue(cacheItem)));
@ -310,56 +311,9 @@ wfmain::~wfmain()
void wfmain::closeEvent(QCloseEvent *event)
{
if (prefs.settingsChanged)
{
// Settings have changed since last save
qInfo() << "Settings have changed since last save";
int reply = QMessageBox::question(this,"wfview","Settings have changed since last save, exit anyway?",QMessageBox::Save | QMessageBox::No |QMessageBox::Yes);
if (reply == QMessageBox::Save)
{
saveSettings();
} else if (reply == QMessageBox::No)
{
event->ignore();
return;
}
}
// Are you sure?
if (!prefs.confirmExit) {
QApplication::exit();
}
QCheckBox *cb = new QCheckBox("Don't ask me again");
cb->setToolTip("Don't ask me to confirm exit again");
QMessageBox msgbox;
msgbox.setText("Are you sure you wish to exit?\n");
msgbox.setIcon(QMessageBox::Icon::Question);
QAbstractButton *yesButton = msgbox.addButton(QMessageBox::Yes);
msgbox.addButton(QMessageBox::No);
msgbox.setDefaultButton(QMessageBox::Yes);
msgbox.setCheckBox(cb);
QObject::connect(cb, &QCheckBox::stateChanged, this, [this](int state){
if (static_cast<Qt::CheckState>(state) == Qt::CheckState::Checked) {
prefs.confirmExit=false;
} else {
prefs.confirmExit=true;
}
settings->beginGroup("Interface");
settings->setValue("ConfirmExit", this->prefs.confirmExit);
settings->endGroup();
settings->sync();
});
msgbox.exec();
if (msgbox.clickedButton() == yesButton) {
QApplication::exit();
} else {
if (on_exitBtn_clicked())
event->ignore();
}
delete cb;
}
void wfmain::openRig()
@ -385,13 +339,11 @@ void wfmain::openRig()
if (prefs.enableLAN)
{
ui->lanEnableBtn->setChecked(true);
usingLAN = true;
// We need to setup the tx/rx audio:
udpPrefs.waterfallFormat = prefs.waterfallFormat;
emit sendCommSetup(rigList, prefs.radioCIVAddr, udpPrefs, prefs.rxSetup, prefs.txSetup, prefs.virtualSerialPort, prefs.tcpPort);
} else {
ui->serialEnableBtn->setChecked(true);
if( (prefs.serialPortRadio.toLower() == QString("auto")))
{
findSerialPort();
@ -402,9 +354,6 @@ void wfmain::openRig()
emit sendCommSetup(rigList, prefs.radioCIVAddr, serialPortRig, prefs.serialPortBaud,prefs.virtualSerialPort, prefs.tcpPort,prefs.waterfallFormat);
ui->statusBar->showMessage(QString("Connecting to rig using serial port ").append(serialPortRig), 1000);
}
}
// Migrated
@ -1057,56 +1006,13 @@ void wfmain::setupMainUI()
{
createSettingsListItems();
ui->baudRateCombo->insertItem(0, QString("115200"), 115200);
ui->baudRateCombo->insertItem(1, QString("57600"), 57600);
ui->baudRateCombo->insertItem(2, QString("38400"), 38400);
ui->baudRateCombo->insertItem(3, QString("28800"), 28800);
ui->baudRateCombo->insertItem(4, QString("19200"), 19200);
ui->baudRateCombo->insertItem(5, QString("9600"), 9600);
ui->baudRateCombo->insertItem(6, QString("4800"), 4800);
ui->baudRateCombo->insertItem(7, QString("2400"), 2400);
ui->baudRateCombo->insertItem(8, QString("1200"), 1200);
ui->baudRateCombo->insertItem(9, QString("300"), 300);
//ui->modeFilterCombo->addItem("1", 1);
//ui->modeFilterCombo->addItem("2", 2);
//ui->modeFilterCombo->addItem("3", 3);
//ui->modeFilterCombo->addItem("Setup...", 99);
// 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->secondaryMeterSelectionLabel->show();
// Future ideas:
//ui->meter2selectionCombo->addItem("Transmit Audio", meterTxMod);
//ui->meter2selectionCombo->addItem("Receive Audio", meterRxAudio);
//ui->meter2selectionCombo->addItem("Latency", meterLatency);
//spans << "2.5k" << "5.0k" << "10k" << "25k";
//spans << "50k" << "100k" << "250k" << "500k";
//ui->scopeBWCombo->insertItems(0, spans);
//edges << "1" << "2" << "3" << "4";
//ui->scopeEdgeCombo->insertItems(0, edges);
// Set scroll wheel response (tick interval)
// and set arrow key response (single step)
ui->rfGainSlider->setTickInterval(100);
@ -1132,13 +1038,7 @@ void wfmain::setupMainUI()
// Keep this code when the rest is removed from this function:
qDebug(logSystem()) << "Running with debugging options enabled.";
#ifdef QT_DEBUG
ui->debugBtn->setVisible(true);
ui->satOpsBtn->setVisible(true);
#else
ui->debugBtn->setVisible(false);
ui->satOpsBtn->setVisible(false);
#endif
rigStatus = new QLabel(this);
ui->statusBar->addPermanentWidget(rigStatus);
@ -1167,6 +1067,9 @@ void wfmain::setupMainUI()
ui->mainScope->setFrequency(f);
ui->subScope->setFrequency(f);
connect(ui->mainScope,SIGNAL(showStatusBarText(QString)),this,SLOT(showStatusBarText(QString)));
connect(ui->subScope,SIGNAL(showStatusBarText(QString)),this,SLOT(showStatusBarText(QString)));
oldFreqDialVal = ui->freqDial->value();
ui->tuneLockChk->setChecked(false);
@ -1268,11 +1171,6 @@ void wfmain::connectSettingsWidget()
connect(setupui, SIGNAL(changedUdpPref(udpPrefsItem)), this, SLOT(extChangedUdpPref(udpPrefsItem)));
connect(setupui, SIGNAL(changedUdpPrefs(quint64)), this, SLOT(extChangedUdpPrefs(quint64)));
connect(setupui, &settingswidget::showUSBControllerSetup, this, [=](){
if(usbWindow != Q_NULLPTR)
showAndRaiseWidget(usbWindow);
});
connect(this, SIGNAL(haveClusterList(QList<clusterSettings>)), setupui, SLOT(copyClusterList(QList<clusterSettings>)));
connect(setupui, SIGNAL(changedAudioInputCombo(int)), this, SLOT(changedAudioInput(int)));
@ -1474,15 +1372,6 @@ void wfmain::setUIToPrefs()
// break;
// }
//ui->underlayBufferSlider->setValue(prefs.underlayBufferSize);
on_underlayBufferSlider_valueChanged(prefs.underlayBufferSize);
//ui->wfAntiAliasChk->setChecked(prefs.wfAntiAlias);
on_wfAntiAliasChk_clicked(prefs.wfAntiAlias);
//ui->wfInterpolateChk->setChecked(prefs.wfInterpolate);
on_wfInterpolateChk_clicked(prefs.wfInterpolate);
ui->wfLengthSlider->setValue(prefs.wflength);
ui->mainScope->prepareWf(prefs.wflength);
@ -1496,97 +1385,15 @@ void wfmain::setUIToPrefs()
ui->mainScope->setRange(prefs.plotFloor, prefs.plotCeiling);
ui->subScope->setRange(prefs.plotFloor, prefs.plotCeiling);
colorPrefsType p;
for(int pn=0; pn < numColorPresetsTotal; pn++)
{
p = colorPreset[pn];
if(p.presetName != Q_NULLPTR)
ui->colorPresetCombo->setItemText(pn, *p.presetName);
}
ui->colorPresetCombo->setCurrentIndex(prefs.currentColorPresetNumber);
// TODO Load Initial color preset
//loadColorPresetToUIandPlots(prefs.currentColorPresetNumber);
//ui->wfthemeCombo->setCurrentIndex(ui->wfthemeCombo->findData(prefs.wftheme));
ui->mainScope->wfTheme(prefs.wftheme);
ui->subScope->wfTheme(prefs.wftheme);
// ui->tuningFloorZerosChk->blockSignals(true);
// ui->tuningFloorZerosChk->setChecked(prefs.niceTS);
// ui->tuningFloorZerosChk->blockSignals(false);
finputbtns->setAutomaticSidebandSwitching(prefs.automaticSidebandSwitching);
ui->useCIVasRigIDChk->blockSignals(true);
ui->useCIVasRigIDChk->setChecked(prefs.CIVisRadioModel);
ui->useCIVasRigIDChk->blockSignals(false);
}
void wfmain::setSerialDevicesUI()
{
QStringList deviceList;
QVector<int> deviceData;
ui->serialDeviceListCombo->blockSignals(true);
ui->serialDeviceListCombo->addItem("Auto", 0);
int i = 0;
foreach(const QSerialPortInfo & serialPortInfo, QSerialPortInfo::availablePorts())
{
portList.append(serialPortInfo.portName());
#if defined(Q_OS_LINUX) || defined(Q_OS_MAC)
deviceData.append(i);
ui->serialDeviceListCombo->addItem(QString("/dev/") + serialPortInfo.portName(), i++);
deviceList.append(QString("/dev/") + serialPortInfo.portName());
#else
ui->serialDeviceListCombo->addItem(serialPortInfo.portName(), i++);
deviceList.append(serialPortInfo.portName());
//qInfo(logSystem()) << "Serial Port found: " << serialPortInfo.portName() << "Manufacturer:" << serialPortInfo.manufacturer() << "Product ID" << serialPortInfo.description() << "S/N" << serialPortInfo.serialNumber();
#endif
}
#if defined(Q_OS_LINUX) || defined(Q_OS_MAC)
ui->serialDeviceListCombo->addItem("Manual...", 256);
#endif
ui->serialDeviceListCombo->blockSignals(false);
setupui->updateSerialPortList(deviceList, deviceData);
// VSP:
QStringList vspList;
QVector<int> vspData;
int vspCount=0;
#ifdef Q_OS_WIN
vspList.append(QString("None")); // i=0 when this is run
vspData.append(vspCount);
foreach(const QSerialPortInfo & serialPortInfo, QSerialPortInfo::availablePorts())
{
vspList.append(serialPortInfo.portName());
vspData.append(vspCount);
vspCount++;
}
#else
// Provide reasonable names for the symbolic link to the pty device
#ifdef Q_OS_MAC
QString vspName = QStandardPaths::standardLocations(QStandardPaths::DownloadLocation)[0] + "/rig-pty";
#else
QString vspName = QDir::homePath() + "/rig-pty";
#endif
for (i = 1; i < 8; i++) {
vspList.append(vspName + QString::number(i));
vspData.append(vspCount);
vspCount++;
}
vspList.append(vspName + QString::number(i));
vspData.append(vspCount);
setupui->updateVSPList(vspList, vspData);
#endif
}
@ -2150,7 +1957,8 @@ void wfmain::loadSettings()
prefs.confirmPowerOff = settings->value("ConfirmPowerOff", defPrefs.confirmPowerOff).toBool();
prefs.meter2Type = static_cast<meter_t>(settings->value("Meter2Type", defPrefs.meter2Type).toInt());
prefs.clickDragTuningEnable = settings->value("ClickDragTuning", false).toBool();
ui->clickDragTuningEnableChk->setChecked(prefs.clickDragTuningEnable);
ui->mainScope->setClickDragTuning(prefs.clickDragTuningEnable);
ui->subScope->setClickDragTuning(prefs.clickDragTuningEnable);
prefs.rigCreatorEnable = settings->value("RigCreator",false).toBool();
ui->rigCreatorBtn->setEnabled(prefs.rigCreatorEnable);
@ -2212,33 +2020,10 @@ void wfmain::loadSettings()
// Radio and Comms: C-IV addr, port to use
settings->beginGroup("Radio");
prefs.radioCIVAddr = (unsigned char)settings->value("RigCIVuInt", defPrefs.radioCIVAddr).toInt();
if (prefs.radioCIVAddr != 0)
{
ui->rigCIVManualAddrChk->setChecked(true);
ui->rigCIVaddrHexLine->blockSignals(true);
ui->rigCIVaddrHexLine->setText(QString("%1").arg(prefs.radioCIVAddr, 2, 16));
ui->rigCIVaddrHexLine->setEnabled(true);
ui->rigCIVaddrHexLine->blockSignals(false);
}
else {
ui->rigCIVManualAddrChk->setChecked(false);
ui->rigCIVaddrHexLine->setEnabled(false);
}
prefs.CIVisRadioModel = (bool)settings->value("CIVisRadioModel", defPrefs.CIVisRadioModel).toBool();
prefs.forceRTSasPTT = (bool)settings->value("ForceRTSasPTT", defPrefs.forceRTSasPTT).toBool();
//ui->useRTSforPTTchk->setChecked(prefs.forceRTSasPTT);
prefs.serialPortRadio = settings->value("SerialPortRadio", defPrefs.serialPortRadio).toString();
int serialIndex = ui->serialDeviceListCombo->findText(prefs.serialPortRadio);
if (serialIndex != -1) {
ui->serialDeviceListCombo->setCurrentIndex(serialIndex);
}
prefs.serialPortBaud = (quint32)settings->value("SerialPortBaud", defPrefs.serialPortBaud).toInt();
ui->baudRateCombo->blockSignals(true);
ui->baudRateCombo->setCurrentIndex(ui->baudRateCombo->findData(prefs.serialPortBaud));
ui->baudRateCombo->blockSignals(false);
if (prefs.serialPortBaud > 0)
{
@ -2270,7 +2055,11 @@ void wfmain::loadSettings()
// Misc. user settings (enable PTT, draw peaks, etc)
settings->beginGroup("Controls");
prefs.enablePTT = settings->value("EnablePTT", defPrefs.enablePTT).toBool();
prefs.niceTS = settings->value("NiceTS", defPrefs.niceTS).toBool();
ui->mainScope->setTuningFloorZeros(prefs.niceTS);
ui->subScope->setTuningFloorZeros(prefs.niceTS);
prefs.automaticSidebandSwitching = settings->value("automaticSidebandSwitching", defPrefs.automaticSidebandSwitching).toBool();
settings->endGroup();
@ -2288,10 +2077,6 @@ void wfmain::loadSettings()
//ui->audioOutputCombo->setEnabled(prefs.enableLAN);
//ui->audioInputCombo->setEnabled(prefs.enableLAN);
ui->baudRateCombo->setEnabled(!prefs.enableLAN);
ui->serialDeviceListCombo->setEnabled(!prefs.enableLAN);
ui->lanEnableBtn->setChecked(prefs.enableLAN);
ui->connectBtn->setEnabled(true);
prefs.enableRigCtlD = settings->value("EnableRigCtlD", defPrefs.enableRigCtlD).toBool();
@ -2573,12 +2358,6 @@ void wfmain::loadSettings()
settings->beginGroup("USB");
/* Load USB buttons*/
prefs.enableUSBControllers = settings->value("EnableUSBControllers", defPrefs.enableUSBControllers).toBool();
//ui->enableUsbChk->blockSignals(true);
//ui->enableUsbChk->setChecked(prefs.enableUSBControllers);
//ui->enableUsbChk->blockSignals(false);
ui->usbControllerBtn->setEnabled(prefs.enableUSBControllers);
ui->usbControllersResetBtn->setEnabled(prefs.enableUSBControllers);
ui->usbResetLbl->setVisible(prefs.enableUSBControllers);
/*Ensure that no operations on the usb commands/buttons/knobs take place*/
QMutexLocker locker(&usbMutex);
@ -3049,6 +2828,29 @@ void wfmain::extChangedRsPref(prefRsItem i)
break;
case rs_data3Mod:
break;
case rs_setClock:
setRadioTimeDatePrep();
case rs_pttOn:
if(!prefs.enablePTT)
{
showStatusBarText("PTT is disabled, not sending command. Change under Settings tab.");
return;
}
showStatusBarText("Sending PTT ON command. Use Control-R to receive.");
queue->add(priorityImmediate,queueItem(funcTransceiverStatus,QVariant::fromValue<bool>(true),false));
pttTimer->start();
break;
case rs_pttOff:
showStatusBarText("Sending PTT OFF command");
queue->add(priorityImmediate,queueItem(funcTransceiverStatus,QVariant::fromValue<bool>(false),false));
pttTimer->stop();
break;
case rs_satOps:
sat->show();
break;
case rs_adjRef:
cal->show();
break;
case rs_clockUseUtc:
break;
default:
@ -3065,18 +2867,57 @@ void wfmain::extChangedCtPref(prefCtItem i)
case ct_enablePTT:
break;
case ct_niceTS:
//ui->mainScope.setNiceTS = prefs.niceTS;
//ui->subScope.setNiceTS = prefs.niceTS;
ui->mainScope->setTuningFloorZeros(prefs.niceTS);
ui->subScope->setTuningFloorZeros(prefs.niceTS);
break;
case ct_automaticSidebandSwitching:
finputbtns->setAutomaticSidebandSwitching(prefs.automaticSidebandSwitching);
break;
case ct_enableUSBControllers:
//enableUsbControllers(prefs.enableUSBControllers);
#if defined (USB_CONTROLLER)
if (usbControllerThread != Q_NULLPTR) {
usbControllerThread->quit();
usbControllerThread->wait();
usbControllerThread = Q_NULLPTR;
usbWindow = Q_NULLPTR;
}
if (prefs.enableUSBControllers) {
// Setup USB Controller
setupUsbControllerDevice();
emit initUsbController(&usbMutex,&usbDevices,&usbButtons,&usbKnobs);
}
#endif
break;
case ct_usbSensitivity:
// No UI element for this.
case ct_USBControllersSetup:
if (usbWindow != Q_NULLPTR) {
if (usbWindow->isVisible()) {
usbWindow->hide();
}
else {
qInfo(logUsbControl()) << "Showing USB Controller window";
usbWindow->show();
usbWindow->raise();
}
}
break;
case ct_USBControllersReset:
{
int ret = QMessageBox::warning(this, tr("wfview"),
tr("Are you sure you wish to reset the USB controllers?"),
QMessageBox::Ok | QMessageBox::Cancel,
QMessageBox::Cancel);
if (ret == QMessageBox::Ok) {
qInfo(logUsbControl()) << "Resetting USB controllers to default values";
usbButtons.clear();
usbKnobs.clear();
usbDevices.clear();
if (prefs.enableUSBControllers)
extChangedCtPref(ct_enableUSBControllers);
}
break;
}
default:
qWarning(logGui()) << "No UI element matches setting" << (int)i;
break;
@ -3308,30 +3149,6 @@ void wfmain::on_serverAddUserBtn_clicked()
ui->serverAddUserBtn->setEnabled(false);
}
void wfmain::on_serverEnableCheckbox_clicked(bool checked)
{
ui->serverSetupGroup->setEnabled(checked);
serverConfig.enabled = checked;
setServerToPrefs();
}
void wfmain::on_serverControlPortText_textChanged(QString text)
{
serverConfig.controlPort = text.toInt();
}
void wfmain::on_serverCivPortText_textChanged(QString text)
{
serverConfig.civPort = text.toInt();
}
void wfmain::on_serverAudioPortText_textChanged(QString text)
{
serverConfig.audioPort = text.toInt();
}
void wfmain::changedModInput(uchar val, inputTypes type)
{
@ -3822,14 +3639,13 @@ void wfmain::shortcutControlT()
// Transmit
qInfo(logSystem()) << "Activated Control-T shortcut";
showStatusBarText(QString("Transmitting. Press Control-R to receive."));
ui->pttOnBtn->click();
extChangedRsPrefs(rs_pttOn);
}
void wfmain::shortcutControlR()
{
// Receive
queue->add(priorityImmediate,queueItem(funcTransceiverStatus,QVariant::fromValue<bool>(false)));
pttTimer->stop();
extChangedRsPrefs(rs_pttOff);
}
void wfmain::shortcutControlI()
@ -3890,6 +3706,8 @@ void wfmain::on_tuningStepCombo_currentIndexChanged(int index)
foreach (auto s, rigCaps.steps) {
if (tsWfScrollHz == s.hz)
{
ui->mainScope->setStepSize(s.hz);
ui->subScope->setStepSize(s.hz);
queue->add(priorityImmediate,queueItem(funcTuningStep,QVariant::fromValue<uchar>(s.num),false));
}
}
@ -4394,7 +4212,7 @@ void wfmain::setDefaultColors(int presetNumber)
break;
}
ui->colorPresetCombo->setItemText(presetNumber, *(p->presetName));
//ui->colorPresetCombo->setItemText(presetNumber, *(p->presetName));
}
void wfmain::receiveRigID(rigCapabilities rigCaps)
@ -4495,15 +4313,6 @@ void wfmain::receiveRigID(rigCapabilities rigCaps)
ui->tuningStepCombo->setCurrentIndex(2);
ui->tuningStepCombo->blockSignals(false);
if(rigCaps.commands.contains(funcSatelliteMode))
{
ui->satOpsBtn->setDisabled(false);
ui->adjRefBtn->setDisabled(false);
} else {
ui->satOpsBtn->setDisabled(true);
ui->adjRefBtn->setDisabled(true);
}
setupui->updateModSourceList(0, rigCaps.inputs);
setupui->updateModSourceList(1, rigCaps.inputs);
@ -5136,21 +4945,6 @@ void wfmain::handlePlotScroll(QWheelEvent *we)
*/
}
void wfmain::on_scopeEnableWFBtn_stateChanged(int state)
{
if (state == Qt::Unchecked)
{
queue->add(priorityImmediate,queueItem(funcScopeOnOff,QVariant::fromValue<bool>(false),false));
}
else
{
queue->add(priorityImmediate,queueItem(funcScopeOnOff,QVariant::fromValue<bool>(true),false));
}
prefs.wfEnable = state;
}
void wfmain::receiveMode(modeInfo mode, bool sub)
{
Q_UNUSED(mode)
@ -5175,11 +4969,6 @@ void wfmain::receiveDataModeStatus(uchar data, uchar filter)
usingDataMode = data;
}
void wfmain::on_clearPeakBtn_clicked()
{
ui->mainScope->setUnderlayMode(prefs.underlayMode);
}
void wfmain::changeFullScreenMode(bool checked)
{
if(checked)
@ -5193,12 +4982,6 @@ void wfmain::changeFullScreenMode(bool checked)
prefs.useFullScreen = checked;
}
void wfmain::on_scopeEdgeCombo_currentIndexChanged(int index)
{
queue->add(priorityImmediate,queueItem(funcScopeMainEdge,QVariant::fromValue<uchar>(index+1)));
}
void wfmain::changeMode(rigMode_t mode)
{
bool dataOn = false;
@ -5467,42 +5250,58 @@ void wfmain::on_tuneEnableChk_clicked(bool checked)
showStatusBarText(QString("Turning %0 ATU").arg(checked?"on":"off"));
}
void wfmain::on_exitBtn_clicked()
bool wfmain::on_exitBtn_clicked()
{
// Are you sure?
QApplication::exit();
}
void wfmain::on_pttOnBtn_clicked()
{
// is it enabled?
if(!prefs.enablePTT)
bool ret=false;
if (prefs.settingsChanged)
{
showStatusBarText("PTT is disabled, not sending command. Change under Settings tab.");
return;
// Settings have changed since last save
qInfo() << "Settings have changed since last save";
int reply = QMessageBox::question(this,"wfview","Settings have changed since last save, exit anyway?",QMessageBox::Save | QMessageBox::No |QMessageBox::Yes);
if (reply == QMessageBox::Save)
{
saveSettings();
} else if (reply == QMessageBox::No)
{
return true;
}
}
// Are we already PTT? Not a big deal, just send again anyway.
showStatusBarText("Sending PTT ON command. Use Control-R to receive.");
// Are you sure?
if (!prefs.confirmExit) {
QApplication::exit();
}
QCheckBox *cb = new QCheckBox("Don't ask me again");
cb->setToolTip("Don't ask me to confirm exit again");
QMessageBox msgbox;
msgbox.setText("Are you sure you wish to exit?\n");
msgbox.setIcon(QMessageBox::Icon::Question);
QAbstractButton *yesButton = msgbox.addButton(QMessageBox::Yes);
msgbox.addButton(QMessageBox::No);
msgbox.setDefaultButton(QMessageBox::Yes);
msgbox.setCheckBox(cb);
queue->add(priorityImmediate,queueItem(funcTransceiverStatus,QVariant::fromValue<bool>(true),false));
QObject::connect(cb, &QCheckBox::stateChanged, this, [this](int state){
if (static_cast<Qt::CheckState>(state) == Qt::CheckState::Checked) {
prefs.confirmExit=false;
} else {
prefs.confirmExit=true;
}
settings->beginGroup("Interface");
settings->setValue("ConfirmExit", this->prefs.confirmExit);
settings->endGroup();
settings->sync();
});
// send PTT
// Start 3 minute timer
pttTimer->start();
//issueDelayedCommand(cmdGetPTT);
}
msgbox.exec();
delete cb;
void wfmain::on_pttOffBtn_clicked()
{
// Send the PTT OFF command (more than once?)
showStatusBarText("Sending PTT OFF command");
queue->add(priorityImmediate,queueItem(funcTransceiverStatus,QVariant::fromValue<bool>(false),false));
// Stop the 3 min timer
pttTimer->stop();
//issueDelayedCommand(cmdGetPTT);
if (msgbox.clickedButton() == yesButton) {
QApplication::exit();
} else {
ret=true;
}
return ret;
}
void wfmain::handlePttLimit()
@ -5550,12 +5349,6 @@ void wfmain::receiveATUStatus(unsigned char atustatus)
}
}
void wfmain::on_toFixedBtn_clicked()
{
}
void wfmain::on_connectBtn_clicked()
{
this->rigStatus->setText(""); // Clear status
@ -5669,23 +5462,13 @@ void wfmain::on_transmitBtn_clicked()
queue->add(priorityHighest,funcTransceiverStatus);
}
void wfmain::on_adjRefBtn_clicked()
{
cal->show();
}
void wfmain::on_satOpsBtn_clicked()
{
sat->show();
}
void wfmain::setRadioTimeDatePrep()
{
if(!waitingToSetTimeDate)
{
// 1: Find the current time and date
QDateTime now;
if(ui->useUTCChk->isChecked())
if(prefs.useUTC)
{
now = QDateTime::currentDateTimeUtc();
now.setTime(QTime::currentTime());
@ -5930,6 +5713,8 @@ void wfmain::receiveTuningStep(unsigned char step)
if (step == s.num && ui->tuningStepCombo->currentData().toUInt() != s.hz) {
qInfo(logSystem()) << QString("Received new Tuning Step %0").arg(s.name);
ui->tuningStepCombo->setCurrentIndex(ui->tuningStepCombo->findData(s.hz));
ui->mainScope->setStepSize(s.hz);
ui->subScope->setStepSize(s.hz);
break;
}
}
@ -6108,14 +5893,13 @@ void wfmain::on_serialDeviceListCombo_textActivated(const QString &arg1)
tr("/dev/device"), &ok);
if(manualPort.isEmpty() || !ok)
{
ui->serialDeviceListCombo->blockSignals(true);
ui->serialDeviceListCombo->setCurrentIndex(0);
ui->serialDeviceListCombo->blockSignals(false);
//ui->serialDeviceListCombo->blockSignals(true);
//ui->serialDeviceListCombo->setCurrentIndex(0);
//ui->serialDeviceListCombo->blockSignals(false);
return;
} else {
prefs.serialPortRadio = manualPort;
showStatusBarText("Setting preferences to use manually-assigned serial port: " + manualPort);
ui->serialEnableBtn->setChecked(true);
return;
}
}
@ -6123,13 +5907,11 @@ void wfmain::on_serialDeviceListCombo_textActivated(const QString &arg1)
{
prefs.serialPortRadio = "auto";
showStatusBarText("Setting preferences to automatically find rig serial port.");
ui->serialEnableBtn->setChecked(true);
return;
}
prefs.serialPortRadio = arg1;
showStatusBarText("Setting preferences to use manually-assigned serial port: " + arg1);
ui->serialEnableBtn->setChecked(true);
}
void wfmain::on_rptSetupBtn_clicked()
@ -6172,12 +5954,6 @@ void wfmain::on_rxAntennaCheck_clicked(bool value)
ant.rx = value;
queue->add(priorityImmediate,queueItem(funcAntenna,QVariant::fromValue<antennaInfo>(ant),false));
}
void wfmain::on_wfthemeCombo_activated(int index)
{
//prefs.wftheme = ui->wfthemeCombo->itemData(index).toInt();
//ui->mainScope->wfTheme(prefs.wftheme);
// ui->subScope->wfTheme(prefs.wftheme);
}
void wfmain::receivePreamp(unsigned char pre)
{
@ -6353,48 +6129,8 @@ void wfmain::hideButton(QPushButton *btn)
btn->setHidden(true);
}
void wfmain::on_rigCIVManualAddrChk_clicked(bool checked)
{
if(checked)
{
ui->rigCIVaddrHexLine->setEnabled(true);
ui->rigCIVaddrHexLine->setText(QString("%1").arg(prefs.radioCIVAddr, 2, 16));
} else {
ui->rigCIVaddrHexLine->setText("auto");
ui->rigCIVaddrHexLine->setEnabled(false);
prefs.radioCIVAddr = 0; // auto
showStatusBarText("Setting radio CI-V address to: 'auto'. Make sure CI-V Transceive is enabled on the radio.");
}
}
void wfmain::on_rigCIVaddrHexLine_editingFinished()
{
bool okconvert=false;
unsigned char propCIVAddr = (unsigned char) ui->rigCIVaddrHexLine->text().toUInt(&okconvert, 16);
if(okconvert && (propCIVAddr < 0xe0) && (propCIVAddr != 0))
{
prefs.radioCIVAddr = propCIVAddr;
emit setCIVAddr(propCIVAddr);
showStatusBarText(QString("Setting radio CI-V address to: 0x%1. Press Save Settings to retain.").arg(propCIVAddr, 2, 16));
} else {
showStatusBarText(QString("Could not use provided CI-V address. Address must be < 0xE0"));
}
}
void wfmain::on_baudRateCombo_activated(int index)
{
bool ok = false;
quint32 baud = ui->baudRateCombo->currentData().toUInt(&ok);
if(ok)
{
prefs.serialPortBaud = baud;
serverConfig.baudRate = baud;
showStatusBarText(QString("Changed baud rate to %1 bps. Press Save Settings to retain.").arg(baud));
}
(void)index;
}
void wfmain::on_wfLengthSlider_valueChanged(int value)
@ -6404,20 +6140,6 @@ void wfmain::on_wfLengthSlider_valueChanged(int value)
ui->subScope->prepareWf(value);
}
void wfmain::on_wfAntiAliasChk_clicked(bool checked)
{
ui->mainScope->wfAntiAliased(checked);
ui->subScope->wfAntiAliased(checked);
prefs.wfAntiAlias = checked;
}
void wfmain::on_wfInterpolateChk_clicked(bool checked)
{
ui->mainScope->wfInterpolate(checked);
ui->subScope->wfInterpolate(checked);
prefs.wfInterpolate = checked;
}
funcs wfmain::meter_tToMeterCommand(meter_t m)
{
funcs c;
@ -6525,11 +6247,6 @@ void wfmain::on_moreControlsBtn_clicked()
trxadj->activateWindow();
}
void wfmain::on_useCIVasRigIDChk_clicked(bool checked)
{
prefs.CIVisRadioModel = checked;
}
void wfmain::on_setClockBtn_clicked()
{
setRadioTimeDatePrep();
@ -6572,44 +6289,6 @@ void wfmain::on_botLevelSlider_valueChanged(int value)
ui->subScope->setRange(plotFloor,plotCeiling);
}
void wfmain::on_underlayBufferSlider_valueChanged(int value)
{
ui->mainScope->resizePlasmaBuffer(value);
ui->subScope->resizePlasmaBuffer(value);
}
void wfmain::on_underlayNone_toggled(bool checked)
{
if(checked)
prefs.underlayMode = underlayNone;
ui->mainScope->setUnderlayMode(prefs.underlayMode);
ui->subScope->setUnderlayMode(prefs.underlayMode);
}
void wfmain::on_underlayPeakHold_toggled(bool checked)
{
if(checked)
prefs.underlayMode = underlayPeakHold;
ui->mainScope->setUnderlayMode(prefs.underlayMode);
ui->subScope->setUnderlayMode(prefs.underlayMode);
}
void wfmain::on_underlayPeakBuffer_toggled(bool checked)
{
if(checked)
prefs.underlayMode = underlayPeakBuffer;
ui->mainScope->setUnderlayMode(prefs.underlayMode);
ui->subScope->setUnderlayMode(prefs.underlayMode);
}
void wfmain::on_underlayAverageBuffer_toggled(bool checked)
{
if(checked)
prefs.underlayMode = underlayAverageBuffer;
ui->mainScope->setUnderlayMode(prefs.underlayMode);
ui->subScope->setUnderlayMode(prefs.underlayMode);
}
// --- DEBUG FUNCTION ---
void wfmain::on_debugBtn_clicked()
{
@ -6632,13 +6311,6 @@ void wfmain::on_debugBtn_clicked()
// ---------- color helper functions: ---------- //
void wfmain::useCurrentColorPreset()
{
int pos = ui->colorPresetCombo->currentIndex();
useColorPreset(&colorPreset[pos]);
}
void wfmain::useColorPreset(colorPrefsType *cp)
{
// Apply the given preset to the UI elements
@ -6775,12 +6447,6 @@ void wfmain::messageHandler(QtMsgType type, const QMessageLogContext& context, c
}
void wfmain::on_customEdgeBtn_clicked()
{
}
void wfmain::receiveClusterOutput(QString text) {
ui->clusterOutputTextEdit->moveCursor(QTextCursor::End);
ui->clusterOutputTextEdit->insertPlainText(text);
@ -7010,8 +6676,7 @@ void wfmain::on_clusterPopOutBtn_clicked()
ui->tabWidget->removeTab(ui->tabWidget->indexOf(settingsTab));
settingsWidgetTab->addTab(settingsTab, "Settings");
settingsWidgetWindow->show();
ui->clusterPopOutBtn->setText("Re-attach");
ui->colorPopOutBtn->setText("Re-attach");
ui->tabWidget->setCurrentIndex(0);
settingsTabisAttached = false;
}
@ -7022,8 +6687,6 @@ void wfmain::on_clusterPopOutBtn_clicked()
ui->tabWidget->addTab(settingsTab, "Settings");
settingsWidgetWindow->close();
ui->clusterPopOutBtn->setText("Pop-Out");
ui->colorPopOutBtn->setText("Pop-Out");
ui->tabWidget->setCurrentIndex(3);
settingsTabisAttached = true;
}
@ -7036,33 +6699,9 @@ void wfmain::on_clusterSkimmerSpotsEnable_clicked(bool enable)
emit setClusterSkimmerSpots(enable);
}
void wfmain::on_clickDragTuningEnableChk_clicked(bool checked)
{
// migrated
prefs.clickDragTuningEnable = checked;
}
void wfmain::enableUsbControllers(bool checked)
{
prefs.enableUSBControllers = checked;
ui->usbControllerBtn->setEnabled(checked);
ui->usbControllersResetBtn->setEnabled(checked);
ui->usbResetLbl->setVisible(checked);
#if defined (USB_CONTROLLER)
if (usbControllerThread != Q_NULLPTR) {
usbControllerThread->quit();
usbControllerThread->wait();
usbControllerThread = Q_NULLPTR;
usbWindow = Q_NULLPTR;
}
if (checked) {
// Setup USB Controller
setupUsbControllerDevice();
emit initUsbController(&usbMutex,&usbDevices,&usbButtons,&usbKnobs);
}
#endif
}
void wfmain::on_usbControllerBtn_clicked()
@ -7213,15 +6852,15 @@ void wfmain::on_memoriesBtn_clicked()
this->memWindow->connect(this->memWindow, &memories::memoryMode, rig, [=]() {
queue->add(priorityImmediate,funcMemoryMode);
queue->del((rigCaps.commands.contains(funcSelectedFreq)?funcSelectedFreq:funcFreqGet));
queue->del((rigCaps.commands.contains(funcSelectedMode)?funcSelectedMode:funcModeGet));
queue->del((rigCaps.commands.contains(funcSelectedFreq)?funcSelectedFreq:funcFreqGet),false);
queue->del((rigCaps.commands.contains(funcSelectedMode)?funcSelectedMode:funcModeGet),false);
queue->del((rigCaps.commands.contains(funcUnselectedFreq)?funcUnselectedFreq:funcNone),true);
queue->del((rigCaps.commands.contains(funcUnselectedMode)?funcUnselectedMode:funcNone),true);
});
this->memWindow->connect(this->memWindow, &memories::vfoMode, rig, [this]() {
queue->addUnique(priorityMedium,(rigCaps.commands.contains(funcSelectedFreq)?funcSelectedFreq:funcFreqGet),true);
queue->addUnique(priorityMedium,(rigCaps.commands.contains(funcSelectedMode)?funcSelectedMode:funcModeGet),true);
queue->addUnique(priorityMedium,(rigCaps.commands.contains(funcSelectedFreq)?funcSelectedFreq:funcFreqGet),true,false);
queue->addUnique(priorityMedium,(rigCaps.commands.contains(funcSelectedMode)?funcSelectedMode:funcModeGet),true,false);
queue->addUnique(priorityMedium,(rigCaps.commands.contains(funcUnselectedFreq)?funcUnselectedFreq:funcNone),true,true);
queue->addUnique(priorityMedium,(rigCaps.commands.contains(funcUnselectedMode)?funcUnselectedMode:funcNone),true,true);
});
@ -7229,13 +6868,13 @@ void wfmain::on_memoriesBtn_clicked()
this->memWindow->connect(this->memWindow, &memories::setSatelliteMode, rig, [this](const bool &en) {
queue->add(priorityImmediate,queueItem(funcSatelliteMode,QVariant::fromValue<bool>(en)));
if (en) {
queue->del((rigCaps.commands.contains(funcSelectedFreq)?funcSelectedFreq:funcFreqGet));
queue->del((rigCaps.commands.contains(funcSelectedMode)?funcSelectedMode:funcModeGet));
queue->del((rigCaps.commands.contains(funcUnselectedFreq)?funcUnselectedFreq:funcNone));
queue->del((rigCaps.commands.contains(funcUnselectedMode)?funcUnselectedMode:funcNone));
queue->del((rigCaps.commands.contains(funcSelectedFreq)?funcSelectedFreq:funcFreqGet),false);
queue->del((rigCaps.commands.contains(funcSelectedMode)?funcSelectedMode:funcModeGet),false);
queue->del((rigCaps.commands.contains(funcUnselectedFreq)?funcUnselectedFreq:funcNone),true);
queue->del((rigCaps.commands.contains(funcUnselectedMode)?funcUnselectedMode:funcNone),true);
} else {
queue->addUnique(priorityMedium,(rigCaps.commands.contains(funcSelectedFreq)?funcSelectedFreq:funcFreqGet),true);
queue->addUnique(priorityMedium,(rigCaps.commands.contains(funcSelectedMode)?funcSelectedMode:funcModeGet),true);
queue->addUnique(priorityMedium,(rigCaps.commands.contains(funcSelectedFreq)?funcSelectedFreq:funcFreqGet),true,false);
queue->addUnique(priorityMedium,(rigCaps.commands.contains(funcSelectedMode)?funcSelectedMode:funcModeGet),true,false);
queue->addUnique(priorityMedium,(rigCaps.commands.contains(funcUnselectedFreq)?funcUnselectedFreq:funcNone),true,true);
queue->addUnique(priorityMedium,(rigCaps.commands.contains(funcUnselectedMode)?funcUnselectedMode:funcNone),true,true);
}

Wyświetl plik

@ -452,15 +452,12 @@ private slots:
void buttonControl(const COMMAND* cmd);
void on_clearPeakBtn_clicked();
void changeFullScreenMode(bool checked);
void on_usbControllerBtn_clicked();
void on_usbControllersResetBtn_clicked();
void on_scopeEdgeCombo_currentIndexChanged(int index);
void on_modeSelectCombo_activated(int index);
void on_freqDial_valueChanged(int value);
void on_aboutBtn_clicked();
@ -474,17 +471,12 @@ private slots:
void on_tuneNowBtn_clicked();
void on_tuneEnableChk_clicked(bool checked);
void on_exitBtn_clicked();
void on_pttOnBtn_clicked();
void on_pttOffBtn_clicked();
bool on_exitBtn_clicked();
void on_saveSettingsBtn_clicked();
void on_debugBtn_clicked();
void on_toFixedBtn_clicked();
void on_connectBtn_clicked();
void on_scopeEnableWFBtn_stateChanged(int state);
void on_sqlSlider_valueChanged(int value);
void on_modeFilterCombo_activated(int index);
@ -492,8 +484,6 @@ private slots:
void on_datamodeCombo_activated(int index);
void on_transmitBtn_clicked();
void on_adjRefBtn_clicked();
void on_satOpsBtn_clicked();
void on_txPowerSlider_valueChanged(int value);
void on_micGainSlider_valueChanged(int value);
void on_scopeRefLevelSlider_valueChanged(int value);
@ -508,31 +498,20 @@ private slots:
void on_preampSelCombo_activated(int index);
void on_antennaSelCombo_activated(int index);
void on_rxAntennaCheck_clicked(bool value);
void on_wfthemeCombo_activated(int index);
void on_rigPowerOnBtn_clicked();
void on_rigPowerOffBtn_clicked();
void on_ritTuneDial_valueChanged(int value);
void on_ritEnableChk_clicked(bool checked);
void on_rigCIVManualAddrChk_clicked(bool checked);
void on_rigCIVaddrHexLine_editingFinished();
void on_baudRateCombo_activated(int);
void on_wfLengthSlider_valueChanged(int value);
void on_wfAntiAliasChk_clicked(bool checked);
void on_wfInterpolateChk_clicked(bool checked);
void changeMeter2Type(meter_t m);
void enableRigCtl(bool enabled);
void on_moreControlsBtn_clicked();
void on_memoriesBtn_clicked();
void on_useCIVasRigIDChk_clicked(bool checked);
void on_settingsList_currentRowChanged(int currentRow);
void on_setClockBtn_clicked();
void on_serverEnableCheckbox_clicked(bool checked);
void on_serverControlPortText_textChanged(QString text);
void on_serverCivPortText_textChanged(QString text);
void on_serverAudioPortText_textChanged(QString text);
void onServerUserFieldChanged();
void changedModInput(uchar val, inputTypes type);
@ -542,16 +521,9 @@ private slots:
void on_topLevelSlider_valueChanged(int value);
void on_botLevelSlider_valueChanged(int value);
void on_underlayBufferSlider_valueChanged(int value);
void on_underlayNone_toggled(bool checked);
void on_underlayPeakHold_toggled(bool checked);
void on_underlayPeakBuffer_toggled(bool checked);
void on_underlayAverageBuffer_toggled(bool checked);
void on_showLogBtn_clicked();
void on_customEdgeBtn_clicked();
void on_clusterUdpEnable_clicked(bool enable);
void on_clusterTcpEnable_clicked(bool enable);
void on_clusterUdpPortLineEdit_editingFinished();
@ -564,8 +536,6 @@ private slots:
void on_clusterPopOutBtn_clicked();
void on_clusterSkimmerSpotsEnable_clicked(bool enable);
void on_clickDragTuningEnableChk_clicked(bool checked);
void receiveClusterOutput(QString text);
void receiveSpots(QList<spotData> spots);
@ -767,7 +737,6 @@ private:
void useColors(); // set the plot up
void setDefPrefs(); // populate default values to default prefs
void setTuningSteps();
void useCurrentColorPreset();
void calculateTimingParameters();
void initPeriodicCommands();

590
wfmain.ui
Wyświetl plik

@ -1547,273 +1547,10 @@
<item>
<widget class="QStackedWidget" name="settingsStack">
<property name="currentIndex">
<number>0</number>
<number>2</number>
</property>
<widget class="QWidget" name="radioAccess">
<layout class="QVBoxLayout" name="verticalLayout_21">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QGroupBox" name="groupBox">
<property name="minimumSize">
<size>
<width>140</width>
<height>0</height>
</size>
</property>
<property name="title">
<string>Radio Connection</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_5">
<item>
<widget class="QRadioButton" name="serialEnableBtn">
<property name="text">
<string>Serial (USB)</string>
</property>
<attribute name="buttonGroup">
<string notr="true">buttonGroup</string>
</attribute>
</widget>
</item>
<item>
<widget class="QRadioButton" name="lanEnableBtn">
<property name="text">
<string>Network</string>
</property>
<attribute name="buttonGroup">
<string notr="true">buttonGroup</string>
</attribute>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_8">
<property name="minimumSize">
<size>
<width>300</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>300</width>
<height>16777215</height>
</size>
</property>
<property name="title">
<string>CI-V and Model</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QCheckBox" name="rigCIVManualAddrChk">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;If you are using an older (year 2010) radio, you may need to enable this option to manually specify the CI-V address. This option is also useful for radios that do not have CI-V Transceive enabled and thus will not answer our broadcast query for connected rigs on the CI-V bus.&lt;/p&gt;&lt;p&gt;If you have a modern radio with CI-V Transceive enabled, you should not need to check this box. &lt;/p&gt;&lt;p&gt;You will need to Save Settings and re-launch wfview for this to take effect. &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Manual Radio CI-V Address:</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QCheckBox" name="useCIVasRigIDChk">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Only check for older radios!&lt;/p&gt;&lt;p&gt;This checkbox forces wfview to trust that the CI-V address is also the model number of the radio. This is only useful for older radios that do not reply to our Rig ID requests (0x19 0x00). Do not check this box unless you have an older radio. &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Use CI-V address as Model ID too</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="rigCIVaddrHexLine">
<property name="enabled">
<bool>false</bool>
</property>
<property name="minimumSize">
<size>
<width>50</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>50</width>
<height>16777215</height>
</size>
</property>
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Enter the address in as hexadecimal, without any prefix, just as the radio presents the address in the menu. &lt;/p&gt;&lt;p&gt;Here are some common examples:&lt;/p&gt;
&lt;p&gt;IC-706: 58
&lt;br/&gt;IC-756: 50
&lt;br/&gt;IC-756 Pro: 5C
&lt;br/&gt;IC-756 Pro II: 64
&lt;br/&gt;IC-756 Pro III: 6E
&lt;br/&gt;IC-7000: 70
&lt;br/&gt;IC-7100: 88
&lt;br/&gt;IC-7200: 76
&lt;br/&gt;IC-7300: 94
&lt;/p&gt;&lt;p&gt;This setting is typically needed for older radios and for radios that do not have CI-V Transceive enabled. &lt;/p&gt;
&lt;p&gt;After changing, press Save Settings and re-launch wfview.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>auto</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_11">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="title">
<string>Information</string>
</property>
<property name="checkable">
<bool>false</bool>
</property>
<layout class="QVBoxLayout" name="verticalLayout_19">
<item>
<layout class="QVBoxLayout" name="verticalLayout_22">
<item>
<widget class="QLabel" name="label_53">
<property name="text">
<string>Audio controls on this page are ONLY for network radios
Please use the &quot;Radio Server&quot; page to select server audio</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_5">
<property name="topMargin">
<number>0</number>
</property>
<item>
<widget class="QGroupBox" name="groupBox_6">
<property name="title">
<string>Serial Connected Radios</string>
</property>
<layout class="QHBoxLayout" name="serialConnectedRadioLayout">
<property name="leftMargin">
<number>3</number>
</property>
<property name="topMargin">
<number>5</number>
</property>
<property name="rightMargin">
<number>3</number>
</property>
<property name="bottomMargin">
<number>5</number>
</property>
<item>
<widget class="QLabel" name="label_4">
<property name="text">
<string>Serial Device:</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="serialDeviceListCombo">
<property name="minimumSize">
<size>
<width>180</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>180</width>
<height>16777215</height>
</size>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_5">
<property name="text">
<string>Baud Rate</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="baudRateCombo">
<property name="maximumSize">
<size>
<width>120</width>
<height>16777215</height>
</size>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_4">
<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>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_7">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_15">
<property name="topMargin">
<number>0</number>
</property>
<item>
<spacer name="horizontalSpacer_5">
<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>
<spacer name="verticalSpacer">
<property name="orientation">
@ -1831,214 +1568,6 @@ Please use the &quot;Radio Server&quot; page to select server audio</string>
</widget>
<widget class="QWidget" name="userInterface">
<layout class="QVBoxLayout" name="verticalLayout_24">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_21">
<item>
<widget class="QCheckBox" name="tuningFloorZerosChk">
<property name="text">
<string>When tuning, set lower digits to zero</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="clickDragTuningEnableChk">
<property name="text">
<string>Allow tuning via click and drag (experimental)</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_10">
<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_22">
<item>
<spacer name="horizontalSpacer_12">
<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>
<spacer name="horizontalSpacer_30">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<spacer name="horizontalSpacer_11">
<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_29">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="label_43">
<property name="text">
<string>Color scheme</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="colorPresetLabel">
<property name="text">
<string>Preset:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="colorPresetCombo">
<property name="minimumSize">
<size>
<width>90</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>90</width>
<height>16777215</height>
</size>
</property>
<property name="toolTip">
<string>Select a color preset here.</string>
</property>
<item>
<property name="text">
<string>1</string>
</property>
</item>
<item>
<property name="text">
<string>2</string>
</property>
</item>
<item>
<property name="text">
<string>3</string>
</property>
</item>
<item>
<property name="text">
<string>4</string>
</property>
</item>
<item>
<property name="text">
<string>5</string>
</property>
</item>
</widget>
</item>
<item>
<widget class="QPushButton" name="colorSavePresetBtn">
<property name="toolTip">
<string>Saves the current preset to the settings file.</string>
</property>
<property name="text">
<string>Save Preset</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="colorRevertPresetBtn">
<property name="toolTip">
<string>Revert the selected color preset to the default.</string>
</property>
<property name="text">
<string>Revert</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="colorRenamePresetBtn">
<property name="toolTip">
<string>Rename the selected color preset. Max length is 10 characters.</string>
</property>
<property name="text">
<string>Rename Preset</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="colorPopOutBtn">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Pop out (or pop back in) the entire Settings tab. &lt;/p&gt;&lt;p&gt;NOTE: Press this button again to re-insert the tab when finished. &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Pop-Out</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_29">
<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>
<spacer name="verticalSpacer_2">
<property name="orientation">
@ -2057,119 +1586,7 @@ Please use the &quot;Radio Server&quot; page to select server audio</string>
<widget class="QWidget" name="radioSettings">
<layout class="QVBoxLayout" name="verticalLayout_25">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_30">
<item>
<spacer name="horizontalSpacer_15">
<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_31">
<item>
<widget class="QPushButton" name="setClockBtn">
<property name="toolTip">
<string>Press here to set the clock of the radio. The command will be sent to the radio when the seconds go to zero. </string>
</property>
<property name="text">
<string>Set Clock</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="useUTCChk">
<property name="toolTip">
<string>Check this box to set the radio's clock to UTC. Otherwise, the clock will be set to the local timezone of this computer. </string>
</property>
<property name="text">
<string>Use UTC</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="satOpsBtn">
<property name="text">
<string>Satellite Ops</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="adjRefBtn">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Click here to adjust the frequency reference on the IC-9700.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Adjust Reference</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_16">
<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_39">
<property name="topMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="label_32">
<property name="text">
<string>Manual PTT Toggle</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pttOnBtn">
<property name="text">
<string>PTT On</string>
</property>
<property name="shortcut">
<string>Ctrl+S</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pttOffBtn">
<property name="text">
<string>PTT Off</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_22">
<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>
<layout class="QHBoxLayout" name="horizontalLayout_31"/>
</item>
<item>
<spacer name="verticalSpacer_3">
@ -3295,7 +2712,4 @@ Please use the &quot;Radio Server&quot; page to select server audio</string>
</customwidgets>
<resources/>
<connections/>
<buttongroups>
<buttongroup name="buttonGroup"/>
</buttongroups>
</ui>