diff options
author | Tom Rondeau <trondeau@vt.edu> | 2013-02-27 11:29:02 -0500 |
---|---|---|
committer | Tom Rondeau <trondeau@vt.edu> | 2013-02-27 16:29:28 -0500 |
commit | 989ea0b76e5c4edddcd59e549bce1045536b144d (patch) | |
tree | cbda2d3b16f8c5c11250eb77cf948634becdb7de | |
parent | 46bceb9491075c08a3d665dd71ec8a9d70c13e25 (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.cc | 3 | ||||
-rw-r--r-- | gr-qtgui/lib/displayform.cc | 13 | ||||
-rw-r--r-- | gr-qtgui/lib/displayform.h | 3 | ||||
-rw-r--r-- | gr-qtgui/lib/freq_sink_c_impl.cc | 3 | ||||
-rw-r--r-- | gr-qtgui/lib/freq_sink_f_impl.cc | 3 | ||||
-rw-r--r-- | gr-qtgui/lib/time_raster_sink_b_impl.cc | 3 | ||||
-rw-r--r-- | gr-qtgui/lib/time_raster_sink_c_impl.cc | 3 | ||||
-rw-r--r-- | gr-qtgui/lib/time_raster_sink_f_impl.cc | 3 | ||||
-rw-r--r-- | gr-qtgui/lib/time_sink_c_impl.cc | 3 | ||||
-rw-r--r-- | gr-qtgui/lib/time_sink_f_impl.cc | 3 | ||||
-rw-r--r-- | gr-qtgui/lib/waterfall_sink_c_impl.cc | 3 | ||||
-rw-r--r-- | gr-qtgui/lib/waterfall_sink_f_impl.cc | 3 |
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]); |