changeset 29596:d2b56b5e9d43

avoid connecting to parent slots in file browser widget * main-window.cc (main_window::main_window): Make connections from file browser widget signals to main window slots here. * files-dock-widget.cc (files_dock_widget::files_dock_widget): Not here.
author John W. Eaton <jwe@octave.org>
date Mon, 03 May 2021 09:24:16 -0400
parents f72796c1ccbc
children 07591becbc40
files libgui/src/files-dock-widget.cc libgui/src/main-window.cc
diffstat 2 files changed, 15 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/libgui/src/files-dock-widget.cc	Mon May 03 08:24:57 2021 -0700
+++ b/libgui/src/files-dock-widget.cc	Mon May 03 09:24:16 2021 -0400
@@ -106,18 +106,6 @@
 
     setWidget (container);
 
-    connect (this, SIGNAL (open_file (const QString&)),
-             main_win (), SIGNAL (open_file_signal (const QString&)));
-
-    connect (this, SIGNAL (displayed_directory_changed (const QString&)),
-             main_win (),
-             SLOT (set_current_working_directory (const QString&)));
-
-    connect (this,
-             SIGNAL (modify_path_signal (const octave_value_list&, bool, bool)),
-             main_win (),
-             SLOT (modify_path (const octave_value_list&, bool, bool)));
-
     // Create a toolbar
     m_navigation_tool_bar = new QToolBar ("", container);
     m_navigation_tool_bar->setAllowedAreas (Qt::TopToolBarArea);
@@ -303,9 +291,6 @@
     connect (m_current_directory, SIGNAL (activated (const QString &)),
              this, SLOT (set_current_directory (const QString &)));
 
-    connect (this, SIGNAL (run_file_signal (const QFileInfo&)),
-             main_win (), SLOT (run_file_in_terminal (const QFileInfo&)));
-
     QCompleter *completer = new QCompleter (m_file_system_model, this);
     m_current_directory->setCompleter (completer);
 
--- a/libgui/src/main-window.cc	Mon May 03 08:24:57 2021 -0700
+++ b/libgui/src/main-window.cc	Mon May 03 09:24:16 2021 -0400
@@ -178,11 +178,26 @@
     m_status_bar->addPermanentWidget (m_profiler_status_indicator);
 
     m_command_window = new terminal_dock_widget (this, m_octave_qobj);
+
     m_history_window = new history_dock_widget (this, m_octave_qobj);
+
     m_file_browser_window = new files_dock_widget (this, m_octave_qobj);
+    connect (m_file_browser_window, &files_dock_widget::open_file,
+             this, QOverload<const QString&>::of (&main_window::open_file_signal));
+    connect (m_file_browser_window,
+             &files_dock_widget::displayed_directory_changed,
+             this, &main_window::set_current_working_directory);
+    connect (m_file_browser_window, &files_dock_widget::modify_path_signal,
+             this, &main_window::modify_path);
+    connect (m_file_browser_window, &files_dock_widget::run_file_signal,
+             this, &main_window::run_file_in_terminal);
+
     m_doc_browser_window = new documentation_dock_widget (this, m_octave_qobj);
+
     m_editor_window = create_default_editor (this, m_octave_qobj);
+
     m_variable_editor_window = new variable_editor (this, m_octave_qobj);
+
     m_workspace_window = new workspace_view (this, m_octave_qobj);
 
     m_previous_dock = m_command_window;