summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/net/opietooth/lib/startpanconnection.cpp14
-rw-r--r--noncore/net/opietooth/manager/panpopup.cpp1
2 files changed, 15 insertions, 0 deletions
diff --git a/noncore/net/opietooth/lib/startpanconnection.cpp b/noncore/net/opietooth/lib/startpanconnection.cpp
index e7deede..6e0ab7e 100644
--- a/noncore/net/opietooth/lib/startpanconnection.cpp
+++ b/noncore/net/opietooth/lib/startpanconnection.cpp
@@ -48,21 +48,35 @@ void StartPanConnection::start() {
qWarning( "could not start" );
delete m_panConnect;
}
}
void StartPanConnection::slotExited( OProcess* proc ) {
delete m_panConnect;
+ m_panConnect = 0l;
}
void StartPanConnection::slotStdOut(OProcess* proc, char* chars, int len)
{}
void StartPanConnection::stop() {
if ( m_panConnect ) {
delete m_panConnect;
m_panConnect = 0l;
}
+ m_panConnect = new OProcess();
+ qDebug("IM STOP " + m_mac);
+
+ *m_panConnect << "pand" << "--kill" << m_mac;
+
+ connect( m_panConnect, SIGNAL( processExited( OProcess* ) ) ,
+ this, SLOT( slotExited( OProcess* ) ) );
+ connect( m_panConnect, SIGNAL( receivedStdout( OProcess*, char*, int ) ),
+ this, SLOT( slotStdOut( OProcess*, char*, int ) ) );
+ if (!m_panConnect->start( OProcess::NotifyOnExit, OProcess::AllOutput) ) {
+ qWarning( "could not stop" );
+ delete m_panConnect;
+ }
}
diff --git a/noncore/net/opietooth/manager/panpopup.cpp b/noncore/net/opietooth/manager/panpopup.cpp
index 695f349..8b05964 100644
--- a/noncore/net/opietooth/manager/panpopup.cpp
+++ b/noncore/net/opietooth/manager/panpopup.cpp
@@ -44,16 +44,17 @@ PanPopup::~PanPopup() {
void PanPopup::slotConnect() {
m_panconnection = new StartPanConnection( m_item->mac() );
m_panconnection->start();
}
void PanPopup::slotDisconnect() {
+ if (!m_panconnection) m_panconnection = new StartPanConnection( m_item->mac() );
m_panconnection->stop();
}
void PanPopup::slotConnectAndConfig() {
slotConnect();
// more intelligence here later like passing the device ( bnepX )