changeset 20179:f7846f0ea6db

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
author John Donoghue
date Fri, 20 Mar 2015 08:44:20 -0400
parents 3f3418ccd6d4
children 28a9e59d0714
files libgui/src/main-window.cc libgui/src/octave-qt-link.cc libgui/src/octave-qt-link.h libgui/src/workspace-model.cc libgui/src/workspace-model.h libinterp/corefcn/octave-link.cc libinterp/corefcn/octave-link.h
diffstat 7 files changed, 12 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/libgui/src/main-window.cc
+++ b/libgui/src/main-window.cc
@@ -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&)));
 
--- a/libgui/src/octave-qt-link.cc
+++ b/libgui/src/octave-qt-link.cc
@@ -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<workspace_element>& 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);
 }
 
--- a/libgui/src/octave-qt-link.h
+++ b/libgui/src/octave-qt-link.h
@@ -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<workspace_element>& 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,
--- a/libgui/src/workspace-model.cc
+++ b/libgui/src/workspace-model.cc
@@ -228,6 +228,7 @@
 
 void
 workspace_model::set_workspace (bool top_level,
+                                bool debug,
                                 const QString& scopes,
                                 const QStringList& symbols,
                                 const QStringList& class_names,
--- a/libgui/src/workspace-model.h
+++ b/libgui/src/workspace-model.h
@@ -73,6 +73,7 @@
 public slots:
 
   void set_workspace (bool top_level,
+                      bool debug,
                       const QString& scopes,
                       const QStringList& symbols,
                       const QStringList& class_names,
--- a/libinterp/corefcn/octave-link.cc
+++ b/libinterp/corefcn/octave-link.cc
@@ -61,6 +61,7 @@
   if (enabled ())
     instance->do_set_workspace ((symbol_table::current_scope ()
                                  == symbol_table::top_scope ()),
+                                instance->debugging, 
                                 symbol_table::workspace_info ());
 }
 
--- a/libinterp/corefcn/octave-link.h
+++ b/libinterp/corefcn/octave-link.h
@@ -231,7 +231,7 @@
                              const std::list<workspace_element>& 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<workspace_element>& ws) = 0;
 
   virtual void do_clear_workspace (void) = 0;