# HG changeset patch # User John W. Eaton # Date 1365048225 14400 # Node ID 04c4dd7fd3ce869bc9bc0e55c2fe5f3fdb80a584 # Parent 436f6e0e42683eee26662f274babbe5262b8d45f use signal for octave_link::update_dbstop_marker * octave-qt-link.h (octave_qt_link): Derive from QObject. (octave_qt_link::update_dbstop_marker_signal): New signal. * libgui/src/module.mk (octave_gui_MOC): Include src/moc-octave-qt-link.cc in the list. * main-window.cc (main_window::construct): Connect octave_qt_link::update_dbstop_marker_signal to file_editor::handle_update_dbstop_marker_request. * octave-qt-link.cc (octave_qt_link::do_update_breakpoint): Emit signal instead of using event listener. diff --git a/libgui/src/main-window.cc b/libgui/src/main-window.cc --- a/libgui/src/main-window.cc +++ b/libgui/src/main-window.cc @@ -1214,6 +1214,11 @@ _octave_qt_link = new octave_qt_link (); + connect (_octave_qt_link, + SIGNAL (update_dbstop_marker_signal (bool, const QString&, int)), + _file_editor, + SLOT (handle_update_dbstop_marker_request (bool, const QString&, int))); + octave_link::connect_link (_octave_qt_link); octave_link::register_event_listener (_octave_qt_event_listener); diff --git a/libgui/src/module.mk b/libgui/src/module.mk --- a/libgui/src/module.mk +++ b/libgui/src/module.mk @@ -73,6 +73,7 @@ src/moc-main-window.cc \ src/moc-octave-main-thread.cc \ src/moc-octave-qt-event-listener.cc \ + src/moc-octave-qt-link.cc \ src/moc-settings-dialog.cc \ src/moc-terminal-dockwidget.cc \ src/moc-color-picker.cc \ diff --git a/libgui/src/octave-gui.cc b/libgui/src/octave-gui.cc --- a/libgui/src/octave-gui.cc +++ b/libgui/src/octave-gui.cc @@ -80,7 +80,7 @@ int octave_start_gui (int argc, char *argv[]) { - dissociate_terminal (); + // dissociate_terminal (); QApplication application (argc, argv); diff --git a/libgui/src/octave-qt-link.cc b/libgui/src/octave-qt-link.cc --- a/libgui/src/octave-qt-link.cc +++ b/libgui/src/octave-qt-link.cc @@ -107,12 +107,7 @@ octave_qt_link::do_update_breakpoint (bool insert, const std::string& file, int line) { - if (event_listener) - { - event_listener->update_dbstop_marker (insert, file, line); - - do_process_events (); - } + emit update_dbstop_marker_signal (insert, QString::fromStdString (file), line); } bool diff --git a/libgui/src/octave-qt-link.h b/libgui/src/octave-qt-link.h --- a/libgui/src/octave-qt-link.h +++ b/libgui/src/octave-qt-link.h @@ -27,6 +27,9 @@ #include +#include +#include + #include "octave-link.h" #include "octave-main-thread.h" @@ -38,8 +41,10 @@ // buffering access operations to octave and executing them in the // readline event hook, which lives in the octave thread. -class octave_qt_link : public octave_link +class octave_qt_link : public QObject, public octave_link { + Q_OBJECT + public: octave_qt_link (void); @@ -73,6 +78,10 @@ // Thread running octave_main. octave_main_thread *main_thread; + +signals: + + void update_dbstop_marker_signal (bool insert, const QString& file, int line); }; #endif