changeset 29150:27dc4dae6826

fix command settings after changing terminals parent * QTerminal.cc (create): add main window as extra argument * QTerminal.h: add main window as extra argument * QUnixTerminalImpl.cpp (QUnixTerminalImpl): add main window as extra argument, call initialize () with this argument; (initialize): main window as new argument, connect signals to slots of main window instead of new parent * QUnixTerminalImpl.h: QUnixTerminalImpl, initialize with new argument remove obsolete class variable _parent * QWinTerminalImpl.cpp (QWinTerminalImpl): main window as new argument, connect signals to slots of main window instead of new parent * QWinTerminalImpl.h: QWinTerminalImpl with new argument * terminal-dock-widget.cc (terminal_dock_widget): use main window as additional argument when creating the QTerminal
author Torsten Lilge <ttl-octave@mailbox.org>
date Sun, 06 Dec 2020 21:40:16 +0100
parents e3e887d5f631
children 6aa1440e415a
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/terminal-dock-widget.cc
diffstat 7 files changed, 20 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- a/libgui/qterminal/libqterminal/QTerminal.cc	Sun Dec 06 14:56:29 2020 +0100
+++ b/libgui/qterminal/libqterminal/QTerminal.cc	Sun Dec 06 21:40:16 2020 +0100
@@ -49,12 +49,14 @@
 #endif
 
 QTerminal *
-QTerminal::create (octave::base_qobject& oct_qobj, QWidget *xparent)
+QTerminal::create (octave::base_qobject& oct_qobj, QWidget *p, QWidget *main_win)
 {
+  // p:       real parent
+  // xparent: main window for signal connections
 #if defined (Q_OS_WIN32)
-  QTerminal *terminal = new QWinTerminalImpl (xparent);
+  QTerminal *terminal = new QWinTerminalImpl (p, main_win);
 #else
-  QTerminal *terminal = new QUnixTerminalImpl (xparent);
+  QTerminal *terminal = new QUnixTerminalImpl (p, main_win);
 #endif
 
   // FIXME: this function should probably be called from or part of the
@@ -63,7 +65,7 @@
   // Unix- and Windows-specific versions would need access to the
   // base_qobject object, or the design would have to change significantly.
 
-  terminal->construct (oct_qobj, xparent);
+  terminal->construct (oct_qobj, main_win);
 
   return terminal;
 }
--- a/libgui/qterminal/libqterminal/QTerminal.h	Sun Dec 06 14:56:29 2020 +0100
+++ b/libgui/qterminal/libqterminal/QTerminal.h	Sun Dec 06 21:40:16 2020 +0100
@@ -51,7 +51,7 @@
 public:
 
   static QTerminal *
-  create (octave::base_qobject& oct_qobj, QWidget *xparent = nullptr);
+  create (octave::base_qobject& oct_qobj, QWidget *xparent, QWidget* main_win);
 
   virtual ~QTerminal (void) = default;
 
--- a/libgui/qterminal/libqterminal/unix/QUnixTerminalImpl.cpp	Sun Dec 06 14:56:29 2020 +0100
+++ b/libgui/qterminal/libqterminal/unix/QUnixTerminalImpl.cpp	Sun Dec 06 21:40:16 2020 +0100
@@ -24,14 +24,13 @@
 
 #include <termios.h>
 
-QUnixTerminalImpl::QUnixTerminalImpl(QWidget *p)
-    : QTerminal(p),
-      _parent (p)
+QUnixTerminalImpl::QUnixTerminalImpl(QWidget *p, QWidget *main_win)
+    : QTerminal(p)
 {
-    initialize();
+    initialize(main_win);
 }
 
-void QUnixTerminalImpl::initialize()
+void QUnixTerminalImpl::initialize(QWidget* main_win)
 {
     m_terminalView = new TerminalView(this);
     m_terminalView->setKeyboardCursorShape(TerminalView::UnderlineCursor);
@@ -51,9 +50,9 @@
     m_terminalView->filterChain ()->addFilter (file_filter);
 
     connect (file_filter, SIGNAL (request_edit_mfile_signal (const QString&, int)),
-             _parent, SLOT (edit_mfile (const QString&, int)));
+             main_win, SLOT (edit_mfile (const QString&, int)));
     connect (file_filter, SIGNAL (request_open_file_signal (const QString&, int)),
-             _parent, SLOT (open_file (const QString&, int)));
+             main_win, SLOT (open_file (const QString&, int)));
 
     connect(m_terminalView, SIGNAL(customContextMenuRequested(QPoint)),
             this, SLOT(handleCustomContextMenuRequested(QPoint)));
--- a/libgui/qterminal/libqterminal/unix/QUnixTerminalImpl.h	Sun Dec 06 14:56:29 2020 +0100
+++ b/libgui/qterminal/libqterminal/unix/QUnixTerminalImpl.h	Sun Dec 06 21:40:16 2020 +0100
@@ -36,7 +36,7 @@
     int fdstderr;
 
 public:
-    QUnixTerminalImpl(QWidget *parent = nullptr);
+    QUnixTerminalImpl(QWidget *parent, QWidget *main_win);
     virtual ~QUnixTerminalImpl();
 
     void setTerminalFont(const QFont &font);
@@ -65,14 +65,13 @@
     virtual void resizeEvent(QResizeEvent *);
 
 private:
-    void initialize();
+    void initialize (QWidget* main_win);
     void connectToPty();
 
     TerminalView *m_terminalView;
     TerminalModel *m_terminalModel;
     KPty *m_kpty;
     bool _extra_interrupt;
-    QWidget *_parent;
 };
 
 #endif // Q_UNIXTERMINALIMPL
--- a/libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp	Sun Dec 06 14:56:29 2020 +0100
+++ b/libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp	Sun Dec 06 21:40:16 2020 +0100
@@ -1441,19 +1441,19 @@
 
 //////////////////////////////////////////////////////////////////////////////
 
-QWinTerminalImpl::QWinTerminalImpl (QWidget* parent)
+QWinTerminalImpl::QWinTerminalImpl (QWidget* parent, QWidget* main_win)
     : QTerminal (parent), d (new QConsolePrivate (this)),
       allowTripleClick (false)
 {
     installEventFilter (this);
 
     connect (this, SIGNAL (set_global_shortcuts_signal (bool)),
-           parent, SLOT (set_global_shortcuts (bool)));
+             main_win, SLOT (set_global_shortcuts (bool)));
     connect (this, SIGNAL (set_global_shortcuts_signal (bool)),
              this, SLOT (set_global_shortcuts (bool)));
 
     connect (this, SIGNAL (set_screen_size_signal (int, int)),
-             parent, SLOT (set_screen_size (int, int)));
+             main_win, SLOT (set_screen_size (int, int)));
 
     setAcceptDrops (true);
 }
--- a/libgui/qterminal/libqterminal/win32/QWinTerminalImpl.h	Sun Dec 06 14:56:29 2020 +0100
+++ b/libgui/qterminal/libqterminal/win32/QWinTerminalImpl.h	Sun Dec 06 21:40:16 2020 +0100
@@ -49,7 +49,7 @@
   friend class QConsoleView;
 
 public:
-  QWinTerminalImpl (QWidget* parent = 0);
+  QWinTerminalImpl (QWidget* parent, QWidget* main_win);
   QWinTerminalImpl (const QString& cmd, QWidget* parent = 0);
   ~QWinTerminalImpl (void);
 
--- a/libgui/src/terminal-dock-widget.cc	Sun Dec 06 14:56:29 2020 +0100
+++ b/libgui/src/terminal-dock-widget.cc	Sun Dec 06 21:40:16 2020 +0100
@@ -44,7 +44,7 @@
   terminal_dock_widget::terminal_dock_widget (QWidget *p,
                                               base_qobject& oct_qobj)
     : octave_dock_widget ("TerminalDockWidget", p, oct_qobj),
-      m_terminal (QTerminal::create (oct_qobj, this))
+      m_terminal (QTerminal::create (oct_qobj, this, p))
   {
     m_terminal->setObjectName ("OctaveTerminal");
     m_terminal->setFocusPolicy (Qt::StrongFocus);