diff --git a/prefs.h b/prefs.h
index 7c2bf03..ed5054e 100644
--- a/prefs.h
+++ b/prefs.h
@@ -7,7 +7,6 @@
#include "audioconverter.h"
#include "rigidentities.h"
#include "wfviewtypes.h"
-#include "udpserver.h"
enum prefIfItem {
if_useFullScreen = 1 << 0,
@@ -120,7 +119,7 @@ enum prefClusterItem {
cl_all = 1 << 9
};
-enum udpPrefsItem {
+enum prefUDPItem {
u_enabled = 1 << 0,
u_ipAddress = 1 << 1,
u_controlLANPort = 1 << 2,
@@ -207,7 +206,6 @@ struct preferences {
QString clusterTcpUserName;
QString clusterTcpPassword;
- SERVERCONFIG server; // Contains server settings
// Temporary settings
inputTypes inputDataOff=inputNone;
inputTypes inputData1=inputNone;
diff --git a/settingswidget.cpp b/settingswidget.cpp
index 81a1a22..c48f1e4 100644
--- a/settingswidget.cpp
+++ b/settingswidget.cpp
@@ -314,8 +314,8 @@ void settingswidget::updateCtPrefs(quint64 items)
}
void settingswidget::updateServerConfigs(quint64 items)
-{
- serverItems si;
+{
+ prefServerItem si;
if(items & (int)s_all)
{
items = 0xffffffff;
@@ -325,7 +325,7 @@ void settingswidget::updateServerConfigs(quint64 items)
if(items & i)
{
qDebug(logGui()) << "Updating ServerConfig" << (int)i;
- si = (serverItems)i;
+ si = (prefServerItem)i;
updateServerConfig(si);
}
}
@@ -832,6 +832,7 @@ void settingswidget::updateClusterPref(prefClusterItem pcl)
ui->clusterUdpPortLineEdit->blockSignals(false);
break;
case cl_clusterTcpServerName:
+ ui->clusterTcpAddBtn->setEnabled(false);
// Take this from the clusters list
break;
case cl_clusterTcpUserName:
@@ -855,7 +856,7 @@ void settingswidget::updateClusterPref(prefClusterItem pcl)
updatingUIFromPrefs = false;
}
-void settingswidget::updateServerConfig(serverItems si)
+void settingswidget::updateServerConfig(prefServerItem si)
{
if(serverConfig == NULL)
{
@@ -872,7 +873,7 @@ void settingswidget::updateServerConfig(serverItems si)
// Not used here
break;
case s_controlPort:
- quietlyUpdateLineEdit(ui->serverControlPortText, QString::number(serverConfig->civPort));
+ quietlyUpdateLineEdit(ui->serverControlPortText, QString::number(serverConfig->controlPort));
break;
case s_civPort:
quietlyUpdateLineEdit(ui->serverCivPortText, QString::number(serverConfig->civPort));
@@ -906,7 +907,7 @@ void settingswidget::updateServerConfig(serverItems si)
void settingswidget::updateUdpPrefs(int items)
{
- udpPrefsItem upi;
+ prefUDPItem upi;
if(items & (int)u_all)
{
items = 0xffffffff;
@@ -916,13 +917,13 @@ void settingswidget::updateUdpPrefs(int items)
if(items & i)
{
qDebug(logGui()) << "Updating UDP preference " << i;
- upi = (udpPrefsItem)i;
+ upi = (prefUDPItem)i;
updateUdpPref(upi);
}
}
}
-void settingswidget::updateUdpPref(udpPrefsItem upi)
+void settingswidget::updateUdpPref(prefUDPItem upi)
{
updatingUIFromPrefs = true;
switch(upi)
@@ -1124,14 +1125,6 @@ void settingswidget::populateServerUsers()
row++;
user++;
}
- if (row==1 && blank)
- {
- // There are no defined users. The only user present is the blank one.
- // The button is disabled, but it may be enabled
- // when the user enters valid information for a potential new
- // user account.
- ui->serverAddUserBtn->setEnabled(false);
- }
}
void settingswidget::serverAddUserLine(const QString &user, const QString &pass, const int &type)
@@ -1281,95 +1274,23 @@ void settingswidget::on_settingsList_currentRowChanged(int currentRow)
ui->settingsStack->setCurrentIndex(currentRow);
}
-void settingswidget::onServerUserFieldChanged()
-{
- if(!haveServerConfig) {
- qCritical(logGui()) << "Do not have serverConfig, cannot edit users.";
- return;
- }
- int row = sender()->property("row").toInt();
- int col = sender()->property("col").toInt();
- qDebug() << "Server User field col" << col << "row" << row << "changed";
-
- // This is a new user line so add to serverUsersTable
- if (serverConfig->users.length() <= row)
- {
- qInfo() << "Something bad has happened, serverConfig.users is shorter than table!";
- }
- else
- {
- if (col == 0)
- {
- QLineEdit* username = (QLineEdit*)ui->serverUsersTable->cellWidget(row, 0);
- if (username->text() != serverConfig->users[row].username) {
- serverConfig->users[row].username = username->text();
- }
- }
- else if (col == 1)
- {
- QLineEdit* password = (QLineEdit*)ui->serverUsersTable->cellWidget(row, 1);
- QByteArray pass;
- passcode(password->text(), pass);
- if (QString(pass) != serverConfig->users[row].password) {
- serverConfig->users[row].password = pass;
- }
- }
- else if (col == 2)
- {
- QComboBox* comboBox = (QComboBox*)ui->serverUsersTable->cellWidget(row, 2);
- serverConfig->users[row].userType = comboBox->currentIndex();
- }
- else if (col == 3)
- {
- serverConfig->users.removeAt(row);
- ui->serverUsersTable->setRowCount(0);
- foreach(SERVERUSER user, serverConfig->users)
- {
- serverAddUserLine(user.username, user.password, user.userType);
- }
- }
- if (row == ui->serverUsersTable->rowCount() - 1) {
- ui->serverAddUserBtn->setEnabled(true);
- }
-
- }
-}
-
void settingswidget::on_lanEnableBtn_clicked(bool checked)
{
// TODO: prefs.enableLAN = checked;
// TOTO? ui->connectBtn->setEnabled(true); // move to other side
ui->groupNetwork->setEnabled(checked);
ui->groupSerial->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);
-*/
+
prefs->enableLAN = checked;
emit changedLanPref(l_enableLAN);
}
void settingswidget::on_serialEnableBtn_clicked(bool checked)
{
- prefs->enableLAN = !checked;
ui->groupSerial->setEnabled(checked);
ui->groupNetwork->setEnabled(!checked);
+
+ prefs->enableLAN = !checked;
emit changedLanPref(l_enableLAN);
}
@@ -1736,11 +1657,12 @@ void settingswidget::on_clusterTcpEnable_clicked(bool checked)
emit changedClusterPref(cl_clusterTcpEnable);
}
-void settingswidget::on_clusterTcpSetNowBtn_clicked()
+void settingswidget::on_clusterTcpAddBtn_clicked()
{
// Maybe this will be easier than "hit enter" ?
int index = ui->clusterServerNameCombo->currentIndex();
on_clusterServerNameCombo_currentIndexChanged(index);
+ ui->clusterTcpAddBtn->setEnabled(false);
}
void settingswidget::on_clusterServerNameCombo_currentTextChanged(const QString &text)
@@ -1757,6 +1679,7 @@ void settingswidget::on_clusterServerNameCombo_currentTextChanged(const QString
ui->clusterTimeoutLineEdit->setEnabled(false);
}
}
+ ui->clusterTcpAddBtn->setEnabled(true);
}
void settingswidget::on_clusterTcpPortLineEdit_editingFinished()
@@ -1768,7 +1691,7 @@ void settingswidget::on_clusterTcpPortLineEdit_editingFinished()
//emit setClusterTcpPort(clusters[index].port);
prefs->clusterTcpPort = clusters[index].port;
emit changedClusterPref(cl_clusterTcpPort);
- }
+ }
}
void settingswidget::on_clusterUsernameLineEdit_editingFinished()
@@ -2594,43 +2517,91 @@ void settingswidget::on_serverTXAudioOutputCombo_currentIndexChanged(int index)
void settingswidget::on_serverEnableCheckbox_clicked(bool checked)
{
serverConfig->enabled = checked;
- emit changedServerConfig(s_enabled);
+ emit changedServerPref(s_enabled);
}
-void settingswidget::on_serverAddUserBtn_clicked()
+void settingswidget::on_serverControlPortText_textChanged(QString text)
{
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);
+ emit changedServerPref(s_controlPort);
}
void settingswidget::on_serverCivPortText_textChanged(QString text)
{
+ if(!haveServerConfig)
+ {
+ qCritical(logGui()) << "Cannot modify users without valid serverConfig.";
+ return;
+ }
serverConfig->civPort = text.toInt();
- emit changedServerConfig(s_civPort);
+ emit changedServerPref(s_civPort);
}
void settingswidget::on_serverAudioPortText_textChanged(QString text)
{
+ if(!haveServerConfig)
+ {
+ qCritical(logGui()) << "Cannot modify users without valid serverConfig.";
+ return;
+ }
serverConfig->audioPort = text.toInt();
- emit changedServerConfig(s_audioPort);
+ emit changedServerPref(s_audioPort);
}
+
+void settingswidget::onServerUserFieldChanged()
+{
+ if(!haveServerConfig) {
+ qCritical(logGui()) << "Do not have serverConfig, cannot edit users.";
+ return;
+ }
+ int row = sender()->property("row").toInt();
+ int col = sender()->property("col").toInt();
+ qDebug() << "Server User field col" << col << "row" << row << "changed";
+
+ // This is a new user line so add to serverUsersTable
+ if (serverConfig->users.length() <= row)
+ {
+ qInfo() << "Something bad has happened, serverConfig.users is shorter than table!";
+ }
+ else
+ {
+ if (col == 0)
+ {
+ QLineEdit* username = (QLineEdit*)ui->serverUsersTable->cellWidget(row, 0);
+ if (username->text() != serverConfig->users[row].username) {
+ serverConfig->users[row].username = username->text();
+ }
+ }
+ else if (col == 1)
+ {
+ QLineEdit* password = (QLineEdit*)ui->serverUsersTable->cellWidget(row, 1);
+ QByteArray pass;
+ passcode(password->text(), pass);
+ if (QString(pass) != serverConfig->users[row].password) {
+ serverConfig->users[row].password = pass;
+ }
+ }
+ else if (col == 2)
+ {
+ QComboBox* comboBox = (QComboBox*)ui->serverUsersTable->cellWidget(row, 2);
+ serverConfig->users[row].userType = comboBox->currentIndex();
+ }
+ else if (col == 3)
+ {
+ serverConfig->users.removeAt(row);
+ ui->serverUsersTable->setRowCount(0);
+ foreach(SERVERUSER user, serverConfig->users)
+ {
+ serverAddUserLine(user.username, user.password, user.userType);
+ }
+ }
+ }
+}
/* End of UDP Server settings */
diff --git a/settingswidget.h b/settingswidget.h
index 241094a..14e83d1 100644
--- a/settingswidget.h
+++ b/settingswidget.h
@@ -61,9 +61,9 @@ public slots:
void updateCtPref(prefCtItem pct);
void updateLanPref(prefLanItem plan);
void updateClusterPref(prefClusterItem pcl);
- void updateServerConfig(serverItems si);
+ void updateServerConfig(prefServerItem si);
- void updateUdpPref(udpPrefsItem upi);
+ void updateUdpPref(prefUDPItem upi);
void updateUdpPrefs(int items);
@@ -79,7 +79,7 @@ signals:
void changedLanPrefs(quint64 items);
void changedClusterPrefs(quint64 items);
void changedUdpPrefs(quint64 items);
- void changedServerConfigs(quint64 items);
+ void changedServerPrefs(quint64 items);
void changedAudioOutputCombo(int index);
void changedAudioInputCombo(int index);
@@ -93,8 +93,8 @@ signals:
void changedCtPref(prefCtItem i);
void changedLanPref(prefLanItem i);
void changedClusterPref(prefClusterItem i);
- void changedUdpPref(udpPrefsItem i);
- void changedServerConfig(serverItems i);
+ void changedUdpPref(prefUDPItem i);
+ void changedServerPref(prefServerItem i);
void changedModInput(uchar num, inputTypes input);
@@ -137,7 +137,7 @@ private slots:
void on_clusterServerNameCombo_currentIndexChanged(int index);
void on_clusterUdpEnable_clicked(bool checked);
void on_clusterTcpEnable_clicked(bool checked);
- void on_clusterTcpSetNowBtn_clicked();
+ void on_clusterTcpAddBtn_clicked();
void on_clusterServerNameCombo_currentTextChanged(const QString &arg1);
void on_clusterTcpPortLineEdit_editingFinished();
void on_clusterUsernameLineEdit_editingFinished();
@@ -160,8 +160,6 @@ private slots:
void on_audioTXCodecCombo_currentIndexChanged(int value);
void on_audioSampleRateCombo_currentIndexChanged(int value);
- void on_serverAddUserBtn_clicked();
-
void on_modInputCombo_activated(int index);
void on_modInputData1Combo_activated(int index);
void on_modInputData2Combo_activated(int index);
diff --git a/settingswidget.ui b/settingswidget.ui
index 31753c5..9326e8e 100644
--- a/settingswidget.ui
+++ b/settingswidget.ui
@@ -41,7 +41,7 @@
-
- 3
+ 5
@@ -1235,8 +1235,8 @@ ONLY use Manual CI-V when Transceive mode is not supported
0
0
- 925
- 332
+ 453
+ 235
@@ -2464,112 +2464,6 @@ ONLY use Manual CI-V when Transceive mode is not supported
-
-
-
-
-
-
- 0
- 0
-
-
-
-
- 130
- 25
-
-
-
-
- 130
- 25
-
-
-
- 99999
-
-
- 50001
-
-
- true
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 400
- 160
-
-
-
-
- 750
- 330
-
-
-
- QFrame::StyledPanel
-
-
- 1
-
-
- 0
-
-
- 4
-
-
- false
-
-
- 100
-
-
- false
-
-
- true
-
-
- false
-
-
- true
-
-
- false
-
-
-
- Username
-
-
-
-
- Password
-
-
-
-
- Admin
-
-
-
-
- Delete?
-
-
-
-
-
@@ -2661,28 +2555,7 @@ ONLY use Manual CI-V when Transceive mode is not supported
-
-
-
-
-
-
- Add User
-
-
-
- -
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
-
-
+
-
@@ -3022,8 +2895,8 @@ ONLY use Manual CI-V when Transceive mode is not supported
10
50
- 201
- 181
+ 221
+ 241
@@ -3034,8 +2907,8 @@ ONLY use Manual CI-V when Transceive mode is not supported
20
40
- 161
- 121
+ 181
+ 171
@@ -3066,9 +2939,9 @@ ONLY use Manual CI-V when Transceive mode is not supported
- 330
+ 250
50
- 311
+ 391
241
@@ -3078,44 +2951,13 @@ ONLY use Manual CI-V when Transceive mode is not supported
- 20
- 40
- 271
- 186
+ 10
+ 30
+ 351
+ 192
-
-
-
-
- Server Name
-
-
-
- -
-
-
- Username
-
-
-
- -
-
-
- -
-
-
- Password
-
-
-
- -
-
-
- QLineEdit::PasswordEchoOnEdit
-
-
-
-
@@ -3123,24 +2965,52 @@ ONLY use Manual CI-V when Transceive mode is not supported
- -
-
-
- true
-
-
- true
+
-
+
+
+ Server Port
+ -
+
+
+ 00000
+
+
+
+ -
+
+
+ Username
+
+
+
+ -
+
+
-
+
+
+ Password
+
+
+
+ -
+
+
+ QLineEdit::PasswordEchoOnEdit
+
+
+
+ -
Spot Timeout (minutes)
- -
+
-
0000
@@ -3150,24 +3020,37 @@ ONLY use Manual CI-V when Transceive mode is not supported
- -
-
-
- Server Port
-
-
+
-
+
+
-
+
+
+ true
+
+
+ true
+
+
+
+ -
+
+
+
+ 50
+ 50
+
+
+
+ Add
+
+
+
+
- -
-
-
- 00000
-
-
-
- -
-
+
-
+
- SetNow
+ Server Name
diff --git a/spectrumscope.cpp b/spectrumscope.cpp
index 986fc67..3d5dc41 100644
--- a/spectrumscope.cpp
+++ b/spectrumscope.cpp
@@ -36,7 +36,15 @@ spectrumScope::spectrumScope(QWidget *parent)
edgeButton->setToolTip("Define a custom (fixed) scope edge");
toFixedButton = new QPushButton("To Fixed");
toFixedButton->setToolTip("<html><head/><body><p>Press button to convert center mode spectrum to fixed mode, preserving the range. This allows you to tune without the spectrum moving, in the same currently-visible range that you see now. </p><p><br/></p><p>The currently-selected edge slot will be overridden.</p></body></html>");
- //themeLabel = new QLabel("Theme:");
+
+ holdButton = new QPushButton("HOLD");
+ holdButton->setCheckable(true);
+ holdButton->setFocusPolicy(Qt::NoFocus);
+ speedCombo = new QComboBox();
+ speedCombo->addItem("Speed Fast",QVariant::fromValue(uchar(0)));
+ speedCombo->addItem("Speed Mid",QVariant::fromValue(uchar(1)));
+ speedCombo->addItem("Speed Slow",QVariant::fromValue(uchar(2)));
+
controlSpacer = new QSpacerItem(0,0,QSizePolicy::Expanding,QSizePolicy::Fixed);
midSpacer = new QSpacerItem(0,0,QSizePolicy::Expanding,QSizePolicy::Fixed);
clearPeaksButton = new QPushButton("Clear Peaks");
@@ -66,15 +74,13 @@ spectrumScope::spectrumScope(QWidget *parent)
layout->addLayout(controlLayout);
controlLayout->addWidget(enableCheckBox);
- //controlLayout->addWidget(scopeModeLabel);
controlLayout->addWidget(scopeModeCombo);
- //controlLayout->addWidget(spanLabel);
controlLayout->addWidget(spanCombo);
- //controlLayout->addWidget(edgeLabel);
controlLayout->addWidget(edgeCombo);
controlLayout->addWidget(edgeButton);
controlLayout->addWidget(toFixedButton);
- //controlLayout->addWidget(themeLabel);
+ controlLayout->addWidget(holdButton);
+ controlLayout->addWidget(speedCombo);
controlLayout->addSpacerItem(controlSpacer);
controlLayout->addWidget(modeCombo);
controlLayout->addWidget(dataCombo);
@@ -185,6 +191,9 @@ spectrumScope::spectrumScope(QWidget *parent)
connect(edgeCombo,SIGNAL(currentIndexChanged(int)),this,SLOT(updatedEdge(int)));
connect(edgeButton,SIGNAL(pressed()), this, SLOT(customSpanPressed()));
+ connect(speedCombo,SIGNAL(currentIndexChanged(int)),this,SLOT(updatedSpeed(int)));
+ connect(holdButton,SIGNAL(toggled(bool)), this, SLOT(holdPressed(bool)));
+
connect(modeCombo,SIGNAL(currentIndexChanged(int)),this,SLOT(updatedMode(int)));
connect(filterCombo,SIGNAL(currentIndexChanged(int)),this,SLOT(updatedMode(int)));
connect(dataCombo,SIGNAL(currentIndexChanged(int)),this,SLOT(updatedMode(int)));
@@ -1250,3 +1259,21 @@ void spectrumScope::receivePassband(quint16 pass)
emit showStatusBarText(QString("%0 IF filter width %1 Hz (%2 MHz)").arg(sub?"Sub":"Main").arg(pass).arg(passbandWidth));
}
}
+
+void spectrumScope::selected(bool en)
+{
+ if (en)
+ this->setStyleSheet("QGroupBox { border:2px solid red;}");
+ else
+ this->setStyleSheet("QGroupBox { border:2px solid gray;}");
+}
+
+void spectrumScope::updatedSpeed(int index)
+{
+ queue->add(priorityImmediate,queueItem(sub?funcScopeSubSpeed:funcScopeMainSpeed,this->speedCombo->itemData(index),false,sub));
+}
+
+void spectrumScope::holdPressed(bool en)
+{
+ queue->add(priorityImmediate,queueItem(sub?funcScopeSubHold:funcScopeMainHold,QVariant::fromValue(en),false,sub));
+}
diff --git a/spectrumscope.h b/spectrumscope.h
index 343031f..c81f261 100644
--- a/spectrumscope.h
+++ b/spectrumscope.h
@@ -81,7 +81,7 @@ public:
void addData(QString text, QVariant data) {dataCombo->blockSignals(true); dataCombo->addItem(text,data); dataCombo->blockSignals(false);}
void addFilter(QString text, QVariant data) {filterCombo->blockSignals(true); filterCombo->addItem(text,data); filterCombo->blockSignals(false);}
-
+ void selected(bool);
public slots: // Can be called directly or updated via signal/slot
void selectScopeMode(spectrumMode_t m);
@@ -100,6 +100,8 @@ private slots:
void updatedTheme(int index);
void updatedEdge(int index);
void updatedMode(int index);
+ void updatedSpeed(int index);
+ void holdPressed(bool en);
void toFixedPressed();
void customSpanPressed();
@@ -143,6 +145,9 @@ private:
QComboBox* dataCombo;
QComboBox* filterCombo;
QComboBox* antennaCombo;
+ QPushButton* holdButton;
+ QComboBox* speedCombo;
+
QCheckBox* rxCheckBox;
QComboBox* themeCombo;
diff --git a/udpserver.h b/udpserver.h
index fd9ce39..b299769 100644
--- a/udpserver.h
+++ b/udpserver.h
@@ -94,7 +94,7 @@ struct SERVERCONFIG {
QList rigs;
};
-enum serverItems {
+enum prefServerItem {
s_enabled = 1 << 0,
s_lan = 1 << 1,
s_controlPort = 1 << 2,
diff --git a/wfmain.cpp b/wfmain.cpp
index 0cc585c..1b776ec 100644
--- a/wfmain.cpp
+++ b/wfmain.cpp
@@ -1168,9 +1168,12 @@ void wfmain::connectSettingsWidget()
connect(setupui, SIGNAL(changedRsPref(prefRsItem)), this, SLOT(extChangedRsPref(prefRsItem)));
connect(setupui, SIGNAL(changedRsPrefs(quint64)), this, SLOT(extChangedRsPrefs(quint64)));
- connect(setupui, SIGNAL(changedUdpPref(udpPrefsItem)), this, SLOT(extChangedUdpPref(udpPrefsItem)));
+ connect(setupui, SIGNAL(changedUdpPref(prefUDPItem)), this, SLOT(extChangedUdpPref(prefUDPItem)));
connect(setupui, SIGNAL(changedUdpPrefs(quint64)), this, SLOT(extChangedUdpPrefs(quint64)));
+ connect(setupui, SIGNAL(changedServerPref(prefServerItem)), this, SLOT(extChangedServerPref(prefServerItem)));
+ connect(setupui, SIGNAL(changedServerPrefs(quint64)), this, SLOT(extChangedServerPrefs(quint64)));
+
connect(this, SIGNAL(haveClusterList(QList)), setupui, SLOT(copyClusterList(QList)));
connect(setupui, SIGNAL(changedAudioInputCombo(int)), this, SLOT(changedAudioInput(int)));
@@ -1288,7 +1291,7 @@ void wfmain::setServerToPrefs()
{
// Start server if enabled in config
- ui->serverSetupGroup->setEnabled(serverConfig.enabled);
+ //ui->serverSetupGroup->setEnabled(serverConfig.enabled);
if (serverThread != Q_NULLPTR) {
serverThread->quit();
serverThread->wait();
@@ -2626,7 +2629,7 @@ void wfmain::extChangedClusterPrefs(quint64 items)
void wfmain::extChangedUdpPrefs(quint64 items)
{
- udpPrefsItem upi;
+ prefUDPItem upi;
if(items & (int)u_all)
{
items = 0xffffffff;
@@ -2636,12 +2639,31 @@ void wfmain::extChangedUdpPrefs(quint64 items)
if(items & i)
{
qDebug(logSystem()) << "Updating UDP preference in wfmain:" << i;
- upi = (udpPrefsItem)i;
+ upi = (prefUDPItem)i;
extChangedUdpPref(upi);
}
}
}
+
+void wfmain::extChangedServerPrefs(quint64 items)
+{
+ prefServerItem svi;
+ if(items & (int)u_all)
+ {
+ items = 0xffffffff;
+ }
+ for(int i=1; i < (int)u_all; i = i << 1)
+ {
+ if(items & i)
+ {
+ qDebug(logSystem()) << "Updating Server preference in wfmain:" << i;
+ svi = (prefServerItem)i;
+ extChangedServerPref(svi);
+ }
+ }
+}
+
void wfmain::extChangedIfPref(prefIfItem i)
{
prefs.settingsChanged = true;
@@ -2989,7 +3011,7 @@ void wfmain::extChangedClusterPref(prefClusterItem i)
}
}
-void wfmain::extChangedUdpPref(udpPrefsItem i)
+void wfmain::extChangedUdpPref(prefUDPItem i)
{
prefs.settingsChanged = true;
switch(i)
@@ -3038,6 +3060,41 @@ void wfmain::extChangedUdpPref(udpPrefsItem i)
}
}
+
+void wfmain::extChangedServerPref(prefServerItem i)
+{
+ prefs.settingsChanged = true;
+ switch(i)
+ {
+ case s_enabled:
+ setServerToPrefs();
+ break;
+ case s_lan:
+ break;
+ case s_controlPort:
+ break;
+ case s_civPort:
+ break;
+ case s_audioPort:
+ break;
+ case s_audioOutput:
+ break;
+ case s_audioInput:
+ break;
+ case s_resampleQuality:
+ break;
+ case s_baudRate:
+ break;
+ case s_users:
+ break;
+ case s_rigs:
+ break;
+ default:
+ qWarning(logGui()) << "Did not find matching pref element in wfmain for Server pref item " << (int)i;
+ break;
+ }
+}
+
void wfmain::serverAddUserLine(const QString& user, const QString& pass, const int& type)
{
// migrated
@@ -4456,64 +4513,43 @@ void wfmain::initPeriodicCommands()
// Can be run multiple times as it will remove all existing entries.
queue->clear();
- queue->add(priorityMedium,(rigCaps.commands.contains(funcSelectedFreq)?funcSelectedFreq:funcFreqGet),true,false);
- queue->add(priorityMedium,(rigCaps.commands.contains(funcSelectedMode)?funcSelectedMode:funcModeGet),true,false);
- queue->add(priorityMedium,(rigCaps.commands.contains(funcSelectedMode)?funcNone:funcDataModeWithFilter),true,false);
- queue->add(priorityMedium,(rigCaps.commands.contains(funcUnselectedFreq)?funcUnselectedFreq:funcNone),true,true);
- queue->add(priorityMedium,(rigCaps.commands.contains(funcUnselectedMode)?funcUnselectedMode:funcNone),true,true);
-
- if(rigCaps.hasTransmit) {
- queue->add(priorityHigh,funcTransceiverStatus,true,false);
- queue->add(priorityMediumHigh,(rigCaps.commands.contains(funcDATAOffMod)?funcDATAOffMod:funcNone),true,false);
- queue->add(priorityMediumHigh,(rigCaps.commands.contains(funcDATA1Mod)?funcDATA1Mod:funcNone),true,false);
- queue->add(priorityMediumHigh,(rigCaps.commands.contains(funcDATA2Mod)?funcDATA2Mod:funcNone),true,false);
- queue->add(priorityMediumHigh,(rigCaps.commands.contains(funcDATA3Mod)?funcDATA3Mod:funcNone),true,false);
- }
- if (rigCaps.commands.contains(funcRFPower))
- queue->add(priorityMedium,funcRFPower,true,false);
-
- if (rigCaps.commands.contains(funcRfGain))
- queue->add(priorityMedium,funcRfGain,true,false);
-
- if (rigCaps.commands.contains(funcMonitorGain))
- queue->add(priorityMediumLow,funcMonitorGain,true,false);
-
- if (rigCaps.commands.contains(funcMonitor))
- queue->add(priorityMediumLow,funcMonitor,true,false);
-
- if(rigCaps.commands.contains(funcAttenuator))
- queue->add(priorityMediumLow,funcAttenuator,true,false);
-
- if(rigCaps.commands.contains(funcPreamp))
- queue->add(priorityMediumLow,funcPreamp,true,false);
-
- if (rigCaps.commands.contains(funcAntenna))
- queue->add(priorityMediumLow,funcAntenna,true,false);
-
- if (rigCaps.commands.contains(funcSplitStatus))
- queue->add(priorityMediumLow,funcSplitStatus,true,false);
-
- if(rigCaps.commands.contains(funcToneSquelchType))
- queue->add(priorityMediumLow,funcToneSquelchType,true,false);
-
- if (rigCaps.commands.contains(funcSMeter))
- queue->add(priorityHighest,queueItem(funcSMeter,true,false));
-
- if (rigCaps.commands.contains(funcOverflowStatus))
- queue->add(priorityHigh,queueItem(funcOverflowStatus,true,false));
+ queue->add(priorityMedium,funcSelectedFreq,true,false);
+ queue->add(priorityMedium,funcSelectedMode,true,false);
+ //queue->add(priorityMedium,(rigCaps.commands.contains(funcSelectedMode)?funcNone:funcDataModeWithFilter),true,false);
+ queue->add(priorityMedium,funcUnselectedFreq,true,true);
+ queue->add(priorityMedium,funcUnselectedMode,true,true);
if (rigCaps.hasSpectrum)
{
- queue->add(priorityMediumHigh,queueItem(rigCaps.commands.contains(funcScopeMainMode)?funcScopeMainMode:funcNone,true,false));
- queue->add(priorityMediumHigh,queueItem(rigCaps.commands.contains(funcScopeSubMode)?funcScopeSubMode:funcNone,true,false));
-
- queue->add(priorityMediumHigh,queueItem(rigCaps.commands.contains(funcScopeMainSpan)?funcScopeMainSpan:funcNone,true,false));
- queue->add(priorityMediumHigh,queueItem(rigCaps.commands.contains(funcScopeSubSpan)?funcScopeSubSpan:funcNone,true,false));
-
+ queue->add(priorityHigh,funcOverflowStatus,true,false);
+ queue->add(priorityMediumHigh,funcScopeMainMode,true,false);
+ queue->add(priorityMediumHigh,funcScopeSubMode,true,false);
+ queue->add(priorityMediumHigh,funcScopeMainSpan,true,false);
+ queue->add(priorityMediumHigh,funcScopeSubSpan,true,false);
queue->add(priorityMediumHigh,queueItem(funcScopeSingleDual,true,false));
queue->add(priorityMediumHigh,queueItem(funcScopeMainSub,true,false));
}
+
+ if(rigCaps.hasTransmit) {
+ queue->add(priorityHigh,funcTransceiverStatus,true,false);
+ queue->add(priorityMediumHigh,funcDATAOffMod,true,false);
+ queue->add(priorityMediumHigh,funcDATA1Mod,true,false);
+ queue->add(priorityMediumHigh,funcDATA2Mod,true,false);
+ queue->add(priorityMediumHigh,funcDATA3Mod,true,false);
+ queue->add(priorityMedium,funcRFPower,true,false);
+ queue->add(priorityMediumLow,funcMonitorGain,true,false);
+ queue->add(priorityMediumLow,funcMonitor,true,false);
+ }
+
+ queue->add(priorityMedium,funcRfGain,true,false);
+ queue->add(priorityMediumLow,funcAttenuator,true,false);
+ queue->add(priorityMediumLow,funcPreamp,true,false);
+ queue->add(priorityMediumLow,funcAntenna,true,false);
+ queue->add(priorityMediumLow,funcSplitStatus,true,false);
+ queue->add(priorityMediumLow,funcToneSquelchType,true,false);
+
+ queue->add(priorityHighest,queueItem(funcSMeter,true,false));
}
void wfmain::receiveFreq(freqt freqStruct)
@@ -7263,21 +7299,30 @@ void wfmain::receiveValue(cacheItem val){
case funcScopeMainSub:
{
// This tells us whether we are receiving main or sub data
- bool sub = val.value.value();
- if (!sub && !ui->mainScope->isVisible()) {
+ subScope = val.value.value();
+ if (!subScope && !ui->mainScope->isVisible()) {
ui->subScope->setVisible(false);
ui->mainScope->setVisible(true);
- } else if (sub && !ui->subScope->isVisible()) {
+ } else if (subScope && !ui->subScope->isVisible()) {
ui->mainScope->setVisible(false);
ui->subScope->setVisible(true);
}
+
+ if (dualScope) {
+ ui->mainScope->selected(!subScope);
+ ui->subScope->selected(subScope);
+ } else {
+ ui->mainScope->selected(false);
+ ui->subScope->selected(false);
+ }
+
break;
}
case funcScopeSingleDual:
{
// This tells us whether we are receiving single or dual scopes
- bool dual = val.value.value();
- if (dual) {
+ dualScope = val.value.value();
+ if (dualScope) {
if (!ui->subScope->isVisible())
{
ui->subScope->setVisible(true);
@@ -7364,6 +7409,19 @@ void wfmain::on_showSettingsBtn_clicked()
showAndRaiseWidget(setupui);
}
+void wfmain::on_scopeMainSubBtn_clicked()
+{
+ subScope = !subScope;
+ queue->add(priorityImmediate,queueItem(funcScopeMainSub,QVariant::fromValue(subScope),false,false));
+}
+
+void wfmain::on_scopeDualBtn_clicked()
+{
+ dualScope = !dualScope;
+ queue->add(priorityImmediate,queueItem(funcScopeSingleDual,QVariant::fromValue(dualScope),false,false));
+ queue->add(priorityImmediate,funcScopeMainSub,false,false);
+}
+
/* USB Hotplug support added at the end of the file for convenience */
#ifdef USB_HOTPLUG
diff --git a/wfmain.h b/wfmain.h
index e0b3cc3..e90ced0 100644
--- a/wfmain.h
+++ b/wfmain.h
@@ -313,6 +313,7 @@ private slots:
void extChangedLanPrefs(quint64 items);
void extChangedClusterPrefs(quint64 items);
void extChangedUdpPrefs(quint64 items);
+ void extChangedServerPrefs(quint64 items);
void extChangedIfPref(prefIfItem i);
void extChangedColPref(prefColItem i);
@@ -321,7 +322,8 @@ private slots:
void extChangedCtPref(prefCtItem i);
void extChangedLanPref(prefLanItem i);
void extChangedClusterPref(prefClusterItem i);
- void extChangedUdpPref(udpPrefsItem i);
+ void extChangedUdpPref(prefUDPItem i);
+ void extChangedServerPref(prefServerItem i);
void enableUsbControllers(bool enabled);
@@ -549,6 +551,9 @@ private slots:
void on_rigCreatorBtn_clicked();
+ void on_scopeMainSubBtn_clicked();
+ void on_scopeDualBtn_clicked();
+
private:
Ui::wfmain *ui;
void closeEvent(QCloseEvent *event);
@@ -850,6 +855,9 @@ private:
double pbtDefault = 0.0;
quint16 cwPitch = 600;
+ bool subScope = false;
+ bool dualScope = false;
+
availableBands lastRequestedBand=bandGen;
SERVERCONFIG serverConfig;
diff --git a/wfmain.ui b/wfmain.ui
index 552dcba..6445917 100644
--- a/wfmain.ui
+++ b/wfmain.ui
@@ -1371,6 +1371,79 @@
0
+ -
+
+
+ Scope Settings
+
+
+
+ 4
+
+
+ 4
+
+
+ 4
+
+
+ 4
+
+
-
+
+
+ 3
+
+
-
+
+
+
+ 16777215
+ 16777215
+
+
+
+ Main/Sub
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 16777215
+ 16777215
+
+
+
+ Dual
+
+
+
+
+
+
+
+
-