Mercurial > octave-nkf
diff libgui/src/main-window.cc @ 16459:cbc39a3d0c42
improve encapsulation of workspace window object
* workspace-view.h, workspace-view.cc
(workspace_view::handle_visibility_changed): Delete.
(workspace_view::workspace_view): Set status tip.
Don't connect workspace_view::visibilityChanged signal to
workspace_view::handle_visibility_changed.
(workspace_view::connect_visibility_changed, workspace_view::focus,
workspace_view::handle_visibility): New functions.
* main-window.h, main-window.cc (main_window::workspace_window):
Rename from _workspace_view. Change all uses.
(main_window::main_window): Initialize it.
(main_window::focus_workspace, main_window::handle_workspace_visible):
Delete.
(main_window::connect_visibility_changed):
Call workspace_window->connect_visibility_changed.
(main_window::construct): Don't create _workspace_view.
Connect workspace_action::triggered directly to workspace_window::focus.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Sun, 07 Apr 2013 11:52:09 -0400 |
parents | a3513fc13cdb |
children | 4d4e7c6f839d |
line wrap: on
line diff
--- a/libgui/src/main-window.cc Sun Apr 07 06:04:37 2013 -0400 +++ b/libgui/src/main-window.cc Sun Apr 07 11:52:09 2013 -0400 @@ -73,7 +73,8 @@ history_window (new history_dock_widget (this)), file_browser_window (new files_dock_widget (this)), doc_browser_window (new documentation_dock_widget (this)), - editor_window (create_default_editor (this)) + editor_window (create_default_editor (this)), + workspace_window (new workspace_view (this)) { // We have to set up all our windows, before we finally launch octave. construct (); @@ -88,6 +89,7 @@ delete file_browser_window; delete doc_browser_window; delete editor_window; + delete workspace_window; // Clean up all dynamically created objects to ensure they are // deleted before this main_window is. Otherwise, some will be @@ -98,8 +100,6 @@ octave_link::connect_link (0); delete _octave_qt_link; - - delete _workspace_view; } void @@ -278,7 +278,7 @@ void main_window::update_workspace (void) { - _workspace_view->model_changed (); + workspace_window->model_changed (); } void @@ -353,28 +353,6 @@ } void -main_window::focus_workspace (void) -{ - if (!_workspace_view->isVisible ()) - { - _workspace_view->setVisible (true); - } - - _workspace_view->setFocus (); - _workspace_view->activateWindow (); - _workspace_view->raise (); -} - - -void -main_window::handle_workspace_visible (bool visible) -{ - // if changed to visible and widget is not floating - if (visible && !_workspace_view->isFloating ()) - focus_workspace (); -} - -void main_window::handle_enter_debugger (void) { setWindowTitle ("Octave (Debugging)"); @@ -543,9 +521,7 @@ #ifdef HAVE_QSCINTILLA editor_window->connect_visibility_changed (); #endif - - connect (_workspace_view, SIGNAL (visibilityChanged (bool)), - this, SLOT (handle_workspace_visible (bool))); + workspace_window->connect_visibility_changed (); } @@ -556,14 +532,10 @@ _closing = false; // flag for editor files when closed setWindowIcon (QIcon (":/actions/icons/logo.png")); - // Setup dockable widgets and the status bar. - _workspace_view = new workspace_view (this); - - _workspace_view->setModel (_workspace_model); - _workspace_view->setStatusTip (tr ("View the variables in the active workspace.")); + workspace_window->setModel (_workspace_model); connect (_workspace_model, SIGNAL (model_changed ()), - _workspace_view, SLOT (model_changed ())); + workspace_window, SLOT (model_changed ())); // Create and set the central widget. QMainWindow takes ownership of // the widget (pointer) so there is no need to delete the object upon @@ -602,7 +574,7 @@ #endif addDockWidget (Qt::LeftDockWidgetArea, file_browser_window); - addDockWidget (Qt::LeftDockWidgetArea, _workspace_view); + addDockWidget (Qt::LeftDockWidgetArea, workspace_window); addDockWidget (Qt::LeftDockWidgetArea, history_window); int win_x = QApplication::desktop()->width(); @@ -1033,9 +1005,9 @@ show_command_window_action, SLOT (setChecked (bool))); connect (show_workspace_action, SIGNAL (toggled (bool)), - _workspace_view, SLOT (setVisible (bool))); + workspace_window, SLOT (setVisible (bool))); - connect (_workspace_view, SIGNAL (active_changed (bool)), + connect (workspace_window, SIGNAL (active_changed (bool)), show_workspace_action, SLOT (setChecked (bool))); connect (show_history_action, SIGNAL (toggled (bool)), @@ -1068,7 +1040,7 @@ command_window, SLOT (focus ())); connect (workspace_action, SIGNAL (triggered ()), - this, SLOT (focus_workspace ())); + workspace_window, SLOT (focus ())); connect (history_action, SIGNAL (triggered ()), history_window, SLOT (focus ()));