Mercurial > octave-libgccjit
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,