diff libgui/src/main-window.cc @ 16438:a971d8bdaadc

use signals instead of event queue for entering/leaving debug mode * file-editor-interface.h (file_editor_interface::handle_enter_debug_mode): Rename from file_editor_interface::handle_entered_debug_mode. Change all uses. (file_editor_interface::handle_exit_debug_mode): Rename from file_editor_interface::handle_quit_debug_mode. Change all uses. * file_editor.h, file_editor.cc (file_editor::handle_enter_debug_mode): Rename from file_editor::handle_entered_debug_mode. Change all uses. (file_editor::handle_exit_debug_mode): Rename from file_editor::handle_quit_debug_mode. Change all uses. * main-window.h, main-window.cc (main_window::handle_enter_debugger): Rename from main_window::handle_entered_debug_mode. Change all uses. (main_window::handle_exit_debugger): Rename from main_window::handle_quit_debug_mode. Change all uses. (main_window::construct): Delete signal connection from _octave_qt_event_listener::entered_debug_mode_signal to main_window::handle_entered_debug_mode. Delete signal connection from _octave_qt_event_listener::quit_debug_mode_signal to main_window::handle_quit_debug_mode. Connect _octave_qt_link::enter_debugger_signal signal to main_window::handle_enter_debugger. Connect _octave_qt_link::exit_debugger_signal signal to main_window::handle_exit_debugger. * octave-qt-event-listener.h, octave-qt-event-listener.cc (octave_qt_event_listener::entered_debug_mode, octave_qt_event_listener::quit_debug_mode): Delete. (octave_qt_event_listener::entered_debug_mode_signal, octave_qt_event_listener::quit_debug_mode_signal): Delete signals. * octave-qt-link.h, octave-qt-link.cc (octave_qt_link::do_enter_debugger_event): Emit enter_debugger_signal. (octave_qt_link::do_execute_in_debugger_event): New function. (octave_qt_link::do_exit_debugger_event): Emit exit_debugger_signal. (octave_qt_link::enter_debugger_signal, octave_qt_link::exit_debugger_signal): New signals. * octave-event-listener.h (octave_event_listener::entered_debug_mode, octave_event_listener::quit_debug_mode): Delete. * input.cc (octave_base_reader::octave_gets): Call octave_link::exit_debugger_event if not debugging. (execute_in_debugger_handler): Rename from exit_debugger_handler. Change all uses. Call octave_link::execute_in_debugger_event instead of octave_link::exit_debugger_event. * octave-link.h, octave-link.cc (octave_link::do_generate_events): Don't call debugging mode functions here. (octave_link::enter_debugger_event): Set instance->debugging to true. (octave_link::execute_in_debugger_event): New function. (octave_link::exit_debugger_event): Don't do anything unless instance->debugging is true. Toggle instance->debugging.
author John W. Eaton <jwe@octave.org>
date Fri, 05 Apr 2013 03:04:56 -0400
parents 919796a440c6
children 7a2ee6ea7800
line wrap: on
line diff
--- a/libgui/src/main-window.cc	Fri Apr 05 00:40:12 2013 -0400
+++ b/libgui/src/main-window.cc	Fri Apr 05 03:04:56 2013 -0400
@@ -476,30 +476,34 @@
 }
 
 void
-main_window::handle_entered_debug_mode ()
+main_window::handle_enter_debugger (void)
 {
   setWindowTitle ("Octave (Debugging)");
+
   _debug_continue->setEnabled (true);
   _debug_step_into->setEnabled (true);
   _debug_step_over->setEnabled (true);
   _debug_step_out->setEnabled (true);
   _debug_quit->setEnabled (true);
+
 #ifdef HAVE_QSCINTILLA
-  _file_editor->handle_entered_debug_mode ();
+  _file_editor->handle_enter_debug_mode ();
 #endif
 }
 
 void
-main_window::handle_quit_debug_mode ()
+main_window::handle_exit_debugger (void)
 {
   setWindowTitle ("Octave");
+
   _debug_continue->setEnabled (false);
   _debug_step_into->setEnabled (false);
   _debug_step_over->setEnabled (false);
   _debug_step_out->setEnabled (false);
   _debug_quit->setEnabled (false);
+
 #ifdef HAVE_QSCINTILLA
-  _file_editor->handle_quit_debug_mode ();
+  _file_editor->handle_exit_debug_mode ();
 #endif
 }
 
@@ -1148,16 +1152,6 @@
            this,
            SLOT (update_workspace ()));
 
-  connect (_octave_qt_event_listener,
-           SIGNAL (entered_debug_mode_signal ()),
-           this,
-           SLOT(handle_entered_debug_mode ()));
-
-  connect (_octave_qt_event_listener,
-           SIGNAL (quit_debug_mode_signal ()),
-           this,
-           SLOT (handle_quit_debug_mode ()));
-
   // FIXME -- is it possible to eliminate the event_listenter?
 
   _octave_qt_link = new octave_qt_link ();
@@ -1177,6 +1171,12 @@
            SIGNAL (clear_history_signal (void)),
            _history_dock_widget, SLOT (clear_history (void)));
 
+  connect (_octave_qt_link, SIGNAL (enter_debugger_signal ()),
+           this, SLOT (handle_enter_debugger ()));
+
+  connect (_octave_qt_link, SIGNAL (exit_debugger_signal ()),
+           this, SLOT (handle_exit_debugger ()));
+
   connect (_octave_qt_link,
            SIGNAL (update_dbstop_marker_signal (bool, const QString&, int)),
            _file_editor,