Mercurial > octave
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);