summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Rondeau <trondeau@vt.edu>2013-02-27 11:29:02 -0500
committerTom Rondeau <trondeau@vt.edu>2013-02-27 16:29:28 -0500
commit989ea0b76e5c4edddcd59e549bce1045536b144d (patch)
treecbda2d3b16f8c5c11250eb77cf948634becdb7de
parent46bceb9491075c08a3d665dd71ec8a9d70c13e25 (diff)
qtgui: these can be closed from two directions (block or qwidget), this closes all events for either way.
-rw-r--r--gr-qtgui/lib/const_sink_c_impl.cc3
-rw-r--r--gr-qtgui/lib/displayform.cc13
-rw-r--r--gr-qtgui/lib/displayform.h3
-rw-r--r--gr-qtgui/lib/freq_sink_c_impl.cc3
-rw-r--r--gr-qtgui/lib/freq_sink_f_impl.cc3
-rw-r--r--gr-qtgui/lib/time_raster_sink_b_impl.cc3
-rw-r--r--gr-qtgui/lib/time_raster_sink_c_impl.cc3
-rw-r--r--gr-qtgui/lib/time_raster_sink_f_impl.cc3
-rw-r--r--gr-qtgui/lib/time_sink_c_impl.cc3
-rw-r--r--gr-qtgui/lib/time_sink_f_impl.cc3
-rw-r--r--gr-qtgui/lib/waterfall_sink_c_impl.cc3
-rw-r--r--gr-qtgui/lib/waterfall_sink_f_impl.cc3
12 files changed, 45 insertions, 1 deletions
diff --git a/gr-qtgui/lib/const_sink_c_impl.cc b/gr-qtgui/lib/const_sink_c_impl.cc
index 9b01d1659e..b623dc2175 100644
--- a/gr-qtgui/lib/const_sink_c_impl.cc
+++ b/gr-qtgui/lib/const_sink_c_impl.cc
@@ -75,6 +75,9 @@ namespace gr {
const_sink_c_impl::~const_sink_c_impl()
{
+ if(!d_main_gui->isClosed())
+ d_main_gui->close();
+
// d_main_gui is a qwidget destroyed with its parent
for(int i = 0; i < d_nconnections; i++) {
fft::free(d_residbufs_real[i]);
diff --git a/gr-qtgui/lib/displayform.cc b/gr-qtgui/lib/displayform.cc
index 1f0e27bee6..276539cdde 100644
--- a/gr-qtgui/lib/displayform.cc
+++ b/gr-qtgui/lib/displayform.cc
@@ -28,6 +28,8 @@
DisplayForm::DisplayForm(int nplots, QWidget* parent)
: QWidget(parent), _nplots(nplots), _systemSpecifiedFlag(false)
{
+ _isclosed = false;
+
// Set the initial plot size
resize(QSize(800, 600));
@@ -128,6 +130,8 @@ DisplayForm::DisplayForm(int nplots, QWidget* parent)
DisplayForm::~DisplayForm()
{
+ _isclosed = true;
+
// Qt deletes children when parent is deleted
// Don't worry about deleting Display Plots - they are deleted when parents are deleted
@@ -178,6 +182,12 @@ DisplayForm::Reset()
{
}
+bool
+DisplayForm::isClosed() const
+{
+ return _isclosed;
+}
+
void
DisplayForm::enableMenu(bool en)
{
@@ -185,8 +195,9 @@ DisplayForm::enableMenu(bool en)
}
void
-DisplayForm::closeEvent( QCloseEvent *e )
+DisplayForm::closeEvent(QCloseEvent *e)
{
+ _isclosed = true;
qApp->processEvents();
QWidget::closeEvent(e);
}
diff --git a/gr-qtgui/lib/displayform.h b/gr-qtgui/lib/displayform.h
index 0d105bd83d..31dc757bb6 100644
--- a/gr-qtgui/lib/displayform.h
+++ b/gr-qtgui/lib/displayform.h
@@ -43,6 +43,7 @@ class DisplayForm : public QWidget
virtual DisplayPlot* getPlot() = 0;
void Reset();
+ bool isClosed() const;
void enableMenu(bool en=true);
@@ -91,6 +92,8 @@ signals:
void plotPointSelected(const QPointF p, int type);
protected:
+ bool _isclosed;
+
int _nplots;
QGridLayout *_layout;
diff --git a/gr-qtgui/lib/freq_sink_c_impl.cc b/gr-qtgui/lib/freq_sink_c_impl.cc
index 3755df0552..b1f9a2b1a1 100644
--- a/gr-qtgui/lib/freq_sink_c_impl.cc
+++ b/gr-qtgui/lib/freq_sink_c_impl.cc
@@ -86,6 +86,9 @@ namespace gr {
freq_sink_c_impl::~freq_sink_c_impl()
{
+ if(!d_main_gui->isClosed())
+ d_main_gui->close();
+
for(int i = 0; i < d_nconnections; i++) {
fft::free(d_residbufs[i]);
fft::free(d_magbufs[i]);
diff --git a/gr-qtgui/lib/freq_sink_f_impl.cc b/gr-qtgui/lib/freq_sink_f_impl.cc
index 807be83948..f357ae10be 100644
--- a/gr-qtgui/lib/freq_sink_f_impl.cc
+++ b/gr-qtgui/lib/freq_sink_f_impl.cc
@@ -86,6 +86,9 @@ namespace gr {
freq_sink_f_impl::~freq_sink_f_impl()
{
+ if(!d_main_gui->isClosed())
+ d_main_gui->close();
+
for(int i = 0; i < d_nconnections; i++) {
fft::free(d_residbufs[i]);
fft::free(d_magbufs[i]);
diff --git a/gr-qtgui/lib/time_raster_sink_b_impl.cc b/gr-qtgui/lib/time_raster_sink_b_impl.cc
index 11821a462c..4d6d864b50 100644
--- a/gr-qtgui/lib/time_raster_sink_b_impl.cc
+++ b/gr-qtgui/lib/time_raster_sink_b_impl.cc
@@ -89,6 +89,9 @@ namespace gr {
time_raster_sink_b_impl::~time_raster_sink_b_impl()
{
+ if(!d_main_gui->isClosed())
+ d_main_gui->close();
+
fft::free(d_tmpflt);
for(int i = 0; i < d_nconnections; i++) {
fft::free(d_residbufs[i]);
diff --git a/gr-qtgui/lib/time_raster_sink_c_impl.cc b/gr-qtgui/lib/time_raster_sink_c_impl.cc
index a0b1259157..17098f0d93 100644
--- a/gr-qtgui/lib/time_raster_sink_c_impl.cc
+++ b/gr-qtgui/lib/time_raster_sink_c_impl.cc
@@ -66,6 +66,9 @@ namespace gr {
time_raster_sink_c_impl::~time_raster_sink_c_impl()
{
+ if(!d_main_gui->isClosed())
+ d_main_gui->close();
+
for(int i = 0; i < d_nconnections; i++) {
fft::free(d_residbufs[i]);
}
diff --git a/gr-qtgui/lib/time_raster_sink_f_impl.cc b/gr-qtgui/lib/time_raster_sink_f_impl.cc
index 5def19f406..748b82e6f8 100644
--- a/gr-qtgui/lib/time_raster_sink_f_impl.cc
+++ b/gr-qtgui/lib/time_raster_sink_f_impl.cc
@@ -87,6 +87,9 @@ namespace gr {
time_raster_sink_f_impl::~time_raster_sink_f_impl()
{
+ if(!d_main_gui->isClosed())
+ d_main_gui->close();
+
fft::free(d_tmpflt);
for(int i = 0; i < d_nconnections; i++) {
fft::free(d_residbufs[i]);
diff --git a/gr-qtgui/lib/time_sink_c_impl.cc b/gr-qtgui/lib/time_sink_c_impl.cc
index 27d7eb3f3e..2edb83fa12 100644
--- a/gr-qtgui/lib/time_sink_c_impl.cc
+++ b/gr-qtgui/lib/time_sink_c_impl.cc
@@ -73,6 +73,9 @@ namespace gr {
time_sink_c_impl::~time_sink_c_impl()
{
+ if(!d_main_gui->isClosed())
+ d_main_gui->close();
+
// d_main_gui is a qwidget destroyed with its parent
for(int i = 0; i < d_nconnections; i++) {
fft::free(d_residbufs[i]);
diff --git a/gr-qtgui/lib/time_sink_f_impl.cc b/gr-qtgui/lib/time_sink_f_impl.cc
index 5bb89c7d59..39a62d3d6b 100644
--- a/gr-qtgui/lib/time_sink_f_impl.cc
+++ b/gr-qtgui/lib/time_sink_f_impl.cc
@@ -73,6 +73,9 @@ namespace gr {
time_sink_f_impl::~time_sink_f_impl()
{
+ if(!d_main_gui->isClosed())
+ d_main_gui->close();
+
// d_main_gui is a qwidget destroyed with its parent
for(int i = 0; i < d_nconnections; i++) {
fft::free(d_residbufs[i]);
diff --git a/gr-qtgui/lib/waterfall_sink_c_impl.cc b/gr-qtgui/lib/waterfall_sink_c_impl.cc
index 617d6b5442..72908b51b9 100644
--- a/gr-qtgui/lib/waterfall_sink_c_impl.cc
+++ b/gr-qtgui/lib/waterfall_sink_c_impl.cc
@@ -85,6 +85,9 @@ namespace gr {
waterfall_sink_c_impl::~waterfall_sink_c_impl()
{
+ if(!d_main_gui->isClosed())
+ d_main_gui->close();
+
for(int i = 0; i < d_nconnections; i++) {
fft::free(d_residbufs[i]);
fft::free(d_magbufs[i]);
diff --git a/gr-qtgui/lib/waterfall_sink_f_impl.cc b/gr-qtgui/lib/waterfall_sink_f_impl.cc
index a17f73a248..bdf1159e5a 100644
--- a/gr-qtgui/lib/waterfall_sink_f_impl.cc
+++ b/gr-qtgui/lib/waterfall_sink_f_impl.cc
@@ -84,6 +84,9 @@ namespace gr {
waterfall_sink_f_impl::~waterfall_sink_f_impl()
{
+ if(!d_main_gui->isClosed())
+ d_main_gui->close();
+
for(int i = 0; i < d_nconnections; i++) {
fft::free(d_residbufs[i]);
fft::free(d_magbufs[i]);