diff libgui/src/main-window.cc @ 16479:7a71ea0b7ae9

eliminate event listener class * main-window.h, main-window.cc (main_window::exit): New function. (main_window::_ocxtave_qt_event_listener): Delete member variable and all uses. main_window::construct_octave_qt_link): connect _octave_qt_link::octave_thread_finished to main_window::exit. * octave-qt-event-listener.h, octave-qt-event-listener.cc: Delete. * libgui/src/module.mk (octave_gui_MOC, noinst_HEADERS, src_libgui_src_la_SOURCES): Update lists. * octave-qt-link.h, octave-qt-link.cc (octave_qt_link::octave_thread_finished): New signal. (octave_qt_link::~octave_qt_link): Delete main_thread. (octave_qt_link::octave_qt_link): Connect main_thread::finished and main_thread::terminated to octave_qt_link::octave_thread_finished signal. * octave-event-listener.h: Delete. * libinterp/interp-core/module.mk (INTERPFCN_INC): Remove it from the list. * octave-link.h, octave-link.cc (octave_exit_hook): Delete. (octave_link::discard_events, octave_link::do_discard_events, octave_link::exit, octave_link::do_exit): New functions. (octave_link::event_listener): Delete member variable and all uses. (octave_link::about_to_exit, octave_link::register_event_listener, octave_link::do_about_to_exit, octave_link::do_register_event_listener): Delete. (octave_link::accepting_events): New member variable. (octave_link::octave_link): Set octave_exit to octave_link::exit. Initialize accepting_events. (octave_link::do_post_event): Only add to gui_event_queue if accepting_events is true.
author John W. Eaton <jwe@octave.org>
date Tue, 09 Apr 2013 13:47:43 -0400
parents 079ec7ce60e0
children fa842e78f491
line wrap: on
line diff
--- a/libgui/src/main-window.cc	Tue Apr 09 03:40:28 2013 -0400
+++ b/libgui/src/main-window.cc	Tue Apr 09 13:47:43 2013 -0400
@@ -91,9 +91,6 @@
   // deleted before this main_window is.  Otherwise, some will be
   // attached to a non-existent parent.
 
-  if (_octave_qt_event_listener)
-    delete _octave_qt_event_listener;
-
   octave_link::connect_link (0);
   delete _octave_qt_link;
 }
@@ -266,6 +263,12 @@
 }
 
 void
+main_window::exit (void)
+{
+  qApp->quit ();
+}
+
+void
 main_window::reset_windows ()
 {
   // TODO: Implement.
@@ -577,10 +580,6 @@
 
   setStatusBar (status_bar);
 
-  _octave_qt_event_listener = new octave_qt_event_listener ();
-
-  // FIXME -- is it possible to eliminate the event_listenter?
-
   construct_octave_qt_link ();
 
   QDir curr_dir;
@@ -592,6 +591,9 @@
 {
   _octave_qt_link = new octave_qt_link ();
 
+  connect (_octave_qt_link, SIGNAL (octave_thread_finished ()),
+           this, SLOT (exit ()));
+
   connect (_octave_qt_link,
            SIGNAL (set_workspace_signal
                    (const QString&, const QStringList&, const QStringList&,
@@ -648,8 +650,6 @@
   _octave_qt_link->execute_interpreter ();
 
   octave_link::connect_link (_octave_qt_link);
-
-  octave_link::register_event_listener (_octave_qt_event_listener);
 }
 
 void