More work on Fox GUI.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8241 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
Joe Taylor 2017-11-16 16:33:15 +00:00
parent 5d6f0768c3
commit ac05ca7a91
3 changed files with 325 additions and 341 deletions

View File

@ -988,12 +988,7 @@ void MainWindow::writeSettings()
m_settings->setValue ("FreeText", ui->freeTextMsg->currentText ()); m_settings->setValue ("FreeText", ui->freeTextMsg->currentText ());
m_settings->setValue("ShowMenus",ui->cbMenus->isChecked()); m_settings->setValue("ShowMenus",ui->cbMenus->isChecked());
m_settings->setValue("CallFirst",ui->cbFirst->isChecked()); m_settings->setValue("CallFirst",ui->cbFirst->isChecked());
m_settings->setValue("FoxSortCall",ui->rbCall->isChecked()); m_settings->setValue("FoxSort",ui->comboBoxFoxSort->currentIndex());
m_settings->setValue("FoxSortGrid",ui->rbGrid->isChecked());
m_settings->setValue("FoxSortSNR",ui->rbSNR->isChecked());
m_settings->setValue("FoxSortDist",ui->rbDist->isChecked());
m_settings->setValue("FoxSortRandom",ui->rbRandom->isChecked());
m_settings->setValue("FoxSortReverse",ui->cbReverse->isChecked());
m_settings->setValue("FoxNsig",ui->sbNsig->value()); m_settings->setValue("FoxNsig",ui->sbNsig->value());
m_settings->setValue("FoxNslots",ui->sbNslots->value()); m_settings->setValue("FoxNslots",ui->sbNslots->value());
m_settings->setValue("FoxMaxDB",ui->sbMax_dB->value()); m_settings->setValue("FoxMaxDB",ui->sbMax_dB->value());
@ -1065,12 +1060,7 @@ void MainWindow::readSettings()
m_settings->value ("FreeText").toString ()); m_settings->value ("FreeText").toString ());
ui->cbMenus->setChecked(m_settings->value("ShowMenus",true).toBool()); ui->cbMenus->setChecked(m_settings->value("ShowMenus",true).toBool());
ui->cbFirst->setChecked(m_settings->value("CallFirst",true).toBool()); ui->cbFirst->setChecked(m_settings->value("CallFirst",true).toBool());
ui->rbCall->setChecked(m_settings->value("FoxSortCall",false).toBool()); ui->comboBoxFoxSort->setCurrentIndex(m_settings->value("FoxSort",3).toInt());
ui->rbGrid->setChecked(m_settings->value("FoxSortGrid",false).toBool());
ui->rbSNR->setChecked(m_settings->value("FoxSortSNR",true).toBool());
ui->rbDist->setChecked(m_settings->value("FoxSortDist",false).toBool());
ui->rbRandom->setChecked(m_settings->value("FoxSortRandom",false).toBool());
ui->cbReverse->setChecked(m_settings->value("FoxSortReverse",true).toBool());
ui->sbNsig->setValue(m_settings->value("FoxNsig",12).toInt()); ui->sbNsig->setValue(m_settings->value("FoxNsig",12).toInt());
ui->sbNslots->setValue(m_settings->value("FoxNslots",5).toInt()); ui->sbNslots->setValue(m_settings->value("FoxNslots",5).toInt());
ui->sbMax_dB->setValue(m_settings->value("FoxMaxDB",30).toInt()); ui->sbMax_dB->setValue(m_settings->value("FoxMaxDB",30).toInt());
@ -1166,7 +1156,8 @@ void MainWindow::setDecodedTextFont (QFont const& font)
{ {
ui->decodedTextBrowser->setContentFont (font); ui->decodedTextBrowser->setContentFont (font);
ui->decodedTextBrowser2->setContentFont (font); ui->decodedTextBrowser2->setContentFont (font);
ui->textBrowser3->setContentFont (font); ui->textBrowser3->setContentFont(font);
ui->textBrowser4->setContentFont(font);
auto style_sheet = "QLabel {" + font_as_stylesheet (font) + '}'; auto style_sheet = "QLabel {" + font_as_stylesheet (font) + '}';
ui->decodedTextLabel->setStyleSheet (ui->decodedTextLabel->styleSheet () + style_sheet); ui->decodedTextLabel->setStyleSheet (ui->decodedTextLabel->styleSheet () + style_sheet);
ui->decodedTextLabel2->setStyleSheet (ui->decodedTextLabel2->styleSheet () + style_sheet); ui->decodedTextLabel2->setStyleSheet (ui->decodedTextLabel2->styleSheet () + style_sheet);
@ -2763,13 +2754,21 @@ void MainWindow::decodeDone ()
QFile f(m_config.temp_dir().absoluteFilePath("foxcalls.txt")); QFile f(m_config.temp_dir().absoluteFilePath("foxcalls.txt"));
if(f.open(QIODevice::ReadOnly | QIODevice::Text)) { if(f.open(QIODevice::ReadOnly | QIODevice::Text)) {
QTextStream s(&f); QTextStream s(&f);
QString t=s.readAll(); // QString t=s.readAll();
QString t="";
QString t0;
QString c2;
bool b;
while(!s.atEnd()) {
t0=s.readLine();
c2=t0.mid(0,6);
b=false;
if(ui->textBrowser3->toPlainText().indexOf(c2) >= 0) b=true;
if(ui->textBrowser4->toPlainText().indexOf(c2) >= 0) b=true;
if(!b) t += (t0 + "\n"); //Don't include calls already in the queue
}
if(t.length()>30) { if(t.length()>30) {
m_isort=0; m_isort=ui->comboBoxFoxSort->currentIndex();
if(ui->rbCall->isChecked()) m_isort=1;
if(ui->rbGrid->isChecked()) m_isort=2;
if(ui->rbSNR->isChecked()) m_isort=3;
if(ui->rbDist->isChecked()) m_isort=4;
QString t1=sortFoxCalls(t,m_isort,m_min_dB,m_max_dB); QString t1=sortFoxCalls(t,m_isort,m_min_dB,m_max_dB);
ui->decodedTextBrowser->setText(t1); ui->decodedTextBrowser->setText(t1);
} }
@ -2884,7 +2883,9 @@ void MainWindow::readFromStdout() //readFromStdout
processMessage (decodedtext); processMessage (decodedtext);
ui->cbFirst->setStyleSheet(""); ui->cbFirst->setStyleSheet("");
} else { } else {
if (for_us or (abs(audioFreq - m_wideGraph->rxFreq()) <= 10)) bDisplayRight=true; //### if(m_config.bFox() and for_us and (audioFreq<1000)) bDisplayRight=true;
if(m_config.bFox() and (audioFreq<1000)) bDisplayRight=true;
if(!m_config.bFox() and (for_us or (abs(audioFreq - m_wideGraph->rxFreq()) <= 10))) bDisplayRight=true;
} }
} }
} else { } else {
@ -3462,8 +3463,7 @@ void MainWindow::guiUpdate()
} }
if(m_config.bFox()) { if(m_config.bFox()) {
QString t; QString t;
t.sprintf("DXpedition: Fox %d %d %d %d",m_isort,m_Nsig, t.sprintf("DXpedition: Fox");
m_min_dB,m_max_dB);
ui->labDXped->setText(t); ui->labDXped->setText(t);
} }
@ -3836,10 +3836,11 @@ void MainWindow::doubleClickOnCall(Qt::KeyboardModifiers modifiers)
} }
if(m_config.bFox() and m_decodedText2) { if(m_config.bFox() and m_decodedText2) {
if(m_nToBeCalled >= m_Nslots or m_nFoxCallers==0) return; if(m_nToBeCalled >= 2*m_Nslots or m_nFoxCallers==0) return;
QString t=cursor.block().text(); QString t=cursor.block().text();
QString c2=t.split(" ",QString::SkipEmptyParts).at(0); QString c2=t.split(" ",QString::SkipEmptyParts).at(0);
if(ui->textBrowser3->toPlainText().indexOf(c2) >= 0) return; //Don't allow same call twice if(ui->textBrowser3->toPlainText().indexOf(c2) >= 0) return; //Don't allow same call twice
if(ui->textBrowser4->toPlainText().indexOf(c2) >= 0) return; //Don't allow same call twice
QString g2=t.split(" ",QString::SkipEmptyParts).at(1); QString g2=t.split(" ",QString::SkipEmptyParts).at(1);
QString rpt=t.split(" ",QString::SkipEmptyParts).at(2); QString rpt=t.split(" ",QString::SkipEmptyParts).at(2);
ui->dxCallEntry->setText(c2); ui->dxCallEntry->setText(c2);
@ -3849,7 +3850,7 @@ void MainWindow::doubleClickOnCall(Qt::KeyboardModifiers modifiers)
m_FoxCallers=m_FoxCallers.remove(t+"\n"); m_FoxCallers=m_FoxCallers.remove(t+"\n");
if(m_toBeCalled.length()>0) m_toBeCalled += "\n"; if(m_toBeCalled.length()>0) m_toBeCalled += "\n";
m_toBeCalled += t; m_toBeCalled += t;
m_nToBeCalled+=1; m_nToBeCalled++;
ui->decodedTextBrowser->clear(); ui->decodedTextBrowser->clear();
ui->decodedTextBrowser->append(m_FoxCallers); ui->decodedTextBrowser->append(m_FoxCallers);
QString t1=c2 + " "; QString t1=c2 + " ";
@ -3860,10 +3861,15 @@ void MainWindow::doubleClickOnCall(Qt::KeyboardModifiers modifiers)
t2.sprintf("%1d. ",m_nToBeCalled); t2.sprintf("%1d. ",m_nToBeCalled);
t1=t2 + t1; t1=t2 + t1;
// Possible sequence of colors: // Possible sequence of colors:
// Queued: #99ffff // Queued: #99ffff
// Called: #66ff66 // QSO in progress: #66ff66
// Received R+rpt: #ff99ff (?) if(m_nToBeCalled<= m_Nslots) {
ui->textBrowser3->displayFoxToBeCalled(t1,"#99ffff"); ui->textBrowser3->displayFoxToBeCalled(t1,"#99ffff");
} else {
// ui->textBrowser4->append(t1);
ui->textBrowser4->displayFoxToBeCalled(t1,"#ffffff");
}
m_nFoxCallers--;
return; return;
} }
DecodedText message {cursor.block().text(), ("MSK144" == m_mode || "FT8" == m_mode) && DecodedText message {cursor.block().text(), ("MSK144" == m_mode || "FT8" == m_mode) &&
@ -7041,7 +7047,7 @@ QString MainWindow::sortFoxCalls(QString t, int isort, int min_dB, int max_dB)
QString ABC{"ABCDEFGHIJKLMNOPQRSTUVWXYZ"}; QString ABC{"ABCDEFGHIJKLMNOPQRSTUVWXYZ"};
QList<int> list; QList<int> list;
int i,j,k,m,n,nlines; int i,j,k,m,n,nlines;
bool bReverse=ui->cbReverse->isChecked(); bool bReverse=(isort >= 3);
isort=qAbs(isort); isort=qAbs(isort);
// Save only the most recent transmission from each caller. // Save only the most recent transmission from each caller.
@ -7123,34 +7129,6 @@ QString MainWindow::sortFoxCalls(QString t, int isort, int min_dB, int max_dB)
return m_FoxCallers; return m_FoxCallers;
} }
void MainWindow::on_rbCall_toggled(bool b)
{
if(b) {
m_isort=1;
ui->cbReverse->setChecked(false);
}
}
void MainWindow::on_rbGrid_toggled(bool b)
{
if(b) m_isort=2;
}
void MainWindow::on_rbSNR_toggled(bool b)
{
if(b) m_isort=3;
}
void MainWindow::on_rbDist_toggled(bool b)
{
if(b) m_isort=4;
}
void MainWindow::on_rbRandom_toggled(bool b)
{
if(b) m_isort=0;
}
void MainWindow::on_sbNsig_valueChanged(int n) void MainWindow::on_sbNsig_valueChanged(int n)
{ {
m_Nsig=n; m_Nsig=n;

View File

@ -282,11 +282,6 @@ private slots:
void on_actionFreqCal_triggered(); void on_actionFreqCal_triggered();
void splash_done (); void splash_done ();
void on_measure_check_box_stateChanged (int); void on_measure_check_box_stateChanged (int);
void on_rbCall_toggled(bool b);
void on_rbGrid_toggled(bool b);
void on_rbSNR_toggled(bool b);
void on_rbDist_toggled(bool b);
void on_rbRandom_toggled(bool b);
void on_sbNsig_valueChanged(int n); void on_sbNsig_valueChanged(int n);
void on_sbNslots_valueChanged(int n); void on_sbNslots_valueChanged(int n);
void on_sbMax_dB_valueChanged(int n); void on_sbMax_dB_valueChanged(int n);

View File

@ -598,7 +598,7 @@ QLabel[oob=&quot;true&quot;] {
</property> </property>
<item> <item>
<widget class="QWidget" name="QSO_controls_widget" native="true"> <widget class="QWidget" name="QSO_controls_widget" native="true">
<layout class="QHBoxLayout" name="horizontalLayout_6" stretch="0,10"> <layout class="QHBoxLayout" name="horizontalLayout_6" stretch="0,0">
<property name="leftMargin"> <property name="leftMargin">
<number>0</number> <number>0</number>
</property> </property>
@ -698,6 +698,25 @@ QLabel[oob=&quot;true&quot;] {
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="1">
<widget class="QPushButton" name="pbTxMode">
<property name="enabled">
<bool>true</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="toolTip">
<string>Toggle Tx mode</string>
</property>
<property name="text">
<string>Tx JT9 @</string>
</property>
</widget>
</item>
<item row="13" column="0" rowspan="2" colspan="2"> <item row="13" column="0" rowspan="2" colspan="2">
<widget class="QWidget" name="VHFControls_widget" native="true"> <widget class="QWidget" name="VHFControls_widget" native="true">
<layout class="QGridLayout" name="gridLayout_8"> <layout class="QGridLayout" name="gridLayout_8">
@ -773,105 +792,6 @@ QLabel[oob=&quot;true&quot;] {
</layout> </layout>
</widget> </widget>
</item> </item>
<item row="1" column="1">
<widget class="QPushButton" name="pbTxMode">
<property name="enabled">
<bool>true</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="toolTip">
<string>Toggle Tx mode</string>
</property>
<property name="text">
<string>Tx JT9 @</string>
</property>
</widget>
</item>
<item row="5" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_4">
<property name="spacing">
<number>5</number>
</property>
<item>
<widget class="QCheckBox" name="cbHoldTxFreq">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Check to keep Tx frequency fixed when double-clicking on decoded text.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Hold Tx Freq</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="4" column="1">
<widget class="QPushButton" name="pbT2R">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="toolTip">
<string>Set Rx frequency to Tx Frequency</string>
</property>
<property name="text">
<string>Rx ← Tx</string>
</property>
</widget>
</item>
<item row="9" column="1">
<widget class="QSpinBox" name="syncSpinBox">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Synchronizing threshold. Lower numbers accept weaker sync signals.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="prefix">
<string>Sync </string>
</property>
<property name="minimum">
<number>-1</number>
</property>
<property name="maximum">
<number>10</number>
</property>
<property name="value">
<number>1</number>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QSpinBox" name="RxFreqSpinBox">
<property name="toolTip">
<string>Audio Rx frequency</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="suffix">
<string> Hz</string>
</property>
<property name="prefix">
<string>Rx </string>
</property>
<property name="minimum">
<number>200</number>
</property>
<property name="maximum">
<number>5000</number>
</property>
<property name="value">
<number>1500</number>
</property>
</widget>
</item>
<item row="17" column="0"> <item row="17" column="0">
<spacer name="verticalSpacer_4"> <spacer name="verticalSpacer_4">
<property name="orientation"> <property name="orientation">
@ -910,6 +830,86 @@ QLabel[oob=&quot;true&quot;] {
</property> </property>
</widget> </widget>
</item> </item>
<item row="5" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_4">
<property name="spacing">
<number>5</number>
</property>
<item>
<widget class="QCheckBox" name="cbHoldTxFreq">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Check to keep Tx frequency fixed when double-clicking on decoded text.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Hold Tx Freq</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="9" column="1">
<widget class="QSpinBox" name="syncSpinBox">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Synchronizing threshold. Lower numbers accept weaker sync signals.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="prefix">
<string>Sync </string>
</property>
<property name="minimum">
<number>-1</number>
</property>
<property name="maximum">
<number>10</number>
</property>
<property name="value">
<number>1</number>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QPushButton" name="pbT2R">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="toolTip">
<string>Set Rx frequency to Tx Frequency</string>
</property>
<property name="text">
<string>Rx ← Tx</string>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QSpinBox" name="RxFreqSpinBox">
<property name="toolTip">
<string>Audio Rx frequency</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="suffix">
<string> Hz</string>
</property>
<property name="prefix">
<string>Rx </string>
</property>
<property name="minimum">
<number>200</number>
</property>
<property name="maximum">
<number>5000</number>
</property>
<property name="value">
<number>1500</number>
</property>
</widget>
</item>
<item row="0" column="0"> <item row="0" column="0">
<spacer name="verticalSpacer"> <spacer name="verticalSpacer">
<property name="orientation"> <property name="orientation">
@ -923,16 +923,6 @@ QLabel[oob=&quot;true&quot;] {
</property> </property>
</spacer> </spacer>
</item> </item>
<item row="1" column="0">
<widget class="QCheckBox" name="txFirstCheckBox">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Tx even/1st</string>
</property>
</widget>
</item>
<item row="7" column="1"> <item row="7" column="1">
<widget class="LettersSpinBox" name="sbSubmode"> <widget class="LettersSpinBox" name="sbSubmode">
<property name="toolTip"> <property name="toolTip">
@ -952,6 +942,55 @@ QLabel[oob=&quot;true&quot;] {
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="0">
<widget class="QCheckBox" name="txFirstCheckBox">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Tx even/1st</string>
</property>
</widget>
</item>
<item row="10" column="0" colspan="2">
<layout class="QHBoxLayout" name="horizontalLayout_11">
<item>
<widget class="QSpinBox" name="sbCQTxFreq">
<property name="enabled">
<bool>false</bool>
</property>
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Frequency to call CQ on in kHz above the current MHz&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="prefix">
<string>Tx CQ </string>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>999</number>
</property>
<property name="value">
<number>260</number>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="cbCQTx">
<property name="enabled">
<bool>false</bool>
</property>
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Check this to call CQ on the &amp;quot;Tx CQ&amp;quot; frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</item>
<item row="15" column="0" colspan="2"> <item row="15" column="0" colspan="2">
<layout class="QHBoxLayout" name="horizontalLayout_15"> <layout class="QHBoxLayout" name="horizontalLayout_15">
<item> <item>
@ -993,45 +1032,6 @@ QLabel[oob=&quot;true&quot;] {
</item> </item>
</layout> </layout>
</item> </item>
<item row="10" column="0" colspan="2">
<layout class="QHBoxLayout" name="horizontalLayout_11">
<item>
<widget class="QSpinBox" name="sbCQTxFreq">
<property name="enabled">
<bool>false</bool>
</property>
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Frequency to call CQ on in kHz above the current MHz&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="prefix">
<string>Tx CQ </string>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>999</number>
</property>
<property name="value">
<number>260</number>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="cbCQTx">
<property name="enabled">
<bool>false</bool>
</property>
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Check this to call CQ on the &amp;quot;Tx CQ&amp;quot; frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</item>
</layout> </layout>
</item> </item>
<item> <item>
@ -1626,154 +1626,165 @@ list. The list can be maintained in Settings (F2).</string>
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>10</x> <x>10</x>
<y>3</y> <y>9</y>
<width>220</width> <width>130</width>
<height>91</height> <height>110</height>
</rect> </rect>
</property> </property>
</widget> </widget>
<widget class="QGroupBox" name="groupBox"> <widget class="DisplayText" name="textBrowser4">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>10</x> <x>10</x>
<y>100</y> <y>130</y>
<width>220</width> <width>130</width>
<height>101</height> <height>110</height>
</rect> </rect>
</property> </property>
<property name="title"> </widget>
<string>Selection Order</string> <widget class="QWidget" name="">
<property name="geometry">
<rect>
<x>150</x>
<y>10</y>
<width>82</width>
<height>126</height>
</rect>
</property> </property>
<widget class="QWidget" name=""> <layout class="QVBoxLayout" name="verticalLayout_6">
<property name="geometry"> <item>
<rect> <widget class="QComboBox" name="comboBoxFoxSort">
<x>11</x> <property name="maximumSize">
<y>20</y> <size>
<width>201</width> <width>80</width>
<height>74</height> <height>16777215</height>
</rect> </size>
</property> </property>
<layout class="QGridLayout" name="gridLayout_10"> <property name="currentText">
<item row="0" column="0"> <string>S/N (dB)</string>
<widget class="QRadioButton" name="rbCall"> </property>
<property name="text"> <property name="maxVisibleItems">
<string>Call</string> <number>5</number>
</property> </property>
<property name="checked"> <item>
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QRadioButton" name="rbDist">
<property name="text">
<string>Dist</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QSpinBox" name="sbNsig">
<property name="prefix">
<string>Nsigs </string>
</property>
<property name="minimum">
<number>5</number>
</property>
<property name="maximum">
<number>20</number>
</property>
<property name="value">
<number>12</number>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QRadioButton" name="rbGrid">
<property name="text">
<string>Grid</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QRadioButton" name="rbRandom">
<property name="text"> <property name="text">
<string>Random</string> <string>Random</string>
</property> </property>
</widget> </item>
</item> <item>
<item row="1" column="2">
<widget class="QSpinBox" name="sbNslots">
<property name="suffix">
<string/>
</property>
<property name="prefix">
<string>Nslots </string>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>5</number>
</property>
<property name="value">
<number>5</number>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QRadioButton" name="rbSNR">
<property name="text"> <property name="text">
<string>S/N</string> <string>Call</string>
</property> </property>
</widget> </item>
</item> <item>
<item row="2" column="1">
<widget class="QCheckBox" name="cbReverse">
<property name="text"> <property name="text">
<string>Reverse</string> <string>Grid</string>
</property> </property>
</widget> </item>
</item> <item>
<item row="2" column="2"> <property name="text">
<widget class="QSpinBox" name="sbMax_dB"> <string>S/N (dB)</string>
<property name="prefix">
<string>Max dB </string>
</property> </property>
<property name="minimum"> </item>
<number>-15</number> <item>
<property name="text">
<string>Distance</string>
</property> </property>
<property name="maximum"> </item>
<number>30</number> </widget>
</property> </item>
<property name="value"> <item>
<number>30</number> <widget class="QSpinBox" name="sbNsig">
</property> <property name="maximumSize">
</widget> <size>
</item> <width>80</width>
</layout> <height>16777215</height>
</widget> </size>
</widget> </property>
<widget class="QSpinBox" name="sbMaxRepeats"> <property name="prefix">
<property name="geometry"> <string>N Sigs </string>
<rect> </property>
<x>20</x> <property name="minimum">
<y>200</y> <number>5</number>
<width>111</width> </property>
<height>22</height> <property name="maximum">
</rect> <number>20</number>
</property> </property>
<property name="prefix"> <property name="value">
<string>Max Repeats: </string> <number>12</number>
</property> </property>
<property name="minimum"> </widget>
<number>0</number> </item>
</property> <item>
<property name="maximum"> <widget class="QSpinBox" name="sbMax_dB">
<number>10</number> <property name="maximumSize">
</property> <size>
<property name="value"> <width>80</width>
<number>3</number> <height>16777215</height>
</property> </size>
</property>
<property name="prefix">
<string>Max dB </string>
</property>
<property name="minimum">
<number>-15</number>
</property>
<property name="maximum">
<number>30</number>
</property>
<property name="value">
<number>30</number>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="sbNslots">
<property name="maximumSize">
<size>
<width>80</width>
<height>16777215</height>
</size>
</property>
<property name="suffix">
<string/>
</property>
<property name="prefix">
<string>N Slots </string>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>5</number>
</property>
<property name="value">
<number>5</number>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="sbMaxRepeats">
<property name="maximumSize">
<size>
<width>80</width>
<height>16777215</height>
</size>
</property>
<property name="prefix">
<string>Repeats </string>
</property>
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>10</number>
</property>
<property name="value">
<number>3</number>
</property>
</widget>
</item>
</layout>
</widget> </widget>
</widget> </widget>
</widget> </widget>