diff libinterp/interpfcn/octave-link.h @ 16437:919796a440c6

use signal for changing directory * files-dockwidget.cc (files_dock_widget::files_dock_widget): Set title to "File Browser", not "Current Directory". * files-dockwidget.h, files-dockwidget.cc (files_dock_widget::change_directory_up): Rename from files_dock_widget::do_up_directory. Change all uses. (files_dock_widget::_last_current_directory): Delete variable and all uses. (files_dock_widget::accept_directory_line_edit): Rename from handle_directory_entered. Change all uses. (files_dock_widget::item_double_clicked): Call set_current_directory instead of display_directory. (files_dock_widget::set_current_directory): Also emit displayed_directory_changed signal. (files_dock_widget::display_directory): Sort list. Don't emit displayed_directory_changed. private: * file-editor-tab.cc (file_editor_tab::run_file): Delete unused local variable current_path. * main-window.h, main-window.cc (main_window::current_working_directory_has_changed): Delete function and all uses. (main_window::browse_for_directory): Rename from main_window::change_current_working_directory. Change all uses. (main_window::change_directory): Rename from main_window::set_current_working_directory. Change all uses. Update display. (main_window::change_directory_up): Rename from main_window::current_working_directory_up. Change all uses. Use absolute path for ".." directory. (main_window::accept_directory_line_edit): Rename from main_window::current_working_directory_entered. Change all uses. (main_window::construct): Set initial working directory to current directory at startup. * octave-qt-link.h, octave-qt-link.cc (octave_qt_link::do_change_directory): New function. (octave_qt_link::change_directory_signal): New signal. * octave-event-listener.h (octave_event_listener::current_directory_has_changed): Delete. * dirfns.cc (octave_change_to_directory): Also call octave_link::change_directory. * octave-link.h, octave-link.cc (octave_link::last_cwd): Delete variable and all uses. (octave_link::do_generate_events): Don't track current directory or post directory changed event. (octave_link::last_working_directory, octave_link::do_last_working_directory): Delete. (octave_link::do_change_directory): Rename from octave_link::do_last_working_directory.
author John W. Eaton <jwe@octave.org>
date Fri, 05 Apr 2013 00:40:12 -0400
parents 5982d469f79b
children a971d8bdaadc
line wrap: on
line diff
--- a/libinterp/interpfcn/octave-link.h	Thu Apr 04 17:18:16 2013 -0400
+++ b/libinterp/interpfcn/octave-link.h	Fri Apr 05 00:40:12 2013 -0400
@@ -108,10 +108,10 @@
       instance->do_finished_readline_hook ();
   }
 
-  static std::string last_working_directory (void)
+  static void change_directory (const std::string& dir)
   {
-    return instance_ok ()
-      ? instance->do_last_working_directory () : std::string ();
+    if (instance_ok ())
+      instance->do_change_directory (dir);
   }
 
   static void update_workspace (void)
@@ -201,9 +201,6 @@
   // Event Queue.
   event_queue gui_event_queue;
 
-  // Stores the last known current working directory of octave.
-  std::string last_cwd;
-
   bool debugging;
 
   void do_register_event_listener (octave_event_listener *oel);
@@ -234,7 +231,7 @@
   void do_entered_readline_hook (void) { }
   void do_finished_readline_hook (void) { }
 
-  std::string do_last_working_directory (void);
+  virtual void do_change_directory (const std::string& dir) = 0;
 
   virtual void do_update_workspace (void) = 0;