Diffstat (limited to 'noncore/apps/opie-console/session.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/apps/opie-console/session.cpp | 49 |
1 files changed, 46 insertions, 3 deletions
diff --git a/noncore/apps/opie-console/session.cpp b/noncore/apps/opie-console/session.cpp index d32b340..42b0583 100644 --- a/noncore/apps/opie-console/session.cpp +++ b/noncore/apps/opie-console/session.cpp @@ -4,4 +4,7 @@ #include "file_layer.h" +#include "widget.h" +#include "emulation_layer.h" #include "session.h" + Session::Session() { @@ -9,6 +12,10 @@ Session::Session() { m_layer = 0l; + m_widLay = 0l; + m_emLay = 0l; } -Session::Session( const QString& na, QWidget* widget, IOLayer* lay) +Session::Session( const QString& na, QWidgetStack* widget, IOLayer* lay) : m_name( na ), m_widget( widget ), m_layer( lay ) { + m_widLay = 0l; + m_emLay = 0l; } @@ -16,3 +23,5 @@ Session::~Session() { delete m_layer; + delete m_emLay; delete m_widget; + /* the widget layer should be deleted by the m_widget */ } @@ -21,3 +30,3 @@ QString Session::name()const { } -QWidget* Session::widget() { +QWidgetStack* Session::widgetStack() { return m_widget; @@ -27,2 +36,26 @@ IOLayer* Session::layer() { } +EmulationLayer* Session::emulationLayer() { + return m_emLay; +} +Widget* Session::emulationWidget() { + return m_widLay; +} +void Session::connect() { + if ( !m_layer || !m_emLay ) + return; + + QObject::connect(m_layer, SIGNAL(received(const QByteArray&) ), + m_emLay, SLOT(onRcvBlock(const QByteArray&) ) ); + QObject::connect(m_emLay, SIGNAL(sndBlock(const QByteArray&) ), + m_layer, SLOT(send(const QByteArray&) ) ); +} +void Session::disconnect() { + if ( !m_layer || !m_emLay ) + return; + + QObject::disconnect(m_layer, SIGNAL(received(const QByteArray&) ), + m_emLay, SLOT(onRcvBlock(const QByteArray&) ) ); + QObject::disconnect(m_emLay, SIGNAL(sndBlock(const QByteArray&) ), + m_layer, SLOT(send(const QByteArray&) ) ); +} void Session::setName( const QString& na){ @@ -30,4 +63,6 @@ void Session::setName( const QString& na){ } -void Session::setWidget( QWidget* wid ) { +void Session::setWidgetStack( QWidgetStack* wid ) { delete m_widget; + /* the EmulationLayer was destroyed... */ + delete m_emLay; m_widget = wid; @@ -38 +73,9 @@ void Session::setIOLayer( IOLayer* lay ) { } +void Session::setEmulationLayer( EmulationLayer* lay ) { + delete m_emLay; + m_emLay = lay; +} +void Session::setEmulationWidget( Widget* lay ) { + delete m_widLay; + m_widLay = lay; +} |