changeset 29691:67eccd062618

fix calling documentations from terminal and editor * QTerminal.cc (create): pass base_qobject to the created terminal; (doc_on_expression): replace emitting a signal by calling the interpreter event show_documentation_window; (construct): remove obsolete signal connection * QTerminal.h: QTerminal with base_qobject as additional argument, new class variable m_octave_qobj * QUnixTerminalImpl.cpp (QUnixTerminalImpl): new argument base_qobject * QUnixTerminalImpl.h: dito * QWinTerminalImpl.cpp (QWinTerminalImpl): new argument base_qobject * QWinTerminalImpl.h: dito * file-editor.cc (make_file_editor_tab): remove obsolete signal connection * octave-qscintilla.cc (contextmenu_help_doc): replace emitting a signal by calling the interpreter
author Torsten Lilge <ttl-octave@mailbox.org>
date Tue, 18 May 2021 22:17:34 +0200
parents f625b7670c0e
children b4e2c6150976
files libgui/qterminal/libqterminal/QTerminal.cc libgui/qterminal/libqterminal/QTerminal.h libgui/qterminal/libqterminal/unix/QUnixTerminalImpl.cpp libgui/qterminal/libqterminal/unix/QUnixTerminalImpl.h libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp libgui/qterminal/libqterminal/win32/QWinTerminalImpl.h libgui/src/m-editor/file-editor.cc libgui/src/m-editor/octave-qscintilla.cc
diffstat 8 files changed, 17 insertions(+), 21 deletions(-) [+]
line wrap: on
line diff
--- a/libgui/qterminal/libqterminal/QTerminal.cc	Tue May 18 09:08:45 2021 -0400
+++ b/libgui/qterminal/libqterminal/QTerminal.cc	Tue May 18 22:17:34 2021 +0200
@@ -54,9 +54,9 @@
   // p:       real parent
   // xparent: main window for signal connections
 #if defined (Q_OS_WIN32)
-  QTerminal *terminal = new QWinTerminalImpl (p, main_win);
+  QTerminal *terminal = new QWinTerminalImpl (oct_qobj, p, main_win);
 #else
-  QTerminal *terminal = new QUnixTerminalImpl (p, main_win);
+  QTerminal *terminal = new QUnixTerminalImpl (oct_qobj, p, main_win);
 #endif
 
   // FIXME: this function should probably be called from or part of the
@@ -197,8 +197,7 @@
 void QTerminal::doc_on_expression ()
 {
   QString expr = m_doc_selected_action->data ().toString ();
-
-  emit show_doc_signal (expr);
+  m_octave_qobj.show_documentation_window (expr);
 }
 
 void
@@ -326,9 +325,6 @@
   connect (this, SIGNAL (report_status_message (const QString&)),
            xparent, SLOT (report_status_message (const QString&)));
 
-  connect (this, SIGNAL (show_doc_signal (const QString&)),
-           xparent, SLOT (handle_show_doc (const QString&)));
-
   connect (this, SIGNAL (edit_mfile_request (const QString&, int)),
            xparent, SLOT (edit_mfile (const QString&, int)));
 
--- a/libgui/qterminal/libqterminal/QTerminal.h	Tue May 18 09:08:45 2021 -0400
+++ b/libgui/qterminal/libqterminal/QTerminal.h	Tue May 18 22:17:34 2021 +0200
@@ -34,6 +34,7 @@
 // for the signal/slot macros.  Could maybe change later when using
 // Qt5-style signal/slot connections.
 #include "gui-settings.h"
+
 using octave::gui_settings;
 
 namespace octave
@@ -137,12 +138,15 @@
 
 protected:
 
-  QTerminal (QWidget *xparent = nullptr) : QWidget (xparent) { }
+  QTerminal (octave::base_qobject& oct_qobj, QWidget *xparent = nullptr)
+            : QWidget (xparent), m_octave_qobj (oct_qobj) { }
 
   void construct (octave::base_qobject& oct_qobj, QWidget *xparent);
 
 private:
 
+  octave::base_qobject& m_octave_qobj;
+
   QMenu *_contextMenu;
   QAction * _copy_action;
   QAction * _paste_action;
--- a/libgui/qterminal/libqterminal/unix/QUnixTerminalImpl.cpp	Tue May 18 09:08:45 2021 -0400
+++ b/libgui/qterminal/libqterminal/unix/QUnixTerminalImpl.cpp	Tue May 18 22:17:34 2021 +0200
@@ -24,8 +24,9 @@
 
 #include <termios.h>
 
-QUnixTerminalImpl::QUnixTerminalImpl(QWidget *p, QWidget *main_win)
-    : QTerminal(p)
+QUnixTerminalImpl::QUnixTerminalImpl(octave::base_qobject& oct_qobj,
+                                     QWidget *p, QWidget *main_win)
+    : QTerminal(oct_qobj, p)
 {
     initialize(main_win);
 }
--- a/libgui/qterminal/libqterminal/unix/QUnixTerminalImpl.h	Tue May 18 09:08:45 2021 -0400
+++ b/libgui/qterminal/libqterminal/unix/QUnixTerminalImpl.h	Tue May 18 22:17:34 2021 +0200
@@ -36,7 +36,7 @@
     int fdstderr;
 
 public:
-    QUnixTerminalImpl(QWidget *parent, QWidget *main_win);
+    QUnixTerminalImpl(octave::base_qobject&, QWidget *parent, QWidget *main_win);
     virtual ~QUnixTerminalImpl();
 
     void setTerminalFont(const QFont &font);
--- a/libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp	Tue May 18 09:08:45 2021 -0400
+++ b/libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp	Tue May 18 22:17:34 2021 +0200
@@ -1441,8 +1441,9 @@
 
 //////////////////////////////////////////////////////////////////////////////
 
-QWinTerminalImpl::QWinTerminalImpl (QWidget* parent, QWidget* main_win)
-    : QTerminal (parent), d (new QConsolePrivate (this)),
+QWinTerminalImpl::QWinTerminalImpl (octave::base_qobject& oct_qobj,
+                                    QWidget* parent, QWidget* main_win)
+    : QTerminal (oct_qobj, parent), d (new QConsolePrivate (this)),
       allowTripleClick (false)
 {
     installEventFilter (this);
--- a/libgui/qterminal/libqterminal/win32/QWinTerminalImpl.h	Tue May 18 09:08:45 2021 -0400
+++ b/libgui/qterminal/libqterminal/win32/QWinTerminalImpl.h	Tue May 18 22:17:34 2021 +0200
@@ -49,7 +49,7 @@
   friend class QConsoleView;
 
 public:
-  QWinTerminalImpl (QWidget* parent, QWidget* main_win);
+  QWinTerminalImpl (octave::base_qobject&, QWidget* parent, QWidget* main_win);
   QWinTerminalImpl (const QString& cmd, QWidget* parent = 0);
   ~QWinTerminalImpl (void);
 
--- a/libgui/src/m-editor/file-editor.cc	Tue May 18 09:08:45 2021 -0400
+++ b/libgui/src/m-editor/file-editor.cc	Tue May 18 22:17:34 2021 +0200
@@ -2556,12 +2556,6 @@
     connect (this, &file_editor::update_gui_lexer_signal,
              f, &file_editor_tab::update_lexer_settings);
 
-    // FIXME: What was the intent here?  The
-    // main_window::handle_show_doc slot no longer exists.
-    //
-    // connect (f->qsci_edit_area (), SIGNAL (show_doc_signal (const QString&)),
-    //          main_win (), SLOT (handle_show_doc (const QString&)));
-
     // Convert other signals from the edit area and tab to editor signals.
 
     connect (f->qsci_edit_area (), &octave_qscintilla::execute_command_in_terminal_signal,
--- a/libgui/src/m-editor/octave-qscintilla.cc	Tue May 18 09:08:45 2021 -0400
+++ b/libgui/src/m-editor/octave-qscintilla.cc	Tue May 18 22:17:34 2021 +0200
@@ -324,7 +324,7 @@
   void octave_qscintilla::contextmenu_help_doc (bool documentation)
   {
     if (documentation)
-      emit show_doc_signal (m_word_at_cursor);
+      m_octave_qobj.show_documentation_window (m_word_at_cursor);
     else
       emit execute_command_in_terminal_signal ("help " + m_word_at_cursor);
   }