diff libgui/src/main-window.h @ 16446:4b3a4bf8569b

improve encapsulation of command window object * terminal-dockwidget.h, terminal-dockwidget.cc (terminal_dock_widget::terminal): New data member. (terminal_dock_widget::terminal_dock_widget): Delete QTerminal argument. Initialize QTerminal object here. Connect terminal_dock_widget::notice_settings_signal to QTerminal::notice_settings. Connect terminal_dock_widget::relay_command_signal to Qterminal::relay_command. Connect terminal_dock_widget::copyClipboard_signal to Qterminal::copyClipboard. Connect terminal_dock_widget::pasteClipboard_signal to Qterminal::pasteClipboard. (terminal_dock_widget::connect_visibility_changed, terminal_dock_widget::focus, terminal_dock_widget::handle_visibility, terminal_dock_widget::notice_settings, terminal_dock_widget::relay_command, terminal_dock_widget::copyClipboard, terminal_dock_widget::pasteClipboard): New functions. terminal_dock_widget::notice_settings_signal, terminal_dock_widget::relay_command_signal, terminal_dock_widget::copyClipboard_signal, terminal_dock_widget::pasteClipboard_signal): New signals. * main-window.h, main-window.cc (main_window::command_window): Rename from main_window::_terminal_dock_widget. Don't use a pointer. Change all uses. (main_window::main_window): Initialize it here. (main_window::~main_window): Don't delete _terminal_dock_widget. (main_window::relay_command_signal main_window::focus_command_window_signal): New signals. (main_window::handle_command_double_clicked): Emit relay_command_signal, and focus_command_window_signal signals instead of calling focus_command_window. (main_window::focus_command_window): Emit focus_command_window_signal singal instead of performing actions on _terminal_dock_widget object directly. (main_window::handle_command_window_visible): Delete. (main_window::connect_visibility_changed): Call command_window.connect_visibility_changed instead of performing actions here. (main_window::construct): Don't create _terminal_dock_widget. Adapt signal/slot connections for new command_window object.
author John W. Eaton <jwe@octave.org>
date Sat, 06 Apr 2013 16:14:32 -0400
parents 3f8d3fc907af
children e3b33a7530bc
line wrap: on
line diff
--- a/libgui/src/main-window.h	Sat Apr 06 14:23:52 2013 -0400
+++ b/libgui/src/main-window.h	Sat Apr 06 16:14:32 2013 -0400
@@ -60,12 +60,18 @@
  */
 class main_window : public QMainWindow
 {
-  Q_OBJECT public:
-  main_window (QWidget * parent = 0);
+  Q_OBJECT
+
+public:
+
+  main_window (QWidget *parent = 0);
+
   ~main_window ();
 
 signals:
   void settings_changed (const QSettings *);
+  void relay_command_signal (const QString&);
+  void focus_command_window_signal (void);
 
 public slots:
   void report_status_message (const QString& statusMessage);
@@ -73,7 +79,6 @@
   void handle_load_workspace_request ();
   void handle_clear_workspace_request ();
   void handle_clear_history_request (void);
-  void handle_command_double_clicked (const QString& command);
   void new_file ();
   void open_file ();
   void open_file (const QString& file_name);
@@ -94,13 +99,14 @@
   void change_directory_up (void);
   void accept_directory_line_edit (void);
 
-  void focus_command_window ();
+  void handle_command_double_clicked (const QString& command);
+
+  void focus_command_window (void);
   void focus_command_history ();
   void focus_current_directory ();
   void focus_workspace ();
   void focus_editor ();
   void focus_documentation ();
-  void handle_command_window_visible (bool);
   void handle_command_history_visible (bool);
   void handle_current_directory_visible (bool);
   void handle_workspace_visible (bool);
@@ -148,6 +154,8 @@
 
   void exit_callback (void);
 
+  terminal_dock_widget command_window;
+
 #ifdef HAVE_QSCINTILLA
   file_editor_interface *   _file_editor;
 #endif
@@ -166,7 +174,6 @@
   workspace_view *          _workspace_view;
   history_dock_widget *     _history_dock_widget;
   files_dock_widget *       _files_dock_widget;
-  terminal_dock_widget *    _terminal_dock_widget;
   documentation_dock_widget*_documentation_dock_widget;
 
   // Toolbars.