diff libgui/src/m-editor/file-editor.cc @ 16457:10edb6f1ae98

improve encapsulation of file editor window object * file-editor-interface.h (file_editor_interface::connect_visibility_changed): New function. * file-editor.h, file-editor.cc (file_editor::handle_visibility, file_editor::focus, file_editor::connect_visibility_changed): New functions. (file_editor::construct): Connect main_window::new_file_signal to file_editor::new_file. * main-window.cc (main_window::editor_window): Rename from _file_editor. Change all uses. (create_default_editor): New static function. (main_window::main_window): Use it to initialize editor_window. (main_window::new_file_signal, main_window::open_file_signal): New signals. (main_window::new_file, main_window::open_file): Emit signals instead of calling file_editor functions directly. (main_window::focus_editor, main_window::handle_editor_visible): Delete. (main_window::connect_visibility_changed): Call editor_window->connect_visibility_changed. (main_window::construct): Don't create _file_editor. (main_window::construct_file_menu): Connect _open_action::triggered to editor_window::request_open_file instead of main_window::open_file. Connect _new_script_action::triggered to editor_window::request_new_file instead of main_window::new_file. (main_window::construct_new_menu): Connect editor_action::triggered to editor_window::focus instead of main_window::focus_editor.
author John W. Eaton <jwe@octave.org>
date Sun, 07 Apr 2013 05:45:23 -0400
parents 38ed6bdd1f7f
children b348c5835ce4
line wrap: on
line diff
--- a/libgui/src/m-editor/file-editor.cc	Sun Apr 07 04:39:35 2013 -0400
+++ b/libgui/src/m-editor/file-editor.cc	Sun Apr 07 05:45:23 2013 -0400
@@ -73,6 +73,26 @@
     delete _mru_file_menu;
 }
 
+void
+file_editor::focus (void)
+{
+  set_focus ();
+}
+
+void
+file_editor::handle_visibility (bool visible)
+{
+  if (visible && ! isFloating ())
+    focus ();
+}
+
+void
+file_editor::connect_visibility_changed (void)
+{
+  connect (this, SIGNAL (visibilityChanged (bool)),
+           this, SLOT (handle_visibility (bool)));
+}
+
 // set focus to editor and its current tab
 void
 file_editor::set_focus ()
@@ -804,6 +824,12 @@
   connect (parent (), SIGNAL (settings_changed (const QSettings *)),
            this, SLOT (notice_settings (const QSettings *)));
 
+  connect (parent (), SIGNAL (new_file_signal (const QString&)),
+           this, SLOT (request_new_file (const QString&)));
+
+  connect (parent (), SIGNAL (open_file_signal (const QString&)),
+           this, SLOT (request_open_file (const QString&)));
+
   connect (new_action,
            SIGNAL (triggered ()), this, SLOT (request_new_file ()));
   connect (open_action,