changeset 29713:7b4b7e2a524d

fix signal connection to grand parent * file-editor.cc (file_editor_tab_widget): pointer to file editor as new argument, signal connection directly to file editor unsing new syntax (construct): create m_tb_widget with pointer to file editor * file-editor.h: file_editor_tab with pointer to file editor as new arg
author Torsten Lilge <ttl-octave@mailbox.org>
date Sat, 29 May 2021 16:12:33 +0200
parents 7a0be7c8b7ca
children 6375e8ed2838
files libgui/src/m-editor/file-editor.cc libgui/src/m-editor/file-editor.h
diffstat 2 files changed, 6 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/libgui/src/m-editor/file-editor.cc	Fri May 28 15:20:51 2021 +0200
+++ b/libgui/src/m-editor/file-editor.cc	Sat May 29 16:12:33 2021 +0200
@@ -67,14 +67,13 @@
 {
   // Functions of the the reimplemented tab widget
 
-  file_editor_tab_widget::file_editor_tab_widget (QWidget *p)
+  file_editor_tab_widget::file_editor_tab_widget (QWidget *p, file_editor *fe)
     : QTabWidget (p)
   {
     tab_bar *bar = new tab_bar (this);
 
-    // FIXME: Making a connection to a grandparent object seems bad.
-    connect (bar, SIGNAL (close_current_tab_signal (bool)),
-             p->parent (), SLOT (request_close_file (bool)));
+    connect (bar, &tab_bar::close_current_tab_signal,
+             fe, &file_editor::request_close_file);
 
     this->setTabBar (bar);
 
@@ -1891,7 +1890,7 @@
     m_tool_bar = new QToolBar (editor_widget);
     m_tool_bar->setMovable (true);
 
-    m_tab_widget = new file_editor_tab_widget (editor_widget);
+    m_tab_widget = new file_editor_tab_widget (editor_widget, this);
 
     resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
 
--- a/libgui/src/m-editor/file-editor.h	Fri May 28 15:20:51 2021 +0200
+++ b/libgui/src/m-editor/file-editor.h	Sat May 29 16:12:33 2021 +0200
@@ -47,6 +47,7 @@
 namespace octave
 {
   class base_qobject;
+  class file_editor;
 
   // subclassed QTabWidget for using custom tabbar
 
@@ -56,7 +57,7 @@
 
   public:
 
-    file_editor_tab_widget (QWidget *p);
+    file_editor_tab_widget (QWidget *p, file_editor *fe);
 
     ~file_editor_tab_widget (void) = default;