summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gr-qtgui/include/gnuradio/qtgui/TimeDomainDisplayPlot.h2
-rw-r--r--gr-qtgui/include/gnuradio/qtgui/timecontrolpanel.h6
-rw-r--r--gr-qtgui/include/gnuradio/qtgui/timedisplayform.h1
-rw-r--r--gr-qtgui/lib/TimeDomainDisplayPlot.cc13
-rw-r--r--gr-qtgui/lib/timecontrolpanel.cc27
-rw-r--r--gr-qtgui/lib/timedisplayform.cc7
6 files changed, 51 insertions, 5 deletions
diff --git a/gr-qtgui/include/gnuradio/qtgui/TimeDomainDisplayPlot.h b/gr-qtgui/include/gnuradio/qtgui/TimeDomainDisplayPlot.h
index 3a51888a63..4b743e0b92 100644
--- a/gr-qtgui/include/gnuradio/qtgui/TimeDomainDisplayPlot.h
+++ b/gr-qtgui/include/gnuradio/qtgui/TimeDomainDisplayPlot.h
@@ -57,6 +57,7 @@ public slots:
const std::string &strunits);
void setAutoScale(bool state);
+ void setAutoScaleShot();
void setSemilogx(bool en);
void setSemilogy(bool en);
@@ -82,6 +83,7 @@ private:
bool d_semilogx;
bool d_semilogy;
+ bool d_autoscale_shot;
std::vector< std::vector<QwtPlotMarker*> > d_tag_markers;
std::vector<bool> d_tag_markers_en;
diff --git a/gr-qtgui/include/gnuradio/qtgui/timecontrolpanel.h b/gr-qtgui/include/gnuradio/qtgui/timecontrolpanel.h
index 6f8800c8dd..c8e4143dde 100644
--- a/gr-qtgui/include/gnuradio/qtgui/timecontrolpanel.h
+++ b/gr-qtgui/include/gnuradio/qtgui/timecontrolpanel.h
@@ -52,6 +52,7 @@ private:
TimeDisplayForm *d_parent;
QGroupBox *d_axes_box;
QGroupBox *d_trigger_box;
+ QGroupBox *d_extras_box;
QVBoxLayout *d_axes_layout;
QHBoxLayout *d_yoff_layout;
@@ -60,6 +61,7 @@ private:
QVBoxLayout *d_trigger_layout;
QHBoxLayout *d_trigger_level_layout;
QHBoxLayout *d_trigger_delay_layout;
+ QVBoxLayout *d_extras_layout;
QLabel *d_yoff_label;
QLabel *d_yrange_label;
@@ -67,7 +69,7 @@ private:
QLabel *d_trigger_level_label;
QLabel *d_trigger_delay_label;
- QCheckBox *d_autorange_check;
+ QCheckBox *d_autoscale_check;
QCheckBox *d_grid_check;
QPushButton *d_yoff_plus, *d_yoff_minus;
QPushButton *d_yrange_plus, *d_yrange_minus;
@@ -76,6 +78,8 @@ private:
QComboBox *d_trigger_slope_combo;
QPushButton *d_trigger_level_plus, *d_trigger_level_minus;
QPushButton *d_trigger_delay_plus, *d_trigger_delay_minus;
+ QPushButton *d_autoscale_button;
+ QPushButton *d_stop_button;
};
#endif /* TIME_CONTROL_PANEL_H */
diff --git a/gr-qtgui/include/gnuradio/qtgui/timedisplayform.h b/gr-qtgui/include/gnuradio/qtgui/timedisplayform.h
index ab88a5afdd..0dfab2aee4 100644
--- a/gr-qtgui/include/gnuradio/qtgui/timedisplayform.h
+++ b/gr-qtgui/include/gnuradio/qtgui/timedisplayform.h
@@ -64,6 +64,7 @@ public slots:
void setNPoints(const int);
void setStem(bool en);
void autoScale(bool en);
+ void autoScaleShot();
void setSemilogx(bool en);
void setSemilogy(bool en);
void tagMenuSlot(bool en);
diff --git a/gr-qtgui/lib/TimeDomainDisplayPlot.cc b/gr-qtgui/lib/TimeDomainDisplayPlot.cc
index 2602c0a609..16ba4a39c6 100644
--- a/gr-qtgui/lib/TimeDomainDisplayPlot.cc
+++ b/gr-qtgui/lib/TimeDomainDisplayPlot.cc
@@ -152,6 +152,7 @@ TimeDomainDisplayPlot::TimeDomainDisplayPlot(int nplots, QWidget* parent)
d_semilogx = false;
d_semilogy = false;
+ d_autoscale_shot = false;
setAxisScaleEngine(QwtPlot::xBottom, new QwtLinearScaleEngine);
setXaxis(0, d_numPoints);
@@ -401,6 +402,10 @@ TimeDomainDisplayPlot::plotNewData(const std::vector<double*> dataPoints,
}
}
_autoScale(bottom, top);
+ if(d_autoscale_shot) {
+ d_autoscale_state = false;
+ d_autoscale_shot = false;
+ }
}
replot();
@@ -490,6 +495,14 @@ TimeDomainDisplayPlot::setAutoScale(bool state)
}
void
+TimeDomainDisplayPlot::setAutoScaleShot()
+{
+ d_autoscale_state = true;
+ d_autoscale_shot = true;
+}
+
+
+void
TimeDomainDisplayPlot::setSampleRate(double sr, double units,
const std::string &strunits)
{
diff --git a/gr-qtgui/lib/timecontrolpanel.cc b/gr-qtgui/lib/timecontrolpanel.cc
index ab96a41a9d..f02e536572 100644
--- a/gr-qtgui/lib/timecontrolpanel.cc
+++ b/gr-qtgui/lib/timecontrolpanel.cc
@@ -29,7 +29,7 @@ TimeControlPanel::TimeControlPanel(TimeDisplayForm *form)
// Set up the box for axes items
d_axes_box = new QGroupBox("Axes");
d_axes_layout = new QVBoxLayout;
- d_autorange_check = new QCheckBox("Autorange");
+ d_autoscale_check = new QCheckBox("Autoscale");
d_grid_check = new QCheckBox("Grid");
d_yoff_layout = new QHBoxLayout;
@@ -96,9 +96,15 @@ TimeControlPanel::TimeControlPanel(TimeDisplayForm *form)
d_trigger_delay_layout->addWidget(d_trigger_delay_plus);
d_trigger_delay_layout->addWidget(d_trigger_delay_minus);
+ // Set up the box for other items
+ d_extras_box = new QGroupBox("Extras");
+ d_extras_layout = new QVBoxLayout;
+ d_autoscale_button = new QPushButton("Autoscale");
+ d_stop_button = new QPushButton("Stop");
+ d_stop_button->setCheckable(true);
// Set up the boxes into the layout
- d_axes_layout->addWidget(d_autorange_check);
+ d_axes_layout->addWidget(d_autoscale_check);
d_axes_layout->addWidget(d_grid_check);
d_axes_layout->addLayout(d_yoff_layout);
d_axes_layout->addLayout(d_yrange_layout);
@@ -111,12 +117,18 @@ TimeControlPanel::TimeControlPanel(TimeDisplayForm *form)
d_trigger_layout->addLayout(d_trigger_delay_layout);
d_trigger_box->setLayout(d_trigger_layout);
+ d_extras_layout->addWidget(d_autoscale_button);
+ d_extras_layout->addWidget(d_stop_button);
+ d_extras_box->setLayout(d_extras_layout);
+
addWidget(d_axes_box);
addWidget(d_trigger_box);
+ addWidget(d_extras_box);
addItem(new QSpacerItem(0, 0, QSizePolicy::Minimum,
QSizePolicy::Expanding));
- connect(d_autorange_check, SIGNAL(clicked(bool)),
+ // Connect up the control signals/slots
+ connect(d_autoscale_check, SIGNAL(clicked(bool)),
d_parent, SLOT(autoScale(bool)));
connect(d_grid_check, SIGNAL(clicked(bool)),
d_parent, SLOT(setGrid(bool)));
@@ -146,14 +158,21 @@ TimeControlPanel::TimeControlPanel(TimeDisplayForm *form)
d_parent, SLOT(notifyTriggerDelayPlus()));
connect(d_trigger_delay_minus, SIGNAL(pressed(void)),
d_parent, SLOT(notifyTriggerDelayMinus()));
+
+ connect(d_autoscale_button, SIGNAL(pressed(void)),
+ d_parent, SLOT(autoScaleShot(void)));
+ connect(d_stop_button, SIGNAL(pressed(void)),
+ d_parent, SLOT(setStop(void)));
}
TimeControlPanel::~TimeControlPanel()
{
removeWidget(d_axes_box);
removeWidget(d_trigger_box);
+ removeWidget(d_extras_box);
delete d_axes_box;
delete d_trigger_box;
+ delete d_extras_box;
// All other children of the boxes are automatically deleted.
}
@@ -161,7 +180,7 @@ TimeControlPanel::~TimeControlPanel()
void
TimeControlPanel::toggleAutoScale(bool en)
{
- d_autorange_check->setChecked(en);
+ d_autoscale_check->setChecked(en);
}
void
diff --git a/gr-qtgui/lib/timedisplayform.cc b/gr-qtgui/lib/timedisplayform.cc
index 9a30b30bfe..cc8592715e 100644
--- a/gr-qtgui/lib/timedisplayform.cc
+++ b/gr-qtgui/lib/timedisplayform.cc
@@ -308,6 +308,13 @@ TimeDisplayForm::autoScale(bool en)
}
void
+TimeDisplayForm::autoScaleShot()
+{
+ getPlot()->setAutoScaleShot();
+ emit signalReplot();
+}
+
+void
TimeDisplayForm::setSemilogx(bool en)
{
d_semilogx = en;