diff options
author | trondeau | 2009-08-11 22:02:56 +0000 |
---|---|---|
committer | trondeau | 2009-08-11 22:02:56 +0000 |
commit | f123fd990783b7e6ed24a12763cb2a766860d133 (patch) | |
tree | 4c5b8d53589287e6e70b7eef8bbb594c608a2a75 /gr-qtgui/src/lib | |
parent | c1621a335d80ccd496d8e0cef5a8370c55509f73 (diff) | |
download | gnuradio-f123fd990783b7e6ed24a12763cb2a766860d133.tar.gz gnuradio-f123fd990783b7e6ed24a12763cb2a766860d133.tar.bz2 gnuradio-f123fd990783b7e6ed24a12763cb2a766860d133.zip |
Cleaning up Qt code. This mostly reformats the code to be more consistent with our style. It also changes the layout to use Qt layouts for proper resizing of the GUI. Only the QwtPlots need to be resized manually.
git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@11572 221aa14e-8319-0410-a670-987f0aec2ac5
Diffstat (limited to 'gr-qtgui/src/lib')
-rw-r--r-- | gr-qtgui/src/lib/ConstellationDisplayPlot.cc | 22 | ||||
-rw-r--r-- | gr-qtgui/src/lib/ConstellationDisplayPlot.h | 9 | ||||
-rw-r--r-- | gr-qtgui/src/lib/FrequencyDisplayPlot.cc | 8 | ||||
-rw-r--r-- | gr-qtgui/src/lib/FrequencyDisplayPlot.h | 2 | ||||
-rw-r--r-- | gr-qtgui/src/lib/TimeDomainDisplayPlot.cc | 13 | ||||
-rw-r--r-- | gr-qtgui/src/lib/TimeDomainDisplayPlot.h | 3 | ||||
-rw-r--r-- | gr-qtgui/src/lib/Waterfall3DDisplayPlot.cc | 91 | ||||
-rw-r--r-- | gr-qtgui/src/lib/Waterfall3DDisplayPlot.h | 29 | ||||
-rw-r--r-- | gr-qtgui/src/lib/WaterfallDisplayPlot.cc | 149 | ||||
-rw-r--r-- | gr-qtgui/src/lib/WaterfallDisplayPlot.h | 3 | ||||
-rw-r--r-- | gr-qtgui/src/lib/spectrumdisplayform.cc | bin | 30549 -> 27246 bytes | |||
-rw-r--r-- | gr-qtgui/src/lib/spectrumdisplayform.h | 2 | ||||
-rw-r--r-- | gr-qtgui/src/lib/spectrumdisplayform.ui | 1388 |
13 files changed, 972 insertions, 747 deletions
diff --git a/gr-qtgui/src/lib/ConstellationDisplayPlot.cc b/gr-qtgui/src/lib/ConstellationDisplayPlot.cc index 10355f9f0..792096ded 100644 --- a/gr-qtgui/src/lib/ConstellationDisplayPlot.cc +++ b/gr-qtgui/src/lib/ConstellationDisplayPlot.cc @@ -32,7 +32,9 @@ protected: } }; -ConstellationDisplayPlot::ConstellationDisplayPlot(QWidget* parent):QwtPlot(parent){ +ConstellationDisplayPlot::ConstellationDisplayPlot(QWidget* parent) + : QwtPlot(parent) +{ timespec_reset(&_lastReplot); resize(parent->width(), parent->height()); @@ -106,7 +108,8 @@ ConstellationDisplayPlot::ConstellationDisplayPlot(QWidget* parent):QwtPlot(pare this, SLOT( LegendEntryChecked(QwtPlotItem *, bool ) )); } -ConstellationDisplayPlot::~ConstellationDisplayPlot(){ +ConstellationDisplayPlot::~ConstellationDisplayPlot() +{ delete[] _realDataPoints; delete[] _imagDataPoints; @@ -149,7 +152,16 @@ void ConstellationDisplayPlot::replot(){ } } -void ConstellationDisplayPlot::PlotNewData(const double* realDataPoints, const double* imagDataPoints, const int64_t numDataPoints){ +void +ConstellationDisplayPlot::resizeSlot( QSize *s ) +{ + resize(s->width(), s->height()); +} + +void ConstellationDisplayPlot::PlotNewData(const double* realDataPoints, + const double* imagDataPoints, + const int64_t numDataPoints) +{ if(numDataPoints > 0){ if(numDataPoints != _numPoints){ @@ -177,7 +189,9 @@ void ConstellationDisplayPlot::PlotNewData(const double* realDataPoints, const d } } -void ConstellationDisplayPlot::LegendEntryChecked(QwtPlotItem* plotItem, bool on){ +void +ConstellationDisplayPlot::LegendEntryChecked(QwtPlotItem* plotItem, bool on) +{ plotItem->setVisible(!on); } diff --git a/gr-qtgui/src/lib/ConstellationDisplayPlot.h b/gr-qtgui/src/lib/ConstellationDisplayPlot.h index 612cd2b39..1b73e7cc6 100644 --- a/gr-qtgui/src/lib/ConstellationDisplayPlot.h +++ b/gr-qtgui/src/lib/ConstellationDisplayPlot.h @@ -14,14 +14,16 @@ #include <highResTimeFunctions.h> #include <qwt_symbol.h> -class ConstellationDisplayPlot:public QwtPlot{ +class ConstellationDisplayPlot : public QwtPlot +{ Q_OBJECT public: ConstellationDisplayPlot(QWidget*); virtual ~ConstellationDisplayPlot(); - void PlotNewData(const double* realDataPoints, const double* imagDataPoints, + void PlotNewData(const double* realDataPoints, + const double* imagDataPoints, const int64_t numDataPoints); virtual void replot(); @@ -31,6 +33,9 @@ public: void set_axis(double xmin, double xmax, double ymin, double ymax); +public slots: + void resizeSlot( QSize *s ); + protected slots: void LegendEntryChecked(QwtPlotItem *plotItem, bool on); diff --git a/gr-qtgui/src/lib/FrequencyDisplayPlot.cc b/gr-qtgui/src/lib/FrequencyDisplayPlot.cc index e299157f5..7deff8543 100644 --- a/gr-qtgui/src/lib/FrequencyDisplayPlot.cc +++ b/gr-qtgui/src/lib/FrequencyDisplayPlot.cc @@ -93,7 +93,7 @@ FrequencyDisplayPlot::FrequencyDisplayPlot(QWidget* parent) timespec_reset(&_lastReplot); resize(parent->width(), parent->height()); - + _displayIntervalTime = (1.0/10.0); // 1/10 of a second between updates _useCenterFrequencyFlag = false; @@ -314,6 +314,12 @@ FrequencyDisplayPlot::replot() _displayIntervalTime = differenceTime; } } + +void +FrequencyDisplayPlot::resizeSlot( QSize *s ) +{ + resize(s->width(), s->height()); +} void FrequencyDisplayPlot::PlotNewData(const double* dataPoints, const int64_t numDataPoints, diff --git a/gr-qtgui/src/lib/FrequencyDisplayPlot.h b/gr-qtgui/src/lib/FrequencyDisplayPlot.h index 5e8282962..785efe694 100644 --- a/gr-qtgui/src/lib/FrequencyDisplayPlot.h +++ b/gr-qtgui/src/lib/FrequencyDisplayPlot.h @@ -43,12 +43,14 @@ public: void set_yaxis(double min, double max); public slots: + void resizeSlot( QSize *e ); void SetLowerIntensityLevel(const double); void SetUpperIntensityLevel(const double); protected: private: + void _resetXAxisPoints(); double _startFrequency; diff --git a/gr-qtgui/src/lib/TimeDomainDisplayPlot.cc b/gr-qtgui/src/lib/TimeDomainDisplayPlot.cc index 6d8ef6ee4..cb18b4418 100644 --- a/gr-qtgui/src/lib/TimeDomainDisplayPlot.cc +++ b/gr-qtgui/src/lib/TimeDomainDisplayPlot.cc @@ -141,8 +141,8 @@ TimeDomainDisplayPlot::set_xaxis(double min, double max) } -void TimeDomainDisplayPlot::replot(){ - +void TimeDomainDisplayPlot::replot() +{ const timespec startTime = get_highres_clock(); QwtPlot::replot(); @@ -156,9 +156,16 @@ void TimeDomainDisplayPlot::replot(){ } } +void +TimeDomainDisplayPlot::resizeSlot( QSize *s ) +{ + resize(s->width(), s->height()); +} + void TimeDomainDisplayPlot::PlotNewData(const double* realDataPoints, const double* imagDataPoints, - const int64_t numDataPoints){ + const int64_t numDataPoints) +{ if(numDataPoints > 0){ if(numDataPoints != _numPoints){ diff --git a/gr-qtgui/src/lib/TimeDomainDisplayPlot.h b/gr-qtgui/src/lib/TimeDomainDisplayPlot.h index 56d44539d..8d98abac6 100644 --- a/gr-qtgui/src/lib/TimeDomainDisplayPlot.h +++ b/gr-qtgui/src/lib/TimeDomainDisplayPlot.h @@ -30,6 +30,9 @@ public: void set_yaxis(double min, double max); void set_xaxis(double min, double max); +public slots: + void resizeSlot( QSize *s ); + protected slots: void LegendEntryChecked(QwtPlotItem *plotItem, bool on); diff --git a/gr-qtgui/src/lib/Waterfall3DDisplayPlot.cc b/gr-qtgui/src/lib/Waterfall3DDisplayPlot.cc index 1b6650613..f676cb4af 100644 --- a/gr-qtgui/src/lib/Waterfall3DDisplayPlot.cc +++ b/gr-qtgui/src/lib/Waterfall3DDisplayPlot.cc @@ -15,15 +15,21 @@ Waterfall3DColorMap::~Waterfall3DColorMap(){ } -Qwt3D::RGBA Waterfall3DColorMap::operator()(double, double, double z)const{ +Qwt3D::RGBA +Waterfall3DColorMap::operator()(double, double, double z) const +{ return Qwt3D::RGBA(Qwt3D::Qt2GL(color(_interval, z))); } -void Waterfall3DColorMap::SetInterval(const double minValue, const double maxValue){ +void +Waterfall3DColorMap::SetInterval(const double minValue, const double maxValue) +{ _interval.setInterval(minValue, maxValue); } -Qwt3D::ColorVector& Waterfall3DColorMap::createVector(Qwt3D::ColorVector& vec) { +Qwt3D::ColorVector& +Waterfall3DColorMap::createVector(Qwt3D::ColorVector& vec) +{ // Generate 100 interval values and then return those Qwt3D::ColorVector colorVec; for(unsigned int number = 0; number < 100; number++){ @@ -41,7 +47,8 @@ const int Waterfall3DDisplayPlot::INTENSITY_COLOR_MAP_TYPE_BLACK_HOT; const int Waterfall3DDisplayPlot::INTENSITY_COLOR_MAP_TYPE_INCANDESCENT; const int Waterfall3DDisplayPlot::INTENSITY_COLOR_MAP_TYPE_USER_DEFINED; -Waterfall3DDisplayPlot::Waterfall3DDisplayPlot(QWidget* parent):Qwt3D::SurfacePlot(parent){ +Waterfall3DDisplayPlot::Waterfall3DDisplayPlot(QWidget* parent):Qwt3D::SurfacePlot(parent) +{ _startFrequency = 0; _stopFrequency = 4000; @@ -76,11 +83,14 @@ Waterfall3DDisplayPlot::Waterfall3DDisplayPlot(QWidget* parent):Qwt3D::SurfacePl enableMouse(true); } -Waterfall3DDisplayPlot::~Waterfall3DDisplayPlot(){ +Waterfall3DDisplayPlot::~Waterfall3DDisplayPlot() +{ delete _waterfallData; } -void Waterfall3DDisplayPlot::Init(){ +void +Waterfall3DDisplayPlot::Init() +{ if(!_initialized && initializedGL()){ resize(parentWidget()->width(), parentWidget()->height()); @@ -97,7 +107,9 @@ void Waterfall3DDisplayPlot::Init(){ } } -void Waterfall3DDisplayPlot::Reset(){ +void +Waterfall3DDisplayPlot::Reset() +{ _waterfallData->ResizeData(_startFrequency, _stopFrequency, _numPoints); _waterfallData->Reset(); @@ -116,7 +128,8 @@ Waterfall3DDisplayPlot::SetFrequencyRange(const double constStartFreq, const double constStopFreq, const double constCenterFreq, const bool useCenterFrequencyFlag, - const double units, const std::string &strunits) + const double units, + const std::string &strunits) { double startFreq = constStartFreq / units; double stopFreq = constStopFreq / units; @@ -138,8 +151,10 @@ Waterfall3DDisplayPlot::SetFrequencyRange(const double constStartFreq, } } -bool Waterfall3DDisplayPlot::loadFromData(double** data, unsigned int columns, unsigned int rows - ,double minx, double maxx, double miny, double maxy){ +bool +Waterfall3DDisplayPlot::loadFromData(double** data, unsigned int columns, unsigned int rows + ,double minx, double maxx, double miny, double maxy) +{ Qwt3D::GridData* gridPtr = (Qwt3D::GridData*)actualData_p; @@ -196,15 +211,25 @@ bool Waterfall3DDisplayPlot::loadFromData(double** data, unsigned int columns, u return true; } -double Waterfall3DDisplayPlot::GetStartFrequency()const{ +double +Waterfall3DDisplayPlot::GetStartFrequency() const +{ return _startFrequency; } -double Waterfall3DDisplayPlot::GetStopFrequency()const{ +double +Waterfall3DDisplayPlot::GetStopFrequency() const +{ return _stopFrequency; } -void Waterfall3DDisplayPlot::PlotNewData(const double* dataPoints, const int64_t numDataPoints, const double timePerFFT, const timespec timestamp, const int droppedFrames){ +void +Waterfall3DDisplayPlot::PlotNewData(const double* dataPoints, + const int64_t numDataPoints, + const double timePerFFT, + const timespec timestamp, + const int droppedFrames) +{ if(numDataPoints > 0){ if(numDataPoints != _numPoints){ _numPoints = numDataPoints; @@ -238,7 +263,10 @@ void Waterfall3DDisplayPlot::PlotNewData(const double* dataPoints, const int64_t } } -void Waterfall3DDisplayPlot::SetIntensityRange(const double minIntensity, const double maxIntensity){ +void +Waterfall3DDisplayPlot::SetIntensityRange(const double minIntensity, + const double maxIntensity) +{ _waterfallData->SetFloorValue(minIntensity); _waterfallData->setMinZ(0); _waterfallData->setMaxZ(maxIntensity-minIntensity); @@ -248,11 +276,14 @@ void Waterfall3DDisplayPlot::SetIntensityRange(const double minIntensity, const emit UpdatedLowerIntensityLevel(minIntensity); emit UpdatedUpperIntensityLevel(maxIntensity); - SetIntensityColorMapType(_intensityColorMapType, _userDefinedLowIntensityColor, _userDefinedLowIntensityColor, true); + SetIntensityColorMapType(_intensityColorMapType, + _userDefinedLowIntensityColor, + _userDefinedLowIntensityColor, true); } -void Waterfall3DDisplayPlot::replot(){ - +void +Waterfall3DDisplayPlot::replot() +{ if(!_initialized){ Init(); } @@ -283,11 +314,25 @@ void Waterfall3DDisplayPlot::replot(){ } } -int Waterfall3DDisplayPlot::GetIntensityColorMapType()const{ +void +Waterfall3DDisplayPlot::resizeSlot( QSize *s ) +{ + resize(s->width(), s->height()); +} + +int +Waterfall3DDisplayPlot::GetIntensityColorMapType() const +{ return _intensityColorMapType; } -void Waterfall3DDisplayPlot::SetIntensityColorMapType(const int newType, const QColor lowColor, const QColor highColor, const bool forceFlag, const bool noReplotFlag){ +void +Waterfall3DDisplayPlot::SetIntensityColorMapType(const int newType, + const QColor lowColor, + const QColor highColor, + const bool forceFlag, + const bool noReplotFlag) +{ if(((_intensityColorMapType != newType) || forceFlag) || ((newType == INTENSITY_COLOR_MAP_TYPE_USER_DEFINED) && (lowColor.isValid() && highColor.isValid()))){ @@ -350,11 +395,15 @@ void Waterfall3DDisplayPlot::SetIntensityColorMapType(const int newType, const Q } } -const QColor Waterfall3DDisplayPlot::GetUserDefinedLowIntensityColor()const{ +const QColor +Waterfall3DDisplayPlot::GetUserDefinedLowIntensityColor() const +{ return _userDefinedLowIntensityColor; } -const QColor Waterfall3DDisplayPlot::GetUserDefinedHighIntensityColor()const{ +const QColor +Waterfall3DDisplayPlot::GetUserDefinedHighIntensityColor() const +{ return _userDefinedHighIntensityColor; } diff --git a/gr-qtgui/src/lib/Waterfall3DDisplayPlot.h b/gr-qtgui/src/lib/Waterfall3DDisplayPlot.h index f46f260e3..272bdf697 100644 --- a/gr-qtgui/src/lib/Waterfall3DDisplayPlot.h +++ b/gr-qtgui/src/lib/Waterfall3DDisplayPlot.h @@ -10,7 +10,8 @@ #include <qwt3d_color.h> #include <qwt_color_map.h> -class Waterfall3DColorMap:public Qwt3D::Color, public QwtLinearColorMap{ +class Waterfall3DColorMap: public Qwt3D::Color, public QwtLinearColorMap +{ public: Waterfall3DColorMap(); virtual ~Waterfall3DColorMap(); @@ -75,12 +76,14 @@ class Waterfall3DDisplayPlot:public Qwt3D::SurfacePlot{ virtual QString ticLabel(unsigned int idx) const{ if (idx<majors_p.size()) { - const timespec markerTime = timespec_add(_plot->_dataTimestamp, -(_plot->_timePerFFT) * majors_p[idx]); + const timespec markerTime = timespec_add(_plot->_dataTimestamp, + -(_plot->_timePerFFT) * majors_p[idx]); struct tm timeTm; gmtime_r(&markerTime.tv_sec, &timeTm); char* timeBuffer = new char[128]; - snprintf(timeBuffer, 128, "%02d:%02d:%02d.%03ld", timeTm.tm_hour, timeTm.tm_min, timeTm.tm_sec, (markerTime.tv_nsec / 1000000)); + snprintf(timeBuffer, 128, "%02d:%02d:%02d.%03ld", timeTm.tm_hour, + timeTm.tm_min, timeTm.tm_sec, (markerTime.tv_nsec / 1000000)); QString returnBuffer(timeBuffer); delete[] timeBuffer; return returnBuffer; @@ -100,10 +103,14 @@ class Waterfall3DDisplayPlot:public Qwt3D::SurfacePlot{ double _centerFrequency; bool _useCenterFrequencyFlag; public: - FrequencyScale(bool useCenterFrequencyFlag, double centerFrequency):_centerFrequency(centerFrequency),_useCenterFrequencyFlag(useCenterFrequencyFlag){} + FrequencyScale(bool useCenterFrequencyFlag, double centerFrequency) + : _centerFrequency(centerFrequency),_useCenterFrequencyFlag(useCenterFrequencyFlag) + {} + virtual ~FrequencyScale(){} - virtual QString ticLabel(unsigned int idx) const{ + virtual QString ticLabel(unsigned int idx) const + { if (idx<majors_p.size()) { if(!_useCenterFrequencyFlag){ @@ -137,14 +144,18 @@ public: double GetStartFrequency()const; double GetStopFrequency()const; - void PlotNewData(const double* dataPoints, const int64_t numDataPoints, const double timePerFFT, const timespec timestamp, const int droppedFrames); + void PlotNewData(const double* dataPoints, const int64_t numDataPoints, + const double timePerFFT, const timespec timestamp, + const int droppedFrames); void SetIntensityRange(const double minIntensity, const double maxIntensity); virtual void replot(void); int GetIntensityColorMapType()const; - void SetIntensityColorMapType( const int, const QColor, const QColor, const bool forceFlag = false, const bool noReplotFlag = false ); + void SetIntensityColorMapType( const int, const QColor, + const QColor, const bool forceFlag = false, + const bool noReplotFlag = false ); const QColor GetUserDefinedLowIntensityColor()const; const QColor GetUserDefinedHighIntensityColor()const; @@ -154,6 +165,10 @@ public: static const int INTENSITY_COLOR_MAP_TYPE_INCANDESCENT = 3; static const int INTENSITY_COLOR_MAP_TYPE_USER_DEFINED = 4; +public slots: + void resizeSlot( QSize *s ); + + signals: void UpdatedLowerIntensityLevel(const double); void UpdatedUpperIntensityLevel(const double); diff --git a/gr-qtgui/src/lib/WaterfallDisplayPlot.cc b/gr-qtgui/src/lib/WaterfallDisplayPlot.cc index ad167f097..f6d0cc0ba 100644 --- a/gr-qtgui/src/lib/WaterfallDisplayPlot.cc +++ b/gr-qtgui/src/lib/WaterfallDisplayPlot.cc @@ -15,28 +15,33 @@ class FreqOffsetAndPrecisionClass { public: - FreqOffsetAndPrecisionClass(const int freqPrecision){ + FreqOffsetAndPrecisionClass(const int freqPrecision) + { _frequencyPrecision = freqPrecision; _centerFrequency = 0; } - virtual ~FreqOffsetAndPrecisionClass(){ - + virtual ~FreqOffsetAndPrecisionClass() + { } - virtual unsigned int GetFrequencyPrecision()const{ + virtual unsigned int GetFrequencyPrecision() const + { return _frequencyPrecision; } - virtual void SetFrequencyPrecision(const unsigned int newPrecision){ + virtual void SetFrequencyPrecision(const unsigned int newPrecision) + { _frequencyPrecision = newPrecision; } - virtual double GetCenterFrequency()const{ + virtual double GetCenterFrequency() const + { return _centerFrequency; } - virtual void SetCenterFrequency(const double newFreq){ + virtual void SetCenterFrequency(const double newFreq) + { _centerFrequency = newFreq; } @@ -50,19 +55,23 @@ private: class WaterfallFreqDisplayScaleDraw: public QwtScaleDraw, public FreqOffsetAndPrecisionClass{ public: - WaterfallFreqDisplayScaleDraw(const unsigned int precision):QwtScaleDraw(), FreqOffsetAndPrecisionClass(precision){ - + WaterfallFreqDisplayScaleDraw(const unsigned int precision) + : QwtScaleDraw(), FreqOffsetAndPrecisionClass(precision) + { } - virtual ~WaterfallFreqDisplayScaleDraw(){ - + virtual ~WaterfallFreqDisplayScaleDraw() + { } - QwtText label(double value)const{ - return QString("%1").arg((value + GetCenterFrequency()) / ((GetFrequencyPrecision() == 0) ? 1.0 : 1000.0), 0, 'f', GetFrequencyPrecision()); + QwtText label(double value) const + { + return QString("%1").arg((value + GetCenterFrequency()) / ((GetFrequencyPrecision() == 0) ? 1.0 : 1000.0), + 0, 'f', GetFrequencyPrecision()); } - virtual void initiateUpdate(){ + virtual void initiateUpdate() + { invalidateCache(); } @@ -75,29 +84,33 @@ private: class TimeScaleData { public: - TimeScaleData(){ + TimeScaleData() + { timespec_reset(&_zeroTime); _secondsPerLine = 1.0; - } - virtual ~TimeScaleData(){ - + virtual ~TimeScaleData() + { } - virtual timespec GetZeroTime()const{ + virtual timespec GetZeroTime() const + { return _zeroTime; } - virtual void SetZeroTime(const timespec newTime){ + virtual void SetZeroTime(const timespec newTime) + { _zeroTime = newTime; } - virtual void SetSecondsPerLine(const double newTime){ + virtual void SetSecondsPerLine(const double newTime) + { _secondsPerLine = newTime; } - virtual double GetSecondsPerLine()const{ + virtual double GetSecondsPerLine() const + { return _secondsPerLine; } @@ -113,27 +126,32 @@ private: class QwtTimeScaleDraw: public QwtScaleDraw, public TimeScaleData { public: - QwtTimeScaleDraw():QwtScaleDraw(),TimeScaleData(){ - + QwtTimeScaleDraw():QwtScaleDraw(),TimeScaleData() + { } - virtual ~QwtTimeScaleDraw(){ - + virtual ~QwtTimeScaleDraw() + { } - virtual QwtText label(double value)const{ + virtual QwtText label(double value) const + { QwtText returnLabel(""); timespec lineTime = timespec_add(GetZeroTime(), (-value) * GetSecondsPerLine()); struct tm timeTm; gmtime_r(&lineTime.tv_sec, &timeTm); - returnLabel = (QString("").sprintf("%04d/%02d/%02d\n%02d:%02d:%02d.%03ld", timeTm.tm_year+1900, timeTm.tm_mon+1, timeTm.tm_mday, timeTm.tm_hour, timeTm.tm_min, timeTm.tm_sec, lineTime.tv_nsec/1000000)); - + returnLabel = (QString("").sprintf("%04d/%02d/%02d\n%02d:%02d:%02d.%03ld", + timeTm.tm_year+1900, timeTm.tm_mon+1, + timeTm.tm_mday, timeTm.tm_hour, timeTm.tm_min, + timeTm.tm_sec, lineTime.tv_nsec/1000000)); return returnLabel; } - virtual void initiateUpdate(){ - // Do this in one call rather than when zeroTime and secondsPerLine updates is to prevent the display from being updated too often... + virtual void initiateUpdate() + { + // Do this in one call rather than when zeroTime and secondsPerLine + // updates is to prevent the display from being updated too often... invalidateCache(); } @@ -146,16 +164,19 @@ private: class WaterfallZoomer: public QwtPlotZoomer, public TimeScaleData, public FreqOffsetAndPrecisionClass { public: - WaterfallZoomer(QwtPlotCanvas* canvas, const unsigned int freqPrecision):QwtPlotZoomer(canvas), TimeScaleData(), FreqOffsetAndPrecisionClass(freqPrecision) + WaterfallZoomer(QwtPlotCanvas* canvas, const unsigned int freqPrecision) + : QwtPlotZoomer(canvas), TimeScaleData(), + FreqOffsetAndPrecisionClass(freqPrecision) { setTrackerMode(QwtPicker::AlwaysOn); } - virtual ~WaterfallZoomer(){ - + virtual ~WaterfallZoomer() + { } - virtual void updateTrackerText(){ + virtual void updateTrackerText() + { updateDisplay(); } @@ -167,7 +188,10 @@ protected: timespec lineTime = timespec_add(GetZeroTime(), (-p.y()) * GetSecondsPerLine()); struct tm timeTm; gmtime_r(&lineTime.tv_sec, &timeTm); - yLabel = (QString("").sprintf("%04d/%02d/%02d %02d:%02d:%02d.%03ld", timeTm.tm_year+1900, timeTm.tm_mon+1, timeTm.tm_mday, timeTm.tm_hour, timeTm.tm_min, timeTm.tm_sec, lineTime.tv_nsec/1000000)); + yLabel = (QString("").sprintf("%04d/%02d/%02d %02d:%02d:%02d.%03ld", + timeTm.tm_year+1900, timeTm.tm_mon+1, + timeTm.tm_mday, timeTm.tm_hour, timeTm.tm_min, + timeTm.tm_sec, lineTime.tv_nsec/1000000)); QwtText t(QString("%1 %2, %3").arg((p.x() + GetCenterFrequency()) / ((GetFrequencyPrecision() == 0) ? 1.0 : 1000.0), 0, 'f', GetFrequencyPrecision()).arg( (GetFrequencyPrecision() == 0) ? "Hz" : "kHz").arg(yLabel)); @@ -312,15 +336,25 @@ WaterfallDisplayPlot::SetFrequencyRange(const double constStartFreq, } -double WaterfallDisplayPlot::GetStartFrequency()const{ +double +WaterfallDisplayPlot::GetStartFrequency() const +{ return _startFrequency; } -double WaterfallDisplayPlot::GetStopFrequency()const{ +double +WaterfallDisplayPlot::GetStopFrequency() const +{ return _stopFrequency; } -void WaterfallDisplayPlot::PlotNewData(const double* dataPoints, const int64_t numDataPoints, const double timePerFFT, const timespec timestamp, const int droppedFrames){ +void +WaterfallDisplayPlot::PlotNewData(const double* dataPoints, + const int64_t numDataPoints, + const double timePerFFT, + const timespec timestamp, + const int droppedFrames) +{ if(numDataPoints > 0){ if(numDataPoints != _numPoints){ _numPoints = numDataPoints; @@ -363,7 +397,10 @@ void WaterfallDisplayPlot::PlotNewData(const double* dataPoints, const int64_t n } } -void WaterfallDisplayPlot::SetIntensityRange(const double minIntensity, const double maxIntensity){ +void +WaterfallDisplayPlot::SetIntensityRange(const double minIntensity, + const double maxIntensity) +{ _waterfallData->setRange(QwtDoubleInterval(minIntensity, maxIntensity)); emit UpdatedLowerIntensityLevel(minIntensity); @@ -372,7 +409,9 @@ void WaterfallDisplayPlot::SetIntensityRange(const double minIntensity, const do _UpdateIntensityRangeDisplay(); } -void WaterfallDisplayPlot::replot(){ +void +WaterfallDisplayPlot::replot() +{ const timespec startTime = get_highres_clock(); QwtTimeScaleDraw* timeScale = (QwtTimeScaleDraw*)axisScaleDraw(QwtPlot::yLeft); @@ -406,11 +445,23 @@ void WaterfallDisplayPlot::replot(){ } } -int WaterfallDisplayPlot::GetIntensityColorMapType()const{ +void +WaterfallDisplayPlot::resizeSlot( QSize *s ) +{ + resize(s->width(), s->height()); +} + +int +WaterfallDisplayPlot::GetIntensityColorMapType() const +{ return _intensityColorMapType; } -void WaterfallDisplayPlot::SetIntensityColorMapType(const int newType, const QColor lowColor, const QColor highColor){ +void +WaterfallDisplayPlot::SetIntensityColorMapType(const int newType, + const QColor lowColor, + const QColor highColor) +{ if((_intensityColorMapType != newType) || ((newType == INTENSITY_COLOR_MAP_TYPE_USER_DEFINED) && (lowColor.isValid() && highColor.isValid()))){ @@ -458,15 +509,21 @@ void WaterfallDisplayPlot::SetIntensityColorMapType(const int newType, const QCo } } -const QColor WaterfallDisplayPlot::GetUserDefinedLowIntensityColor()const{ +const QColor +WaterfallDisplayPlot::GetUserDefinedLowIntensityColor() const +{ return _userDefinedLowIntensityColor; } -const QColor WaterfallDisplayPlot::GetUserDefinedHighIntensityColor()const{ +const QColor +WaterfallDisplayPlot::GetUserDefinedHighIntensityColor() const +{ return _userDefinedHighIntensityColor; } -void WaterfallDisplayPlot::_UpdateIntensityRangeDisplay(){ +void +WaterfallDisplayPlot::_UpdateIntensityRangeDisplay() +{ QwtScaleWidget *rightAxis = axisWidget(QwtPlot::yRight); rightAxis->setTitle("Intensity (dB)"); rightAxis->setColorBarEnabled(true); diff --git a/gr-qtgui/src/lib/WaterfallDisplayPlot.h b/gr-qtgui/src/lib/WaterfallDisplayPlot.h index fbbb69a5b..bb87fb09f 100644 --- a/gr-qtgui/src/lib/WaterfallDisplayPlot.h +++ b/gr-qtgui/src/lib/WaterfallDisplayPlot.h @@ -45,6 +45,9 @@ public: static const int INTENSITY_COLOR_MAP_TYPE_INCANDESCENT = 3; static const int INTENSITY_COLOR_MAP_TYPE_USER_DEFINED = 4; +public slots: + void resizeSlot( QSize *s ); + signals: void UpdatedLowerIntensityLevel(const double); void UpdatedUpperIntensityLevel(const double); diff --git a/gr-qtgui/src/lib/spectrumdisplayform.cc b/gr-qtgui/src/lib/spectrumdisplayform.cc Binary files differindex 36097d975..6d4329e44 100644 --- a/gr-qtgui/src/lib/spectrumdisplayform.cc +++ b/gr-qtgui/src/lib/spectrumdisplayform.cc diff --git a/gr-qtgui/src/lib/spectrumdisplayform.h b/gr-qtgui/src/lib/spectrumdisplayform.h index dbbf2567e..51ca365e4 100644 --- a/gr-qtgui/src/lib/spectrumdisplayform.h +++ b/gr-qtgui/src/lib/spectrumdisplayform.h @@ -36,7 +36,7 @@ class SpectrumDisplayForm : public QWidget, public Ui::SpectrumDisplayForm public slots: void resizeEvent( QResizeEvent * e ); void customEvent( QEvent * e ); - void AvgLineEdit_textChanged( const QString & valueString ); + void AvgLineEdit_valueChanged( int valueString ); void MaxHoldCheckBox_toggled( bool newState ); void MinHoldCheckBox_toggled( bool newState ); void MinHoldResetBtn_clicked(); diff --git a/gr-qtgui/src/lib/spectrumdisplayform.ui b/gr-qtgui/src/lib/spectrumdisplayform.ui index 9324f150b..1458488a0 100644 --- a/gr-qtgui/src/lib/spectrumdisplayform.ui +++ b/gr-qtgui/src/lib/spectrumdisplayform.ui @@ -5,687 +5,758 @@ <rect> <x>0</x> <y>0</y> - <width>633</width> - <height>436</height> + <width>657</width> + <height>536</height> </rect> </property> <property name="windowTitle" > <string>Spectrum Display</string> </property> - <widget class="QCheckBox" name="UseRFFrequenciesCheckBox" > - <property name="geometry" > - <rect> - <x>10</x> - <y>385</y> - <width>180</width> - <height>20</height> - </rect> - </property> - <property name="text" > - <string>Display RF Frequencies</string> - </property> - </widget> - <widget class="QComboBox" name="WindowComboBox" > - <property name="geometry" > - <rect> - <x>105</x> - <y>410</y> - <width>170</width> - <height>20</height> - </rect> - </property> - <property name="font" > - <font> - <pointsize>9</pointsize> - </font> - </property> - <item> - <property name="text" > - <string>Hamming</string> - </property> - </item> - <item> - <property name="text" > - <string>Hann</string> - </property> - </item> - <item> - <property name="text" > - <string>Blackman</string> - </property> - </item> - <item> - <property name="text" > - <string>Rectangular</string> - </property> - </item> - <item> - <property name="text" > - <string>Kaiser</string> - </property> - </item> - <item> - <property name="text" > - <string>Blackman-harris</string> - </property> - </item> - </widget> - <widget class="QLabel" name="WindowLbl" > - <property name="geometry" > - <rect> - <x>10</x> - <y>410</y> - <width>90</width> - <height>17</height> - </rect> - </property> - <property name="text" > - <string>Window:</string> - </property> - <property name="alignment" > - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - <property name="wordWrap" > - <bool>false</bool> - </property> - </widget> - <widget class="QLabel" name="FFTSizeLabel" > - <property name="geometry" > - <rect> - <x>405</x> - <y>385</y> - <width>116</width> - <height>20</height> - </rect> - </property> - <property name="text" > - <string>FFT Size:</string> - </property> - <property name="alignment" > - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - <property name="wordWrap" > - <bool>false</bool> - </property> - </widget> - <widget class="QComboBox" name="FFTSizeComboBox" > - <property name="geometry" > - <rect> - <x>525</x> - <y>385</y> - <width>100</width> - <height>20</height> - </rect> - </property> - <item> - <property name="text" > - <string>1024</string> - </property> - </item> - <item> - <property name="text" > - <string>2048</string> - </property> - </item> - <item> - <property name="text" > - <string>4096</string> - </property> - </item> - <item> - <property name="text" > - <string>8192</string> - </property> - </item> - <item> - <property name="text" > - <string>16384</string> - </property> - </item> - <item> - <property name="text" > - <string>32768</string> - </property> - </item> - </widget> - <widget class="QTabWidget" name="SpectrumTypeTab" > - <property name="geometry" > - <rect> - <x>0</x> - <y>0</y> - <width>630</width> - <height>380</height> - </rect> - </property> - <property name="currentIndex" > - <number>0</number> - </property> - <widget class="QWidget" name="FrequencyPage" > - <attribute name="title" > - <string>Frequency Display</string> - </attribute> - <widget class="QLineEdit" name="PowerLineEdit" > - <property name="geometry" > - <rect> - <x>480</x> - <y>320</y> - <width>60</width> - <height>20</height> - </rect> - </property> - <property name="text" > - <string>1</string> - </property> - </widget> - <widget class="QCheckBox" name="MinHoldCheckBox" > - <property name="geometry" > - <rect> - <x>10</x> - <y>325</y> - <width>95</width> - <height>20</height> - </rect> - </property> - <property name="text" > - <string>Min Hold</string> - </property> - <property name="checked" > - <bool>false</bool> - </property> - </widget> - <widget class="QLabel" name="AvgLabel" > - <property name="geometry" > - <rect> - <x>545</x> - <y>300</y> - <width>72</width> - <height>20</height> - </rect> - </property> - <property name="text" > - <string>Average</string> - </property> - <property name="alignment" > - <set>Qt::AlignCenter</set> - </property> - <property name="wordWrap" > - <bool>false</bool> - </property> - </widget> - <widget class="QPushButton" name="MinHoldResetBtn" > - <property name="geometry" > - <rect> - <x>105</x> - <y>325</y> - <width>61</width> - <height>20</height> - </rect> - </property> - <property name="text" > - <string>Reset</string> - </property> - </widget> - <widget class="QLineEdit" name="AvgLineEdit" > - <property name="geometry" > - <rect> - <x>550</x> - <y>320</y> - <width>60</width> - <height>20</height> - </rect> - </property> - <property name="text" > - <string>0</string> - </property> - </widget> - <widget class="QLabel" name="PowerLabel" > - <property name="geometry" > - <rect> - <x>475</x> - <y>300</y> - <width>72</width> - <height>20</height> - </rect> - </property> - <property name="text" > - <string>Power</string> - </property> - <property name="alignment" > - <set>Qt::AlignCenter</set> - </property> - <property name="wordWrap" > - <bool>false</bool> - </property> - </widget> - <widget class="QPushButton" name="MaxHoldResetBtn" > - <property name="geometry" > - <rect> - <x>105</x> - <y>300</y> - <width>61</width> - <height>20</height> - </rect> - </property> - <property name="text" > - <string>Reset</string> - </property> - </widget> - <widget class="QCheckBox" name="MaxHoldCheckBox" > - <property name="geometry" > - <rect> - <x>10</x> - <y>300</y> - <width>95</width> - <height>20</height> - </rect> - </property> - <property name="text" > - <string>Max Hold</string> - </property> - <property name="checked" > - <bool>false</bool> - </property> - </widget> - <widget class="QFrame" name="FrequencyPlotDisplayFrame" > - <property name="geometry" > - <rect> - <x>5</x> - <y>5</y> - <width>620</width> - <height>290</height> - </rect> - </property> - <property name="frameShape" > - <enum>QFrame::NoFrame</enum> - </property> - <property name="frameShadow" > - <enum>QFrame::Plain</enum> - </property> - </widget> - </widget> - <widget class="QWidget" name="WaterfallPage" > - <attribute name="title" > - <string>Waterfall Display</string> - </attribute> - <widget class="QLabel" name="textLabel1" > - <property name="geometry" > - <rect> - <x>5</x> - <y>0</y> - <width>85</width> - <height>21</height> - </rect> - </property> - <property name="text" > - <string><font size="-2">Intensity Display:</font></string> - </property> - <property name="wordWrap" > - <bool>false</bool> - </property> - </widget> - <widget class="QComboBox" name="WaterfallIntensityComboBox" > - <property name="geometry" > - <rect> - <x>90</x> - <y>0</y> - <width>121</width> - <height>25</height> - </rect> + <layout class="QGridLayout" name="gridLayout" > + <item row="1" column="3" > + <widget class="QComboBox" name="FFTSizeComboBox" > + <property name="sizePolicy" > + <sizepolicy vsizetype="Fixed" hsizetype="Fixed" > + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="maximumSize" > + <size> + <width>120</width> + <height>16777215</height> + </size> </property> <item> <property name="text" > - <string>Color</string> + <string>1024</string> </property> </item> <item> <property name="text" > - <string>White Hot</string> + <string>2048</string> </property> </item> <item> <property name="text" > - <string>Black Hot</string> + <string>4096</string> </property> </item> <item> <property name="text" > - <string>Incandescent</string> + <string>8192</string> </property> </item> <item> <property name="text" > - <string>User Defined</string> + <string>16384</string> + </property> + </item> + <item> + <property name="text" > + <string>32768</string> </property> </item> </widget> - <widget class="QwtWheel" name="WaterfallMaximumIntensityWheel" > - <property name="geometry" > - <rect> - <x>215</x> - <y>0</y> - <width>335</width> - <height>24</height> - </rect> - </property> - <property name="mouseTracking" > - <bool>true</bool> - </property> - <property name="focusPolicy" > - <enum>Qt::WheelFocus</enum> - </property> - <property name="valid" > - <bool>true</bool> - </property> - <property name="totalAngle" > - <double>200.000000000000000</double> - </property> - <property name="viewAngle" > - <double>20.000000000000000</double> - </property> - <property name="mass" > - <double>0.000000000000000</double> - </property> - </widget> - <widget class="QLabel" name="WaterfallMaximumIntensityLabel" > - <property name="geometry" > - <rect> - <x>563</x> - <y>3</y> - <width>55</width> - <height>21</height> - </rect> - </property> - <property name="text" > - <string>100 dB</string> - </property> - <property name="wordWrap" > - <bool>false</bool> - </property> - </widget> - <widget class="QFrame" name="WaterfallPlotDisplayFrame" > - <property name="geometry" > - <rect> - <x>5</x> - <y>30</y> - <width>615</width> - <height>295</height> - </rect> - </property> - <property name="frameShape" > - <enum>QFrame::NoFrame</enum> - </property> - <property name="frameShadow" > - <enum>QFrame::Plain</enum> - </property> - </widget> - <widget class="QwtWheel" name="WaterfallMinimumIntensityWheel" > - <property name="geometry" > - <rect> - <x>215</x> - <y>325</y> - <width>335</width> - <height>24</height> - </rect> - </property> - <property name="valid" > - <bool>true</bool> - </property> - <property name="totalAngle" > - <double>200.000000000000000</double> - </property> - <property name="viewAngle" > - <double>20.000000000000000</double> - </property> - <property name="mass" > - <double>0.000000000000000</double> - </property> - </widget> - <widget class="QLabel" name="WaterfallMinimumIntensityLabel" > - <property name="geometry" > - <rect> - <x>565</x> - <y>325</y> - <width>55</width> - <height>20</height> - </rect> - </property> - <property name="text" > - <string>-100 dB</string> - </property> - <property name="wordWrap" > - <bool>false</bool> - </property> - </widget> - <widget class="QPushButton" name="WaterfallAutoScaleBtn" > - <property name="geometry" > - <rect> - <x>0</x> - <y>325</y> - <width>135</width> - <height>21</height> - </rect> - </property> - <property name="toolTip" > - <string>Scales the Intensity to the current data extremes.</string> - </property> - <property name="text" > - <string>Auto Scale</string> - </property> - </widget> - </widget> - <widget class="QWidget" name="Waterfall3DPage" > - <attribute name="title" > - <string>3D Waterfall Display</string> - </attribute> - <widget class="QLabel" name="textLabel1_2" > - <property name="geometry" > - <rect> - <x>5</x> - <y>0</y> - <width>85</width> - <height>21</height> - </rect> - </property> + </item> + <item row="1" column="2" > + <widget class="QLabel" name="FFTSizeLabel" > <property name="text" > - <string><font size="-2">Intensity Display:</font></string> + <string>FFT Size:</string> </property> - <property name="wordWrap" > - <bool>false</bool> - </property> - </widget> - <widget class="QLabel" name="Waterfall3DMaximumIntensityLabel" > - <property name="geometry" > - <rect> - <x>563</x> - <y>3</y> - <width>55</width> - <height>21</height> - </rect> - </property> - <property name="text" > - <string>100 dB</string> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> </property> <property name="wordWrap" > <bool>false</bool> </property> </widget> - <widget class="QPushButton" name="Waterfall3DAutoScaleBtn" > - <property name="geometry" > - <rect> - <x>0</x> - <y>325</y> - <width>135</width> - <height>21</height> - </rect> - </property> - <property name="toolTip" > - <string>Scales the Intensity to the current data extremes.</string> - </property> - <property name="text" > - <string>Auto Scale</string> - </property> - </widget> - <widget class="QwtWheel" name="Waterfall3DMinimumIntensityWheel" > - <property name="geometry" > - <rect> - <x>215</x> - <y>325</y> - <width>335</width> - <height>24</height> - </rect> - </property> - <property name="valid" > - <bool>true</bool> - </property> - <property name="totalAngle" > - <double>200.000000000000000</double> - </property> - <property name="viewAngle" > - <double>20.000000000000000</double> - </property> - <property name="mass" > - <double>0.000000000000000</double> - </property> - </widget> - <widget class="QLabel" name="Waterfall3DMinimumIntensityLabel" > - <property name="geometry" > - <rect> - <x>565</x> - <y>325</y> - <width>55</width> - <height>20</height> - </rect> - </property> + </item> + <item row="1" column="0" > + <widget class="QCheckBox" name="UseRFFrequenciesCheckBox" > <property name="text" > - <string>-100 dB</string> - </property> - <property name="wordWrap" > - <bool>false</bool> + <string>Display RF Frequencies</string> </property> </widget> - <widget class="QFrame" name="Waterfall3DPlotDisplayFrame" > - <property name="geometry" > - <rect> - <x>5</x> - <y>30</y> - <width>615</width> - <height>295</height> - </rect> - </property> - <property name="frameShape" > - <enum>QFrame::NoFrame</enum> - </property> - <property name="frameShadow" > - <enum>QFrame::Plain</enum> - </property> - </widget> - <widget class="QComboBox" name="Waterfall3DIntensityComboBox" > - <property name="geometry" > - <rect> - <x>90</x> - <y>0</y> - <width>121</width> - <height>25</height> - </rect> - </property> - <item> - <property name="text" > - <string>Color</string> - </property> - </item> - <item> - <property name="text" > - <string>White Hot</string> - </property> - </item> - <item> - <property name="text" > - <string>Black Hot</string> - </property> - </item> + </item> + <item row="3" column="0" > + <layout class="QHBoxLayout" name="horizontalLayout" > <item> - <property name="text" > - <string>Incandescent</string> - </property> + <widget class="QLabel" name="WindowLbl" > + <property name="sizePolicy" > + <sizepolicy vsizetype="Fixed" hsizetype="Fixed" > + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text" > + <string>Window:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="wordWrap" > + <bool>false</bool> + </property> + </widget> </item> <item> - <property name="text" > - <string>User Defined</string> - </property> + <widget class="QComboBox" name="WindowComboBox" > + <property name="sizePolicy" > + <sizepolicy vsizetype="Fixed" hsizetype="Fixed" > + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize" > + <size> + <width>120</width> + <height>0</height> + </size> + </property> + <property name="maximumSize" > + <size> + <width>120</width> + <height>16777215</height> + </size> + </property> + <property name="font" > + <font> + <pointsize>9</pointsize> + </font> + </property> + <item> + <property name="text" > + <string>Hamming</string> + </property> + </item> + <item> + <property name="text" > + <string>Hann</string> + </property> + </item> + <item> + <property name="text" > + <string>Blackman</string> + </property> + </item> + <item> + <property name="text" > + <string>Rectangular</string> + </property> + </item> + <item> + <property name="text" > + <string>Kaiser</string> + </property> + </item> + <item> + <property name="text" > + <string>Blackman-harris</string> + </property> + </item> + </widget> </item> + </layout> + </item> + <item row="0" column="0" colspan="4" > + <widget class="QTabWidget" name="SpectrumTypeTab" > + <property name="currentIndex" > + <number>0</number> + </property> + <widget class="QWidget" name="FrequencyPage" > + <attribute name="title" > + <string>Frequency Display</string> + </attribute> + <layout class="QVBoxLayout" name="verticalLayout" > + <item> + <layout class="QVBoxLayout" name="verticalLayout_2" > + <item> + <widget class="QFrame" name="FrequencyPlotDisplayFrame" > + <property name="sizePolicy" > + <sizepolicy vsizetype="Preferred" hsizetype="Preferred" > + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize" > + <size> + <width>615</width> + <height>332</height> + </size> + </property> + <property name="sizeIncrement" > + <size> + <width>1</width> + <height>1</height> + </size> + </property> + <property name="frameShape" > + <enum>QFrame::NoFrame</enum> + </property> + <property name="frameShadow" > + <enum>QFrame::Plain</enum> + </property> + </widget> + </item> + <item> + <layout class="QGridLayout" name="gridLayout_2" > + <item row="1" column="0" > + <widget class="QCheckBox" name="MaxHoldCheckBox" > + <property name="text" > + <string>Max Hold</string> + </property> + <property name="checked" > + <bool>false</bool> + </property> + </widget> + </item> + <item row="2" column="0" > + <widget class="QCheckBox" name="MinHoldCheckBox" > + <property name="text" > + <string>Min Hold</string> + </property> + <property name="checked" > + <bool>false</bool> + </property> + </widget> + </item> + <item row="1" column="3" > + <widget class="QLabel" name="PowerLabel" > + <property name="minimumSize" > + <size> + <width>50</width> + <height>0</height> + </size> + </property> + <property name="maximumSize" > + <size> + <width>50</width> + <height>16777215</height> + </size> + </property> + <property name="text" > + <string>Power</string> + </property> + <property name="alignment" > + <set>Qt::AlignCenter</set> + </property> + <property name="wordWrap" > + <bool>false</bool> + </property> + </widget> + </item> + <item row="1" column="1" > + <widget class="QPushButton" name="MaxHoldResetBtn" > + <property name="sizePolicy" > + <sizepolicy vsizetype="Fixed" hsizetype="Fixed" > + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize" > + <size> + <width>25</width> + <height>0</height> + </size> + </property> + <property name="text" > + <string>Reset</string> + </property> + </widget> + </item> + <item row="1" column="4" > + <widget class="QLabel" name="AvgLabel" > + <property name="sizePolicy" > + <sizepolicy vsizetype="Fixed" hsizetype="Fixed" > + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize" > + <size> + <width>62</width> + <height>0</height> + </size> + </property> + <property name="text" > + <string>Average</string> + </property> + <property name="alignment" > + <set>Qt::AlignCenter</set> + </property> + <property name="wordWrap" > + <bool>false</bool> + </property> + </widget> + </item> + <item row="2" column="1" > + <widget class="QPushButton" name="MinHoldResetBtn" > + <property name="text" > + <string>Reset</string> + </property> + </widget> + </item> + <item row="2" column="4" > + <widget class="QSpinBox" name="AvgLineEdit" /> + </item> + <item row="2" column="3" > + <widget class="QLineEdit" name="PowerLineEdit" > + <property name="sizePolicy" > + <sizepolicy vsizetype="Fixed" hsizetype="Fixed" > + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize" > + <size> + <width>50</width> + <height>0</height> + </size> + </property> + <property name="maximumSize" > + <size> + <width>50</width> + <height>16777215</height> + </size> + </property> + <property name="text" > + <string>1</string> + </property> + </widget> + </item> + <item row="1" column="2" > + <spacer name="horizontalSpacer_2" > + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0" > + <size> + <width>325</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + </layout> + </item> + </layout> + </widget> + <widget class="QWidget" name="WaterfallPage" > + <attribute name="title" > + <string>Waterfall Display</string> + </attribute> + <layout class="QGridLayout" name="gridLayout_3" > + <item row="0" column="0" > + <widget class="QLabel" name="textLabel1" > + <property name="maximumSize" > + <size> + <width>100</width> + <height>16777215</height> + </size> + </property> + <property name="text" > + <string>Intensity Display:</string> + </property> + <property name="wordWrap" > + <bool>false</bool> + </property> + </widget> + </item> + <item row="0" column="2" > + <widget class="QwtWheel" name="WaterfallMaximumIntensityWheel" > + <property name="minimumSize" > + <size> + <width>200</width> + <height>0</height> + </size> + </property> + <property name="mouseTracking" > + <bool>true</bool> + </property> + <property name="focusPolicy" > + <enum>Qt::WheelFocus</enum> + </property> + <property name="valid" > + <bool>true</bool> + </property> + <property name="totalAngle" > + <double>200.000000000000000</double> + </property> + <property name="viewAngle" > + <double>20.000000000000000</double> + </property> + <property name="mass" > + <double>0.000000000000000</double> + </property> + </widget> + </item> + <item row="0" column="3" > + <widget class="QLabel" name="WaterfallMaximumIntensityLabel" > + <property name="maximumSize" > + <size> + <width>100</width> + <height>16777215</height> + </size> + </property> + <property name="text" > + <string>100 dB</string> + </property> + <property name="wordWrap" > + <bool>false</bool> + </property> + </widget> + </item> + <item row="1" column="0" colspan="4" > + <widget class="QFrame" name="WaterfallPlotDisplayFrame" > + <property name="minimumSize" > + <size> + <width>617</width> + <height>338</height> + </size> + </property> + <property name="frameShape" > + <enum>QFrame::NoFrame</enum> + </property> + <property name="frameShadow" > + <enum>QFrame::Plain</enum> + </property> + </widget> + </item> + <item row="2" column="2" > + <widget class="QwtWheel" name="WaterfallMinimumIntensityWheel" > + <property name="minimumSize" > + <size> + <width>200</width> + <height>0</height> + </size> + </property> + <property name="valid" > + <bool>true</bool> + </property> + <property name="totalAngle" > + <double>200.000000000000000</double> + </property> + <property name="viewAngle" > + <double>20.000000000000000</double> + </property> + <property name="mass" > + <double>0.000000000000000</double> + </property> + </widget> + </item> + <item row="2" column="3" > + <widget class="QLabel" name="WaterfallMinimumIntensityLabel" > + <property name="maximumSize" > + <size> + <width>100</width> + <height>16777215</height> + </size> + </property> + <property name="text" > + <string>-100 dB</string> + </property> + <property name="wordWrap" > + <bool>false</bool> + </property> + </widget> + </item> + <item row="2" column="0" colspan="2" > + <widget class="QPushButton" name="WaterfallAutoScaleBtn" > + <property name="maximumSize" > + <size> + <width>80</width> + <height>16777215</height> + </size> + </property> + <property name="toolTip" > + <string>Scales the Intensity to the current data extremes.</string> + </property> + <property name="text" > + <string>Auto Scale</string> + </property> + </widget> + </item> + <item row="0" column="1" > + <widget class="QComboBox" name="WaterfallIntensityComboBox" > + <property name="maximumSize" > + <size> + <width>100</width> + <height>16777215</height> + </size> + </property> + <item> + <property name="text" > + <string>Color</string> + </property> + </item> + <item> + <property name="text" > + <string>White Hot</string> + </property> + </item> + <item> + <property name="text" > + <string>Black Hot</string> + </property> + </item> + <item> + <property name="text" > + <string>Incandescent</string> + </property> + </item> + <item> + <property name="text" > + <string>User Defined</string> + </property> + </item> + </widget> + </item> + </layout> + <zorder>textLabel1</zorder> + <zorder>WaterfallMaximumIntensityWheel</zorder> + <zorder>WaterfallMaximumIntensityLabel</zorder> + <zorder>WaterfallPlotDisplayFrame</zorder> + <zorder>WaterfallMinimumIntensityWheel</zorder> + <zorder>WaterfallMinimumIntensityLabel</zorder> + <zorder>WaterfallAutoScaleBtn</zorder> + <zorder>WaterfallIntensityComboBox</zorder> + </widget> + <widget class="QWidget" name="Waterfall3DPage" > + <attribute name="title" > + <string>3D Waterfall Display</string> + </attribute> + <layout class="QGridLayout" name="gridLayout_6" > + <item row="0" column="0" > + <widget class="QLabel" name="textLabel1_2" > + <property name="minimumSize" > + <size> + <width>0</width> + <height>0</height> + </size> + </property> + <property name="maximumSize" > + <size> + <width>100</width> + <height>16777215</height> + </size> + </property> + <property name="text" > + <string>Intensity Display:</string> + </property> + <property name="wordWrap" > + <bool>false</bool> + </property> + </widget> + </item> + <item row="0" column="1" > + <widget class="QComboBox" name="Waterfall3DIntensityComboBox" > + <property name="maximumSize" > + <size> + <width>100</width> + <height>16777215</height> + </size> + </property> + <item> + <property name="text" > + <string>Color</string> + </property> + </item> + <item> + <property name="text" > + <string>White Hot</string> + </property> + </item> + <item> + <property name="text" > + <string>Black Hot</string> + </property> + </item> + <item> + <property name="text" > + <string>Incandescent</string> + </property> + </item> + <item> + <property name="text" > + <string>User Defined</string> + </property> + </item> + </widget> + </item> + <item row="0" column="2" > + <widget class="QwtWheel" name="Waterfall3DMaximumIntensityWheel" > + <property name="minimumSize" > + <size> + <width>200</width> + <height>0</height> + </size> + </property> + <property name="mouseTracking" > + <bool>true</bool> + </property> + <property name="focusPolicy" > + <enum>Qt::WheelFocus</enum> + </property> + <property name="valid" > + <bool>true</bool> + </property> + <property name="totalAngle" > + <double>200.000000000000000</double> + </property> + <property name="viewAngle" > + <double>20.000000000000000</double> + </property> + <property name="mass" > + <double>0.000000000000000</double> + </property> + </widget> + </item> + <item row="0" column="3" > + <widget class="QLabel" name="Waterfall3DMaximumIntensityLabel" > + <property name="maximumSize" > + <size> + <width>100</width> + <height>16777215</height> + </size> + </property> + <property name="text" > + <string>100 dB</string> + </property> + <property name="wordWrap" > + <bool>false</bool> + </property> + </widget> + </item> + <item row="1" column="0" colspan="4" > + <widget class="QFrame" name="Waterfall3DPlotDisplayFrame" > + <property name="frameShape" > + <enum>QFrame::NoFrame</enum> + </property> + <property name="frameShadow" > + <enum>QFrame::Plain</enum> + </property> + </widget> + </item> + <item row="2" column="0" colspan="2" > + <widget class="QPushButton" name="Waterfall3DAutoScaleBtn" > + <property name="minimumSize" > + <size> + <width>0</width> + <height>0</height> + </size> + </property> + <property name="maximumSize" > + <size> + <width>80</width> + <height>16777215</height> + </size> + </property> + <property name="sizeIncrement" > + <size> + <width>0</width> + <height>0</height> + </size> + </property> + <property name="toolTip" > + <string>Scales the Intensity to the current data extremes.</string> + </property> + <property name="text" > + <string>Auto Scale</string> + </property> + </widget> + </item> + <item row="2" column="2" > + <widget class="QwtWheel" name="Waterfall3DMinimumIntensityWheel" > + <property name="minimumSize" > + <size> + <width>200</width> + <height>0</height> + </size> + </property> + <property name="valid" > + <bool>true</bool> + </property> + <property name="totalAngle" > + <double>200.000000000000000</double> + </property> + <property name="viewAngle" > + <double>20.000000000000000</double> + </property> + <property name="mass" > + <double>0.000000000000000</double> + </property> + </widget> + </item> + <item row="2" column="3" > + <widget class="QLabel" name="Waterfall3DMinimumIntensityLabel" > + <property name="maximumSize" > + <size> + <width>100</width> + <height>16777215</height> + </size> + </property> + <property name="text" > + <string>-100 dB</string> + </property> + <property name="wordWrap" > + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </widget> + <widget class="QWidget" name="TimeDomainPage" > + <attribute name="title" > + <string>Time Domain Display</string> + </attribute> + <layout class="QGridLayout" name="gridLayout_4" > + <item row="0" column="0" > + <widget class="QFrame" name="TimeDomainDisplayFrame" > + <property name="minimumSize" > + <size> + <width>617</width> + <height>404</height> + </size> + </property> + <property name="frameShape" > + <enum>QFrame::NoFrame</enum> + </property> + <property name="frameShadow" > + <enum>QFrame::Plain</enum> + </property> + </widget> + </item> + </layout> + </widget> + <widget class="QWidget" name="ConstellationPage" > + <attribute name="title" > + <string>Constellation Display</string> + </attribute> + <layout class="QGridLayout" name="gridLayout_5" > + <item row="0" column="0" > + <widget class="QFrame" name="ConstellationDisplayFrame" > + <property name="minimumSize" > + <size> + <width>617</width> + <height>406</height> + </size> + </property> + <property name="frameShape" > + <enum>QFrame::StyledPanel</enum> + </property> + <property name="frameShadow" > + <enum>QFrame::Raised</enum> + </property> + </widget> + </item> + </layout> + </widget> </widget> - <widget class="QwtWheel" name="Waterfall3DMaximumIntensityWheel" > - <property name="geometry" > - <rect> - <x>215</x> - <y>0</y> - <width>335</width> - <height>24</height> - </rect> - </property> - <property name="mouseTracking" > - <bool>true</bool> - </property> - <property name="focusPolicy" > - <enum>Qt::WheelFocus</enum> - </property> - <property name="valid" > - <bool>true</bool> - </property> - <property name="totalAngle" > - <double>200.000000000000000</double> - </property> - <property name="viewAngle" > - <double>20.000000000000000</double> - </property> - <property name="mass" > - <double>0.000000000000000</double> - </property> - </widget> - </widget> - <widget class="QWidget" name="TimeDomainPage" > - <attribute name="title" > - <string>Time Domain Display</string> - </attribute> - <widget class="QFrame" name="TimeDomainDisplayFrame" > - <property name="geometry" > - <rect> - <x>5</x> - <y>5</y> - <width>620</width> - <height>340</height> - </rect> - </property> - <property name="frameShape" > - <enum>QFrame::NoFrame</enum> - </property> - <property name="frameShadow" > - <enum>QFrame::Plain</enum> - </property> - </widget> - </widget> - <widget class="QWidget" name="ConstellationPage" > - <attribute name="title" > - <string>Constellation Display</string> - </attribute> - <widget class="QFrame" name="ConstellationDisplayFrame" > - <property name="geometry" > - <rect> - <x>5</x> - <y>5</y> - <width>620</width> - <height>340</height> - </rect> - </property> - <property name="frameShape" > - <enum>QFrame::StyledPanel</enum> - </property> - <property name="frameShadow" > - <enum>QFrame::Raised</enum> - </property> - </widget> - </widget> - </widget> + </item> + </layout> </widget> <layoutdefault spacing="6" margin="11" /> <pixmapfunction>qPixmapFromMimeSource</pixmapfunction> @@ -698,14 +769,7 @@ </customwidgets> <tabstops> <tabstop>SpectrumTypeTab</tabstop> - <tabstop>MaxHoldCheckBox</tabstop> - <tabstop>MaxHoldResetBtn</tabstop> - <tabstop>MinHoldCheckBox</tabstop> - <tabstop>MinHoldResetBtn</tabstop> - <tabstop>PowerLineEdit</tabstop> - <tabstop>AvgLineEdit</tabstop> <tabstop>UseRFFrequenciesCheckBox</tabstop> - <tabstop>WindowComboBox</tabstop> <tabstop>FFTSizeComboBox</tabstop> <tabstop>WaterfallMaximumIntensityWheel</tabstop> <tabstop>WaterfallMinimumIntensityWheel</tabstop> @@ -787,22 +851,6 @@ </hints> </connection> <connection> - <sender>AvgLineEdit</sender> - <signal>textChanged(QString)</signal> - <receiver>SpectrumDisplayForm</receiver> - <slot>AvgLineEdit_textChanged(QString)</slot> - <hints> - <hint type="sourcelabel" > - <x>552</x> - <y>344</y> - </hint> - <hint type="destinationlabel" > - <x>20</x> - <y>20</y> - </hint> - </hints> - </connection> - <connection> <sender>PowerLineEdit</sender> <signal>textChanged(QString)</signal> <receiver>SpectrumDisplayForm</receiver> @@ -1010,5 +1058,21 @@ </hint> </hints> </connection> + <connection> + <sender>AvgLineEdit</sender> + <signal>valueChanged(int)</signal> + <receiver>SpectrumDisplayForm</receiver> + <slot>AvgLineEdit_valueChanged(int)</slot> + <hints> + <hint type="sourcelabel" > + <x>604</x> + <y>421</y> + </hint> + <hint type="destinationlabel" > + <x>328</x> + <y>260</y> + </hint> + </hints> + </connection> </connections> </ui> |