# HG changeset patch # User John Donoghue # Date 1426855460 14400 # Node ID f7846f0ea6db0b16284e644baa1143cb13aec413 # Parent 3f3418ccd6d4a0a9ce132e3133c9abb1cf406b6e GUI: enable workspace update when debugging (Bug #44455) * libgui/src/main-window.cc (main_window::construct_octave_qt_link): add debug parameter to set_workspace * libgui/src/octave-qt-link.cc, libgui/src/octave-qt-link.h (octave_qt_link::do_set_workspace): add debug variable, check top_level AND debug flag for redraw (octave_qt_link::do_set_workspace): add debug variable to emit set_work_space_signal * libgui/src/workspace-model.cc, libgui/src/workspace-model.h (workspace_model::set_workspace): add debug flag to function * libinterp/corefcn/octave-link.cc, libinterp/corefcn/octave-link.h (octave_link::set_workspace): send debug flag in do_set_workspace (octave_link::do_set_workspace): add debug flag diff -r 3f3418ccd6d4 -r f7846f0ea6db libgui/src/main-window.cc --- a/libgui/src/main-window.cc Thu Mar 19 14:41:41 2015 -0400 +++ b/libgui/src/main-window.cc Fri Mar 20 08:44:20 2015 -0400 @@ -1468,12 +1468,12 @@ { connect (_octave_qt_link, SIGNAL (set_workspace_signal - (bool, const QString&, const QStringList&, + (bool, bool, const QString&, const QStringList&, const QStringList&, const QStringList&, const QStringList&, const QIntList&)), _workspace_model, SLOT (set_workspace - (bool, const QString&, const QStringList&, + (bool, bool, const QString&, const QStringList&, const QStringList&, const QStringList&, const QStringList&, const QIntList&))); diff -r 3f3418ccd6d4 -r f7846f0ea6db libgui/src/octave-qt-link.cc --- a/libgui/src/octave-qt-link.cc Thu Mar 19 14:41:41 2015 -0400 +++ b/libgui/src/octave-qt-link.cc Fri Mar 20 08:44:20 2015 -0400 @@ -374,10 +374,10 @@ } void -octave_qt_link::do_set_workspace (bool top_level, +octave_qt_link::do_set_workspace (bool top_level, bool debug, const std::list& ws) { - if (! top_level) + if (! top_level && ! debug) return; QString scopes; @@ -398,7 +398,7 @@ complex_flags.append (it->complex_flag ()); } - emit set_workspace_signal (top_level, scopes, symbols, class_names, + emit set_workspace_signal (top_level, debug, scopes, symbols, class_names, dimensions, values, complex_flags); } diff -r 3f3418ccd6d4 -r f7846f0ea6db libgui/src/octave-qt-link.h --- a/libgui/src/octave-qt-link.h Thu Mar 19 14:41:41 2015 -0400 +++ b/libgui/src/octave-qt-link.h Fri Mar 20 08:44:20 2015 -0400 @@ -106,7 +106,7 @@ void do_execute_command_in_terminal (const std::string& command); - void do_set_workspace (bool top_level, + void do_set_workspace (bool top_level, bool debug, const std::list& ws); void do_clear_workspace (void); @@ -164,6 +164,7 @@ void execute_command_in_terminal_signal (const QString& command); void set_workspace_signal (bool top_level, + bool debug, const QString& scopes, const QStringList& symbols, const QStringList& class_names, diff -r 3f3418ccd6d4 -r f7846f0ea6db libgui/src/workspace-model.cc --- a/libgui/src/workspace-model.cc Thu Mar 19 14:41:41 2015 -0400 +++ b/libgui/src/workspace-model.cc Fri Mar 20 08:44:20 2015 -0400 @@ -228,6 +228,7 @@ void workspace_model::set_workspace (bool top_level, + bool debug, const QString& scopes, const QStringList& symbols, const QStringList& class_names, diff -r 3f3418ccd6d4 -r f7846f0ea6db libgui/src/workspace-model.h --- a/libgui/src/workspace-model.h Thu Mar 19 14:41:41 2015 -0400 +++ b/libgui/src/workspace-model.h Fri Mar 20 08:44:20 2015 -0400 @@ -73,6 +73,7 @@ public slots: void set_workspace (bool top_level, + bool debug, const QString& scopes, const QStringList& symbols, const QStringList& class_names, diff -r 3f3418ccd6d4 -r f7846f0ea6db libinterp/corefcn/octave-link.cc --- a/libinterp/corefcn/octave-link.cc Thu Mar 19 14:41:41 2015 -0400 +++ b/libinterp/corefcn/octave-link.cc Fri Mar 20 08:44:20 2015 -0400 @@ -61,6 +61,7 @@ if (enabled ()) instance->do_set_workspace ((symbol_table::current_scope () == symbol_table::top_scope ()), + instance->debugging, symbol_table::workspace_info ()); } diff -r 3f3418ccd6d4 -r f7846f0ea6db libinterp/corefcn/octave-link.h --- a/libinterp/corefcn/octave-link.h Thu Mar 19 14:41:41 2015 -0400 +++ b/libinterp/corefcn/octave-link.h Fri Mar 20 08:44:20 2015 -0400 @@ -231,7 +231,7 @@ const std::list& ws) { if (enabled ()) - instance->do_set_workspace (top_level, ws); + instance->do_set_workspace (top_level, instance->debugging, ws); } static void clear_workspace (void) @@ -437,7 +437,7 @@ virtual void do_execute_command_in_terminal (const std::string& command) = 0; virtual void - do_set_workspace (bool top_level, + do_set_workspace (bool top_level, bool debug, const std::list& ws) = 0; virtual void do_clear_workspace (void) = 0;