diff --git a/lib/Session.cpp b/lib/Session.cpp index 29c97c4..b990c0c 100644 --- a/lib/Session.cpp +++ b/lib/Session.cpp @@ -79,6 +79,7 @@ Session::Session(QObject* parent) : //create teletype for I/O with shell process _shellProcess = new Pty(); + ptySlaveFd = _shellProcess->pty()->slaveFd(); //create emulation backend _emulation = new Vt102Emulation(); @@ -939,6 +940,10 @@ int Session::processId() const { return _shellProcess->pid(); } +int Session::getPtySlaveFd() const +{ + return ptySlaveFd; +} SessionGroup::SessionGroup() : _masterMode(0) diff --git a/lib/Session.h b/lib/Session.h index b3a389f..988d71d 100644 --- a/lib/Session.h +++ b/lib/Session.h @@ -363,6 +363,13 @@ public: // void cancelZModem(); // bool isZModemBusy() { return _zmodemBusy; } + /** + * Returns a pty slave file descriptor. + * This can be used for display and control + * a remote terminal. + */ + int getPtySlaveFd() const; + public slots: /** @@ -543,6 +550,8 @@ private: static int lastSessionId; + int ptySlaveFd; + }; /** diff --git a/lib/qtermwidget.cpp b/lib/qtermwidget.cpp index 1b4f4a1..1c8fc6c 100644 --- a/lib/qtermwidget.cpp +++ b/lib/qtermwidget.cpp @@ -619,3 +619,7 @@ Filter::HotSpot* QTermWidget::getHotSpotAt(int row, int column) const return m_impl->m_terminalDisplay->filterChain()->hotSpotAt(row, column); } +int QTermWidget::getPtySlaveFd() const +{ + return m_impl->m_session->getPtySlaveFd(); +} diff --git a/lib/qtermwidget.h b/lib/qtermwidget.h index de1da2f..1b16bb3 100644 --- a/lib/qtermwidget.h +++ b/lib/qtermwidget.h @@ -165,6 +165,13 @@ public: */ Filter::HotSpot* getHotSpotAt(int row, int column) const; + /** + * Returns a pty slave file descriptor. + * This can be used for display and control + * a remote terminal. + */ + int getPtySlaveFd() const; + signals: void finished(); void copyAvailable(bool);