Cleaning up Qt code. This mostly reformats the code to be more consistent with our...
authortrondeau <trondeau@221aa14e-8319-0410-a670-987f0aec2ac5>
Tue, 11 Aug 2009 22:02:56 +0000 (22:02 +0000)
committertrondeau <trondeau@221aa14e-8319-0410-a670-987f0aec2ac5>
Tue, 11 Aug 2009 22:02:56 +0000 (22:02 +0000)
git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@11572 221aa14e-8319-0410-a670-987f0aec2ac5

13 files changed:
gr-qtgui/src/lib/ConstellationDisplayPlot.cc
gr-qtgui/src/lib/ConstellationDisplayPlot.h
gr-qtgui/src/lib/FrequencyDisplayPlot.cc
gr-qtgui/src/lib/FrequencyDisplayPlot.h
gr-qtgui/src/lib/TimeDomainDisplayPlot.cc
gr-qtgui/src/lib/TimeDomainDisplayPlot.h
gr-qtgui/src/lib/Waterfall3DDisplayPlot.cc
gr-qtgui/src/lib/Waterfall3DDisplayPlot.h
gr-qtgui/src/lib/WaterfallDisplayPlot.cc
gr-qtgui/src/lib/WaterfallDisplayPlot.h
gr-qtgui/src/lib/spectrumdisplayform.cc
gr-qtgui/src/lib/spectrumdisplayform.h
gr-qtgui/src/lib/spectrumdisplayform.ui

index 10355f9f0bf4eccd12510ddb2e2f87d01e5d14b3..792096dedcd5c34f42ecf40bf321b5b052b81f1c 100644 (file)
@@ -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);
 }
 
index 612cd2b3933c4d463e7ca282a950115a04abd83d..1b73e7cc611e462d6ca4523cd09da5ddf5b1bb0c 100644 (file)
 #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);
 
index e299157f515a34f3378a17923f1a83bbeba11d36..7deff85436e6f9cac600c8bf01b1d0ec68dce073 100644 (file)
@@ -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,
index 5e828296211df72016aa3294285f988d7eb29075..785efe694b531729e699d868b29c3921bd92e3a3 100644 (file)
@@ -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;
index 6d8ef6ee40e6b4c1ff672eb58eca617d687d4dd0..cb18b44184db14dfdb1f2e4301bf56cfff112908 100644 (file)
@@ -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){
index 56d44539d8936b01977a08d34d6497612771db45..8d98abac6d422ee99881c665cfe76ae73f427a49 100644 (file)
@@ -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);
 
index 1b6650613190b827e1a9b38762d08fc98311fd8c..f676cb4af2ac529de9295b7bf428ebfd9b8972e7 100644 (file)
@@ -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;
 }
 
index f46f260e37cd6cd0e2268f4d452a033dc9f55550..272bdf69706561d1b6af34df105363c3c5a902ad 100644 (file)
@@ -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);
index ad167f097aa3cc00643aec1f0a8ed7fe4f896a37..f6d0cc0ba77c5e67e3cad8b44cb68b37a3f5424d 100644 (file)
 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);
index fbbb69a5bd7ed77a142fd449b4eac579b6646821..bb87fb09f4944fbcd7474db0b4b798eb9e10e89e 100644 (file)
@@ -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);
index 36097d9758344fc48f3fd7816c33e1999c5d540c..6d4329e4482afd74496848e1cde609fbf3770991 100644 (file)
Binary files a/gr-qtgui/src/lib/spectrumdisplayform.cc and b/gr-qtgui/src/lib/spectrumdisplayform.cc differ
index dbbf2567e23ed5043ef1da72e33ab2959c9675bf..51ca365e4e64892004252c70e153480930fd48d4 100644 (file)
@@ -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();
index 9324f150b2df35447493890e95f5e2d1faa55396..1458488a0dcd49be1cc5a67c38496e6073b302c3 100644 (file)
    <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>&lt;font size="-2">Intensity Display:&lt;/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>&lt;font size="-2">Intensity Display:&lt;/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>
  </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>
     </hint>
    </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>
     </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>