diff libinterp/corefcn/octave-link.h @ 24645:f61502510d08

restore ability to select variables for editing from workspace widget * octave-qt-link.h, octave-qt-link.cc: Declare octave::symbol_scope as a Qt metatype. (octave_qt_link::set_workspace_signal): Pass scope instead of individual lists of scope things. Change all uses. (octave_qt_link::do_set_workspace): Pass scope instead of list of workspace_element objects. * octave-link.h, octave-link.cc (octave_link::set_workspace, octave_link::do_set_workspace): Pass scope instead of list of workspace_element objects. Change all uses. * workspace-model.h, workspace-model.cc (workspace_model::m_scope): New data member. (workspace_model::set_workspace): Pass and store scope instead of individual lists of scope things. Change all uses. (workspace_model::clear_data): Also invalidate m_scope. (workspace_model::update_table): Unpack scope info here without using an intermediate list of workspace elements. (workspace_model::scope): New function. * workspace-view.h, workspace-view.cc (workspace_view::edit_variable_signal): Also pass value object. Change all uses. (workspace_view::setModel): Also extract value from scope. * workspace-element.h: Delete. * libinterp/corefcn/module.mk: Update. * symscope.h, symscope.cc (symbol_scope::workspace_info, symbol_scope::symbol_scope_rep::workspace_info): Delete.
author John W. Eaton <jwe@octave.org>
date Sat, 27 Jan 2018 09:06:50 -0500
parents 7d177be54c37
children 13c207835e79
line wrap: on
line diff
--- a/libinterp/corefcn/octave-link.h	Fri Jan 26 19:50:04 2018 -0800
+++ b/libinterp/corefcn/octave-link.h	Sat Jan 27 09:06:50 2018 -0500
@@ -36,7 +36,11 @@
 
 class octave_value;
 class string_vector;
-class workspace_element;
+
+namespace octave
+{
+  class symbol_scope;
+}
 
 //! Provides threadsafe access to octave.
 //! @author Jacob Dawid
@@ -261,11 +265,11 @@
   static void set_workspace (void);
 
   static void set_workspace (bool top_level,
-                             const std::list<workspace_element>& ws,
+                             const octave::symbol_scope& scope,
                              bool update_variable_editor = true)
   {
     if (enabled ())
-      instance->do_set_workspace (top_level, instance->debugging, ws,
+      instance->do_set_workspace (top_level, instance->debugging, scope,
                                   update_variable_editor);
   }
 
@@ -548,7 +552,7 @@
 
   virtual void
   do_set_workspace (bool top_level, bool debug,
-                    const std::list<workspace_element>& ws,
+                    const octave::symbol_scope& scope,
                     bool update_variable_editor) = 0;
 
   virtual void do_clear_workspace (void) = 0;