Added software filter to waterfall controls to allow for a way to skip decoding signals outside of the filter range. Useful in a crowded band to prevent decodes from polluting your RX window
This commit is contained in:
parent
24f1c5f343
commit
bf5570cacd
13
commons.h
13
commons.h
@ -87,15 +87,14 @@ extern struct dec_data {
|
|||||||
int nutc; // UTC as integer, HHMM
|
int nutc; // UTC as integer, HHMM
|
||||||
bool ndiskdat; // true ==> data read from *.wav file
|
bool ndiskdat; // true ==> data read from *.wav file
|
||||||
int ntrperiod; // TR period (seconds)
|
int ntrperiod; // TR period (seconds)
|
||||||
int nQSOProgress; /* QSO state machine state */
|
int nQSOProgress; // QSO state machine state
|
||||||
int nfqso; // User-selected QSO freq (kHz)
|
int nfqso; // User-selected QSO freq (kHz)
|
||||||
int nftx; /* Transmit audio offset where
|
int nftx; // Transmit audio offset where replies might be expected
|
||||||
replies might be expected */
|
|
||||||
bool newdat; // true ==> new data, must do long FFT
|
bool newdat; // true ==> new data, must do long FFT
|
||||||
int npts8; // npts for c0() array
|
int npts8; // npts for c0() array
|
||||||
int nfa; //Low decode limit (Hz)
|
int nfa; // Low decode limit (Hz) (filter min)
|
||||||
int nfSplit; // JT65 | JT9 split frequency
|
int nfSplit; // JT65 | JT9 split frequency
|
||||||
int nfb; //High decode limit (Hz)
|
int nfb; // High decode limit (Hz) (filter max)
|
||||||
int ntol; // +/- decoding range around fQSO (Hz)
|
int ntol; // +/- decoding range around fQSO (Hz)
|
||||||
int kin; // number of frames written to d2
|
int kin; // number of frames written to d2
|
||||||
int kposA; // starting position of decode for submode A
|
int kposA; // starting position of decode for submode A
|
||||||
@ -109,8 +108,8 @@ extern struct dec_data {
|
|||||||
int kszE; // number of frames for decode for submode E
|
int kszE; // number of frames for decode for submode E
|
||||||
int kszI; // number of frames for decode for submode I
|
int kszI; // number of frames for decode for submode I
|
||||||
int nzhsym; // half symbol stop index
|
int nzhsym; // half symbol stop index
|
||||||
int nsubmode;
|
int nsubmode; // which submode to decode (-1 if using nsubmodes)
|
||||||
int nsubmodes;
|
int nsubmodes; // which submodes to decode
|
||||||
bool nagain;
|
bool nagain;
|
||||||
int ndepth;
|
int ndepth;
|
||||||
bool lft8apon;
|
bool lft8apon;
|
||||||
|
@ -2534,6 +2534,18 @@ int MainWindow::computePeriodForSubmode(int submode){
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int MainWindow::computeBandwidthForSubmode(int submode){
|
||||||
|
switch(submode){
|
||||||
|
case Varicode::JS8CallNormal: return 8 * RX_SAMPLE_RATE / JS8A_SYMBOL_SAMPLES;
|
||||||
|
case Varicode::JS8CallFast: return 8 * RX_SAMPLE_RATE / JS8B_SYMBOL_SAMPLES;
|
||||||
|
case Varicode::JS8CallTurbo: return 8 * RX_SAMPLE_RATE / JS8C_SYMBOL_SAMPLES;
|
||||||
|
case Varicode::JS8CallSlow: return 8 * RX_SAMPLE_RATE / JS8E_SYMBOL_SAMPLES;
|
||||||
|
case Varicode::JS8CallUltra: return 8 * RX_SAMPLE_RATE / JS8I_SYMBOL_SAMPLES;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
int MainWindow::computeStop(int submode, int period){
|
int MainWindow::computeStop(int submode, int period){
|
||||||
int stop = 0;
|
int stop = 0;
|
||||||
|
|
||||||
@ -4357,9 +4369,6 @@ bool MainWindow::decodeProcessQueue(qint32 *pSubmode){
|
|||||||
dec_data.params.nagain=0;
|
dec_data.params.nagain=0;
|
||||||
dec_data.params.nzhsym=m_ihsym;
|
dec_data.params.nzhsym=m_ihsym;
|
||||||
|
|
||||||
dec_data.params.nfa=m_wideGraph->nStartFreq();
|
|
||||||
dec_data.params.nfb=m_wideGraph->Fmax();
|
|
||||||
|
|
||||||
if(dec_data.params.nagain==0 && dec_data.params.newdat==1 && (!m_diskData)) {
|
if(dec_data.params.nagain==0 && dec_data.params.newdat==1 && (!m_diskData)) {
|
||||||
qint64 ms = DriftingDateTime::currentMSecsSinceEpoch() % 86400000;
|
qint64 ms = DriftingDateTime::currentMSecsSinceEpoch() % 86400000;
|
||||||
int imin=ms/60000;
|
int imin=ms/60000;
|
||||||
@ -4407,6 +4416,13 @@ bool MainWindow::decodeProcessQueue(qint32 *pSubmode){
|
|||||||
dec_data.params.nfSplit=m_wideGraph->Fmin();
|
dec_data.params.nfSplit=m_wideGraph->Fmin();
|
||||||
dec_data.params.nfb=m_wideGraph->Fmax();
|
dec_data.params.nfb=m_wideGraph->Fmax();
|
||||||
|
|
||||||
|
int filter = max(0, m_wideGraph->filter());
|
||||||
|
if(filter){
|
||||||
|
int f = currentFreqOffset() + computeBandwidthForSubmode(submode)/2;
|
||||||
|
dec_data.params.nfa=max(0, f - filter/2);
|
||||||
|
dec_data.params.nfb=min(f + filter/2, 5000);
|
||||||
|
}
|
||||||
|
|
||||||
//if(m_mode=="FT8" and m_config.bHound() and !ui->cbRxAll->isChecked()) dec_data.params.nfb=1000;
|
//if(m_mode=="FT8" and m_config.bHound() and !ui->cbRxAll->isChecked()) dec_data.params.nfb=1000;
|
||||||
//if(m_mode=="FT8" and m_config.bFox()) dec_data.params.nfqso=200;
|
//if(m_mode=="FT8" and m_config.bFox()) dec_data.params.nfqso=200;
|
||||||
|
|
||||||
@ -7534,6 +7550,8 @@ void MainWindow::on_actionJS8_triggered()
|
|||||||
updateModeButtonText();
|
updateModeButtonText();
|
||||||
|
|
||||||
m_wideGraph->setSubMode(m_nSubMode);
|
m_wideGraph->setSubMode(m_nSubMode);
|
||||||
|
m_wideGraph->setFilterMinimum(computeBandwidthForSubmode(m_nSubMode));
|
||||||
|
|
||||||
bool bVHF=m_config.enable_VHF_features();
|
bool bVHF=m_config.enable_VHF_features();
|
||||||
enable_DXCC_entity (m_config.DXCC ());
|
enable_DXCC_entity (m_config.DXCC ());
|
||||||
switch_mode (Modes::JS8);
|
switch_mode (Modes::JS8);
|
||||||
|
@ -943,6 +943,7 @@ private:
|
|||||||
void statusChanged();
|
void statusChanged();
|
||||||
void fixStop();
|
void fixStop();
|
||||||
int computePeriodForSubmode(int submode);
|
int computePeriodForSubmode(int submode);
|
||||||
|
int computeBandwidthForSubmode(int submode);
|
||||||
int computeStop(int submode, int period);
|
int computeStop(int submode, int period);
|
||||||
//int computeCurrentCycle(int period);
|
//int computeCurrentCycle(int period);
|
||||||
//int computeCycleStartForDecode(int cycle, int period);
|
//int computeCycleStartForDecode(int cycle, int period);
|
||||||
|
38
plotter.cpp
38
plotter.cpp
@ -28,6 +28,7 @@ CPlotter::CPlotter(QWidget *parent) : //CPlotter Constructor
|
|||||||
m_plot2dGain {0},
|
m_plot2dGain {0},
|
||||||
m_plot2dZero {0},
|
m_plot2dZero {0},
|
||||||
m_nSubMode {0},
|
m_nSubMode {0},
|
||||||
|
m_filterWidth {0},
|
||||||
m_turbo {false},
|
m_turbo {false},
|
||||||
m_Running {false},
|
m_Running {false},
|
||||||
m_paintEventBusy {false},
|
m_paintEventBusy {false},
|
||||||
@ -86,6 +87,8 @@ void CPlotter::resizeEvent(QResizeEvent* ) //resizeEvent()
|
|||||||
m_h1=m_h-m_h2;
|
m_h1=m_h-m_h2;
|
||||||
// m_line=0;
|
// m_line=0;
|
||||||
|
|
||||||
|
m_FilterOverlayPixmap = QPixmap(m_Size.width(), m_h);
|
||||||
|
m_FilterOverlayPixmap.fill(Qt::transparent);
|
||||||
m_DialOverlayPixmap = QPixmap(m_Size.width(), m_h);
|
m_DialOverlayPixmap = QPixmap(m_Size.width(), m_h);
|
||||||
m_DialOverlayPixmap.fill(Qt::transparent);
|
m_DialOverlayPixmap.fill(Qt::transparent);
|
||||||
m_HoverOverlayPixmap = QPixmap(m_Size.width(), m_h);
|
m_HoverOverlayPixmap = QPixmap(m_Size.width(), m_h);
|
||||||
@ -120,6 +123,10 @@ void CPlotter::paintEvent(QPaintEvent *) // paint
|
|||||||
painter.drawPixmap(m_lastMouseX, 0, m_HoverOverlayPixmap);
|
painter.drawPixmap(m_lastMouseX, 0, m_HoverOverlayPixmap);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(m_filterWidth > 0){
|
||||||
|
painter.drawPixmap(0, 0, m_FilterOverlayPixmap);
|
||||||
|
}
|
||||||
|
|
||||||
m_paintEventBusy=false;
|
m_paintEventBusy=false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -467,7 +474,7 @@ void CPlotter::DrawOverlay() //DrawOverlay()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// paint dials and filter overlays
|
||||||
if(m_mode=="FT8"){
|
if(m_mode=="FT8"){
|
||||||
int fwidth=XfromFreq(m_rxFreq+bw)-XfromFreq(m_rxFreq);
|
int fwidth=XfromFreq(m_rxFreq+bw)-XfromFreq(m_rxFreq);
|
||||||
#if TEST_FOX_WAVE_GEN
|
#if TEST_FOX_WAVE_GEN
|
||||||
@ -523,6 +530,28 @@ void CPlotter::DrawOverlay() //DrawOverlay()
|
|||||||
hoverPainter.setFont(Font);
|
hoverPainter.setFont(Font);
|
||||||
hoverPainter.drawText(fwidth + 5, m_h, QString("%1").arg(f));
|
hoverPainter.drawText(fwidth + 5, m_h, QString("%1").arg(f));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
if(m_filterWidth > 0){
|
||||||
|
int filterStart=XfromFreq(m_rxFreq+bw/2-m_filterWidth/2);
|
||||||
|
int filterEnd=XfromFreq(m_rxFreq+bw/2+m_filterWidth/2);
|
||||||
|
|
||||||
|
// TODO: make sure filter is visible before painting...
|
||||||
|
|
||||||
|
QPainter filterPainter(&m_FilterOverlayPixmap);
|
||||||
|
filterPainter.initFrom(this);
|
||||||
|
filterPainter.setCompositionMode(QPainter::CompositionMode_Source);
|
||||||
|
filterPainter.fillRect(0, 0, m_Size.width(), m_h, Qt::transparent);
|
||||||
|
|
||||||
|
QPen thinYellow(Qt::yellow, 1);
|
||||||
|
filterPainter.setPen(thinYellow);
|
||||||
|
filterPainter.drawLine(filterStart, 30, filterStart, m_h);
|
||||||
|
filterPainter.drawLine(filterEnd, 30, filterEnd, m_h);
|
||||||
|
|
||||||
|
QColor blackMask(0, 0, 0, 128);
|
||||||
|
filterPainter.fillRect(0, 30, filterStart, m_h, blackMask);
|
||||||
|
filterPainter.fillRect(filterEnd+1, 30, m_Size.width(), m_h, blackMask);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -786,6 +815,13 @@ void CPlotter::setTurbo(bool turbo)
|
|||||||
update();
|
update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CPlotter::setFilter(int width)
|
||||||
|
{
|
||||||
|
m_filterWidth=width;
|
||||||
|
DrawOverlay();
|
||||||
|
update();
|
||||||
|
}
|
||||||
|
|
||||||
void CPlotter::setFlatten(bool b1, bool b2)
|
void CPlotter::setFlatten(bool b1, bool b2)
|
||||||
{
|
{
|
||||||
m_Flatten=0;
|
m_Flatten=0;
|
||||||
|
@ -82,6 +82,7 @@ public:
|
|||||||
void setTol(int n);
|
void setTol(int n);
|
||||||
void setRxBand(QString band);
|
void setRxBand(QString band);
|
||||||
void setTurbo(bool turbo);
|
void setTurbo(bool turbo);
|
||||||
|
void setFilter(int width);
|
||||||
#if JS8_USE_REFSPEC
|
#if JS8_USE_REFSPEC
|
||||||
void setReference(bool b) {m_bReference = b;}
|
void setReference(bool b) {m_bReference = b;}
|
||||||
bool Reference() const {return m_bReference;}
|
bool Reference() const {return m_bReference;}
|
||||||
@ -135,6 +136,7 @@ private:
|
|||||||
qint32 m_ia;
|
qint32 m_ia;
|
||||||
qint32 m_ib;
|
qint32 m_ib;
|
||||||
|
|
||||||
|
QPixmap m_FilterOverlayPixmap;
|
||||||
QPixmap m_DialOverlayPixmap;
|
QPixmap m_DialOverlayPixmap;
|
||||||
QPixmap m_HoverOverlayPixmap;
|
QPixmap m_HoverOverlayPixmap;
|
||||||
QPixmap m_WaterfallPixmap;
|
QPixmap m_WaterfallPixmap;
|
||||||
@ -150,6 +152,7 @@ private:
|
|||||||
QString m_rxBand;
|
QString m_rxBand;
|
||||||
QString m_redFile;
|
QString m_redFile;
|
||||||
|
|
||||||
|
int m_filterWidth;
|
||||||
bool m_turbo;
|
bool m_turbo;
|
||||||
bool m_Running;
|
bool m_Running;
|
||||||
bool m_paintEventBusy;
|
bool m_paintEventBusy;
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
#include "SettingsGroup.hpp"
|
#include "SettingsGroup.hpp"
|
||||||
|
|
||||||
#include "DriftingDateTime.h"
|
#include "DriftingDateTime.h"
|
||||||
|
#include "keyeater.h"
|
||||||
|
|
||||||
#include "moc_widegraph.cpp"
|
#include "moc_widegraph.cpp"
|
||||||
|
|
||||||
@ -35,6 +36,16 @@ WideGraph::WideGraph(QSettings * settings, QWidget *parent) :
|
|||||||
setMaximumWidth (MAX_SCREENSIZE);
|
setMaximumWidth (MAX_SCREENSIZE);
|
||||||
setMaximumHeight (880);
|
setMaximumHeight (880);
|
||||||
|
|
||||||
|
auto filterEscapeEater = new KeyPressEater();
|
||||||
|
connect(filterEscapeEater, &KeyPressEater::keyPressed, this, [this](QObject */*obj*/, QKeyEvent *e, bool *pProcessed){
|
||||||
|
if(e->key() != Qt::Key_Escape){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
setFilter(0);
|
||||||
|
if(pProcessed) *pProcessed=true;
|
||||||
|
});
|
||||||
|
ui->filterSpinBox->installEventFilter(filterEscapeEater);
|
||||||
|
|
||||||
ui->widePlot->setCursor(Qt::CrossCursor);
|
ui->widePlot->setCursor(Qt::CrossCursor);
|
||||||
ui->widePlot->setMaximumHeight(800);
|
ui->widePlot->setMaximumHeight(800);
|
||||||
ui->widePlot->setCurrent(false);
|
ui->widePlot->setCurrent(false);
|
||||||
@ -99,6 +110,9 @@ WideGraph::WideGraph(QSettings * settings, QWidget *parent) :
|
|||||||
setRxRange ();
|
setRxRange ();
|
||||||
ui->controls_widget->setVisible(!m_settings->value("HideControls", false).toBool());
|
ui->controls_widget->setVisible(!m_settings->value("HideControls", false).toBool());
|
||||||
ui->cbControls->setChecked(!m_settings->value("HideControls", false).toBool());
|
ui->cbControls->setChecked(!m_settings->value("HideControls", false).toBool());
|
||||||
|
|
||||||
|
setFilter(m_settings->value("FilterWidth", 0).toInt());
|
||||||
|
setFilterEnabled(m_settings->value("FilterEnabled", false).toBool());
|
||||||
}
|
}
|
||||||
|
|
||||||
int index=0;
|
int index=0;
|
||||||
@ -155,6 +169,8 @@ void WideGraph::saveSettings() //saveS
|
|||||||
m_settings->setValue ("HideControls", ui->controls_widget->isHidden ());
|
m_settings->setValue ("HideControls", ui->controls_widget->isHidden ());
|
||||||
m_settings->setValue ("FminPerBand", m_fMinPerBand);
|
m_settings->setValue ("FminPerBand", m_fMinPerBand);
|
||||||
m_settings->setValue ("CenterOffset", ui->centerSpinBox->value());
|
m_settings->setValue ("CenterOffset", ui->centerSpinBox->value());
|
||||||
|
m_settings->setValue ("FilterWidth", m_filterWidth);
|
||||||
|
m_settings->setValue ("FilterEnabled", m_filterEnabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WideGraph::drawRed(int ia, int ib)
|
void WideGraph::drawRed(int ia, int ib)
|
||||||
@ -309,6 +325,39 @@ int WideGraph::Fmax() //Fmax
|
|||||||
return std::min(5000,ui->widePlot->Fmax());
|
return std::min(5000,ui->widePlot->Fmax());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int WideGraph::filter()
|
||||||
|
{
|
||||||
|
return m_filterEnabled ? m_filterWidth : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void WideGraph::setFilter(int width){
|
||||||
|
if(width == m_filterWidth){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// update the filter history
|
||||||
|
m_filterWidthPrev = m_filterWidth;
|
||||||
|
m_filterWidth = width;
|
||||||
|
|
||||||
|
// update the spinner UI
|
||||||
|
ui->filterSpinBox->setValue(width);
|
||||||
|
|
||||||
|
// update the wide plot UI
|
||||||
|
ui->widePlot->setFilter(width);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WideGraph::setFilterMinimum(int width){
|
||||||
|
ui->filterSpinBox->setMinimum(width);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WideGraph::setFilterEnabled(bool enabled){
|
||||||
|
m_filterEnabled = enabled;
|
||||||
|
|
||||||
|
// update the wide plot with the
|
||||||
|
ui->widePlot->setFilter(enabled ? m_filterWidth : 0);
|
||||||
|
ui->filterSpinBox->setEnabled(enabled);
|
||||||
|
}
|
||||||
|
|
||||||
int WideGraph::fSpan()
|
int WideGraph::fSpan()
|
||||||
{
|
{
|
||||||
return ui->widePlot->fSpan ();
|
return ui->widePlot->fSpan ();
|
||||||
@ -568,6 +617,14 @@ void WideGraph::on_sbPercent2dPlot_valueChanged(int n)
|
|||||||
ui->widePlot->SetPercent2DScreen(n);
|
ui->widePlot->SetPercent2DScreen(n);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void WideGraph::on_filterSpinBox_valueChanged(int n){
|
||||||
|
setFilter(n);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WideGraph::on_filterCheckBox_toggled(bool b){
|
||||||
|
setFilterEnabled(b);
|
||||||
|
}
|
||||||
|
|
||||||
void WideGraph::setRedFile(QString fRed)
|
void WideGraph::setRedFile(QString fRed)
|
||||||
{
|
{
|
||||||
ui->widePlot->setRedFile(fRed);
|
ui->widePlot->setRedFile(fRed);
|
||||||
|
10
widegraph.h
10
widegraph.h
@ -33,6 +33,10 @@ public:
|
|||||||
int nStartFreq();
|
int nStartFreq();
|
||||||
int Fmin();
|
int Fmin();
|
||||||
int Fmax();
|
int Fmax();
|
||||||
|
int filter();
|
||||||
|
void setFilter(int width);
|
||||||
|
void setFilterMinimum(int width);
|
||||||
|
void setFilterEnabled(bool enabled);
|
||||||
int fSpan();
|
int fSpan();
|
||||||
void saveSettings();
|
void saveSettings();
|
||||||
void setFsample(int n);
|
void setFsample(int n);
|
||||||
@ -89,6 +93,8 @@ private slots:
|
|||||||
void on_zero2dSlider_valueChanged(int value);
|
void on_zero2dSlider_valueChanged(int value);
|
||||||
void on_smoSpinBox_valueChanged(int n);
|
void on_smoSpinBox_valueChanged(int n);
|
||||||
void on_sbPercent2dPlot_valueChanged(int n);
|
void on_sbPercent2dPlot_valueChanged(int n);
|
||||||
|
void on_filterSpinBox_valueChanged(int n);
|
||||||
|
void on_filterCheckBox_toggled(bool b);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void readPalette ();
|
void readPalette ();
|
||||||
@ -102,6 +108,10 @@ private:
|
|||||||
WFPalette m_userPalette;
|
WFPalette m_userPalette;
|
||||||
QHash<QString, QVariant> m_fMinPerBand;
|
QHash<QString, QVariant> m_fMinPerBand;
|
||||||
|
|
||||||
|
bool m_filterEnabled;
|
||||||
|
|
||||||
|
qint32 m_filterWidth;
|
||||||
|
qint32 m_filterWidthPrev;
|
||||||
qint32 m_waterfallAvg;
|
qint32 m_waterfallAvg;
|
||||||
qint32 m_TRperiod;
|
qint32 m_TRperiod;
|
||||||
qint32 m_nsps;
|
qint32 m_nsps;
|
||||||
|
533
widegraph.ui
533
widegraph.ui
@ -6,7 +6,7 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>1083</width>
|
<width>1166</width>
|
||||||
<height>154</height>
|
<height>154</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -103,7 +103,14 @@
|
|||||||
<property name="verticalSpacing">
|
<property name="verticalSpacing">
|
||||||
<number>0</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<item row="0" column="12">
|
<item row="1" column="7">
|
||||||
|
<widget class="QComboBox" name="paletteComboBox">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Select waterfall palette</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="13">
|
||||||
<widget class="QSlider" name="zeroSlider">
|
<widget class="QSlider" name="zeroSlider">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||||
@ -140,32 +147,24 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="13">
|
<item row="0" column="6" rowspan="3">
|
||||||
<widget class="QSpinBox" name="sbPercent2dPlot">
|
<widget class="Line" name="line">
|
||||||
<property name="toolTip">
|
<property name="orientation">
|
||||||
<string><html><head/><body><p>Set fractional size of spectrum in this window.</p></body></html></string>
|
<enum>Qt::Vertical</enum>
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignCenter</set>
|
|
||||||
</property>
|
|
||||||
<property name="suffix">
|
|
||||||
<string> %</string>
|
|
||||||
</property>
|
|
||||||
<property name="prefix">
|
|
||||||
<string>Spec </string>
|
|
||||||
</property>
|
|
||||||
<property name="maximum">
|
|
||||||
<number>100</number>
|
|
||||||
</property>
|
|
||||||
<property name="singleStep">
|
|
||||||
<number>5</number>
|
|
||||||
</property>
|
|
||||||
<property name="value">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="8">
|
<item row="0" column="1">
|
||||||
|
<widget class="QPushButton" name="qsyPushButton">
|
||||||
|
<property name="text">
|
||||||
|
<string>QSY</string>
|
||||||
|
</property>
|
||||||
|
<property name="autoDefault">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="9">
|
||||||
<widget class="QComboBox" name="spec2dComboBox">
|
<widget class="QComboBox" name="spec2dComboBox">
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string><html><head/><body><p>Select data for spectral display</p></body></html></string>
|
<string><html><head/><body><p>Select data for spectral display</p></body></html></string>
|
||||||
@ -190,59 +189,7 @@
|
|||||||
</item>
|
</item>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="8">
|
<item row="1" column="13">
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
|
||||||
<item>
|
|
||||||
<widget class="QCheckBox" name="cbFlatten">
|
|
||||||
<property name="toolTip">
|
|
||||||
<string><html><head/><body><p>Flatten spectral baseline over the full displayed interval.</p></body></html></string>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Flatten</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QCheckBox" name="cbRef">
|
|
||||||
<property name="visible">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="toolTip">
|
|
||||||
<string><html><head/><body><p>Compute and save a reference spectrum. (Not yet fully implemented.)</p></body></html></string>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Ref Spec</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="2">
|
|
||||||
<widget class="QSpinBox" name="bppSpinBox">
|
|
||||||
<property name="toolTip">
|
|
||||||
<string>Compression factor for frequency scale</string>
|
|
||||||
</property>
|
|
||||||
<property name="suffix">
|
|
||||||
<string/>
|
|
||||||
</property>
|
|
||||||
<property name="prefix">
|
|
||||||
<string>Bins/Pixel </string>
|
|
||||||
</property>
|
|
||||||
<property name="minimum">
|
|
||||||
<number>1</number>
|
|
||||||
</property>
|
|
||||||
<property name="maximum">
|
|
||||||
<number>1000</number>
|
|
||||||
</property>
|
|
||||||
<property name="singleStep">
|
|
||||||
<number>1</number>
|
|
||||||
</property>
|
|
||||||
<property name="value">
|
|
||||||
<number>5</number>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="12">
|
|
||||||
<widget class="QSlider" name="zero2dSlider">
|
<widget class="QSlider" name="zero2dSlider">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||||
@ -301,51 +248,60 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="6">
|
<item row="1" column="14">
|
||||||
<widget class="QComboBox" name="paletteComboBox">
|
<widget class="QSpinBox" name="smoSpinBox">
|
||||||
<property name="toolTip">
|
<property name="enabled">
|
||||||
<string>Select waterfall palette</string>
|
<bool>false</bool>
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="10">
|
|
||||||
<widget class="QSlider" name="gainSlider">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="minimumSize">
|
|
||||||
<size>
|
|
||||||
<width>100</width>
|
|
||||||
<height>0</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="maximumSize">
|
|
||||||
<size>
|
|
||||||
<width>200</width>
|
|
||||||
<height>16777215</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
</property>
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>Waterfall gain</string>
|
<string>Smoothing of Linear Average spectrum</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
<property name="suffix">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="prefix">
|
||||||
|
<string>Smooth </string>
|
||||||
</property>
|
</property>
|
||||||
<property name="minimum">
|
<property name="minimum">
|
||||||
<number>-50</number>
|
<number>1</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="maximum">
|
<property name="maximum">
|
||||||
<number>50</number>
|
<number>7</number>
|
||||||
</property>
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="tickPosition">
|
|
||||||
<enum>QSlider::TicksAbove</enum>
|
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="10">
|
<item row="2" column="3">
|
||||||
|
<widget class="QSpinBox" name="fSplitSpinBox">
|
||||||
|
<property name="visible">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string><html><head/><body><p>Decode JT9 only above this frequency</p></body></html></string>
|
||||||
|
</property>
|
||||||
|
<property name="suffix">
|
||||||
|
<string> JT9</string>
|
||||||
|
</property>
|
||||||
|
<property name="prefix">
|
||||||
|
<string>JT65 </string>
|
||||||
|
</property>
|
||||||
|
<property name="minimum">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<number>5000</number>
|
||||||
|
</property>
|
||||||
|
<property name="singleStep">
|
||||||
|
<number>100</number>
|
||||||
|
</property>
|
||||||
|
<property name="value">
|
||||||
|
<number>3000</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="11">
|
||||||
<widget class="QSlider" name="gain2dSlider">
|
<widget class="QSlider" name="gain2dSlider">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||||
@ -382,135 +338,7 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="14" rowspan="2">
|
<item row="0" column="7">
|
||||||
<spacer name="horizontalSpacer_2">
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
|
||||||
<width>40</width>
|
|
||||||
<height>20</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="4">
|
|
||||||
<widget class="QSpinBox" name="waterfallAvgSpinBox">
|
|
||||||
<property name="toolTip">
|
|
||||||
<string>Number of FFTs averaged (controls waterfall scrolling rate)</string>
|
|
||||||
</property>
|
|
||||||
<property name="prefix">
|
|
||||||
<string>N Avg </string>
|
|
||||||
</property>
|
|
||||||
<property name="minimum">
|
|
||||||
<number>1</number>
|
|
||||||
</property>
|
|
||||||
<property name="maximum">
|
|
||||||
<number>50</number>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="13">
|
|
||||||
<widget class="QSpinBox" name="smoSpinBox">
|
|
||||||
<property name="enabled">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="toolTip">
|
|
||||||
<string>Smoothing of Linear Average spectrum</string>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignCenter</set>
|
|
||||||
</property>
|
|
||||||
<property name="suffix">
|
|
||||||
<string/>
|
|
||||||
</property>
|
|
||||||
<property name="prefix">
|
|
||||||
<string>Smooth </string>
|
|
||||||
</property>
|
|
||||||
<property name="minimum">
|
|
||||||
<number>1</number>
|
|
||||||
</property>
|
|
||||||
<property name="maximum">
|
|
||||||
<number>7</number>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="2">
|
|
||||||
<widget class="QSpinBox" name="offsetSpinBox">
|
|
||||||
<property name="suffix">
|
|
||||||
<string> Hz</string>
|
|
||||||
</property>
|
|
||||||
<property name="prefix">
|
|
||||||
<string>Offset </string>
|
|
||||||
</property>
|
|
||||||
<property name="maximum">
|
|
||||||
<number>5000</number>
|
|
||||||
</property>
|
|
||||||
<property name="singleStep">
|
|
||||||
<number>1</number>
|
|
||||||
</property>
|
|
||||||
<property name="value">
|
|
||||||
<number>1500</number>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="7" rowspan="2">
|
|
||||||
<widget class="Line" name="line_2">
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Vertical</enum>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="5" rowspan="2">
|
|
||||||
<widget class="Line" name="line">
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Vertical</enum>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="3">
|
|
||||||
<widget class="QSpinBox" name="fSplitSpinBox">
|
|
||||||
<property name="visible">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="toolTip">
|
|
||||||
<string><html><head/><body><p>Decode JT9 only above this frequency</p></body></html></string>
|
|
||||||
</property>
|
|
||||||
<property name="suffix">
|
|
||||||
<string> JT9</string>
|
|
||||||
</property>
|
|
||||||
<property name="prefix">
|
|
||||||
<string>JT65 </string>
|
|
||||||
</property>
|
|
||||||
<property name="minimum">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="maximum">
|
|
||||||
<number>5000</number>
|
|
||||||
</property>
|
|
||||||
<property name="singleStep">
|
|
||||||
<number>100</number>
|
|
||||||
</property>
|
|
||||||
<property name="value">
|
|
||||||
<number>3000</number>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="0" rowspan="2">
|
|
||||||
<spacer name="horizontalSpacer">
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
|
||||||
<width>40</width>
|
|
||||||
<height>20</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="6">
|
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="labPalette">
|
<widget class="QLabel" name="labPalette">
|
||||||
@ -537,16 +365,46 @@
|
|||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="1">
|
<item row="0" column="0" rowspan="3">
|
||||||
<widget class="QPushButton" name="qsyPushButton">
|
<spacer name="horizontalSpacer">
|
||||||
<property name="text">
|
<property name="orientation">
|
||||||
<string>QSY</string>
|
<enum>Qt::Horizontal</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="autoDefault">
|
<property name="sizeHint" stdset="0">
|
||||||
<bool>false</bool>
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="9">
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="cbFlatten">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string><html><head/><body><p>Flatten spectral baseline over the full displayed interval.</p></body></html></string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Flatten</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="cbRef">
|
||||||
|
<property name="visible">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string><html><head/><body><p>Compute and save a reference spectrum. (Not yet fully implemented.)</p></body></html></string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Ref Spec</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
<item row="1" column="1">
|
<item row="1" column="1">
|
||||||
<widget class="QSpinBox" name="centerSpinBox">
|
<widget class="QSpinBox" name="centerSpinBox">
|
||||||
<property name="suffix">
|
<property name="suffix">
|
||||||
@ -566,6 +424,180 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="0" column="14">
|
||||||
|
<widget class="QSpinBox" name="sbPercent2dPlot">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string><html><head/><body><p>Set fractional size of spectrum in this window.</p></body></html></string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
<property name="suffix">
|
||||||
|
<string> %</string>
|
||||||
|
</property>
|
||||||
|
<property name="prefix">
|
||||||
|
<string>Spec </string>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<number>100</number>
|
||||||
|
</property>
|
||||||
|
<property name="singleStep">
|
||||||
|
<number>5</number>
|
||||||
|
</property>
|
||||||
|
<property name="value">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="4">
|
||||||
|
<widget class="QSpinBox" name="offsetSpinBox">
|
||||||
|
<property name="suffix">
|
||||||
|
<string> Hz</string>
|
||||||
|
</property>
|
||||||
|
<property name="prefix">
|
||||||
|
<string>Offset </string>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<number>5000</number>
|
||||||
|
</property>
|
||||||
|
<property name="singleStep">
|
||||||
|
<number>1</number>
|
||||||
|
</property>
|
||||||
|
<property name="value">
|
||||||
|
<number>1500</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="15" rowspan="3">
|
||||||
|
<spacer name="horizontalSpacer_2">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="8" rowspan="3">
|
||||||
|
<widget class="Line" name="line_2">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="3">
|
||||||
|
<widget class="QSpinBox" name="waterfallAvgSpinBox">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Number of FFTs averaged (controls waterfall scrolling rate)</string>
|
||||||
|
</property>
|
||||||
|
<property name="prefix">
|
||||||
|
<string>N Avg </string>
|
||||||
|
</property>
|
||||||
|
<property name="minimum">
|
||||||
|
<number>1</number>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<number>50</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="11">
|
||||||
|
<widget class="QSlider" name="gainSlider">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>100</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>200</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Waterfall gain</string>
|
||||||
|
</property>
|
||||||
|
<property name="minimum">
|
||||||
|
<number>-50</number>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<number>50</number>
|
||||||
|
</property>
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="tickPosition">
|
||||||
|
<enum>QSlider::TicksAbove</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="3">
|
||||||
|
<widget class="QSpinBox" name="bppSpinBox">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Compression factor for frequency scale</string>
|
||||||
|
</property>
|
||||||
|
<property name="suffix">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="prefix">
|
||||||
|
<string>Bins/Pixel </string>
|
||||||
|
</property>
|
||||||
|
<property name="minimum">
|
||||||
|
<number>1</number>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<number>1000</number>
|
||||||
|
</property>
|
||||||
|
<property name="singleStep">
|
||||||
|
<number>1</number>
|
||||||
|
</property>
|
||||||
|
<property name="value">
|
||||||
|
<number>5</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="5">
|
||||||
|
<widget class="QCheckBox" name="filterCheckBox">
|
||||||
|
<property name="text">
|
||||||
|
<string>Enable Filter</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="5">
|
||||||
|
<widget class="QSpinBox" name="filterSpinBox">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="specialValueText">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="suffix">
|
||||||
|
<string> Hz</string>
|
||||||
|
</property>
|
||||||
|
<property name="prefix">
|
||||||
|
<string>Filter </string>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<number>5000</number>
|
||||||
|
</property>
|
||||||
|
<property name="singleStep">
|
||||||
|
<number>10</number>
|
||||||
|
</property>
|
||||||
|
<property name="value">
|
||||||
|
<number>500</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -579,9 +611,6 @@
|
|||||||
<container>1</container>
|
<container>1</container>
|
||||||
</customwidget>
|
</customwidget>
|
||||||
</customwidgets>
|
</customwidgets>
|
||||||
<tabstops>
|
|
||||||
<tabstop>offsetSpinBox</tabstop>
|
|
||||||
</tabstops>
|
|
||||||
<resources/>
|
<resources/>
|
||||||
<connections/>
|
<connections/>
|
||||||
</ui>
|
</ui>
|
||||||
|
Loading…
Reference in New Issue
Block a user