author | korovkin <korovkin> | 2006-03-19 14:58:21 (UTC) |
---|---|---|
committer | korovkin <korovkin> | 2006-03-19 14:58:21 (UTC) |
commit | 3de693f244170cb9424d841aef6a6d7175766fa3 (patch) (side-by-side diff) | |
tree | 03450003b6ea810052b7e046a1a9cb375d01ebba /noncore | |
parent | a71b86fe8ca57753e8209786691b9c7a33d1c1c9 (diff) | |
download | opie-3de693f244170cb9424d841aef6a6d7175766fa3.zip opie-3de693f244170cb9424d841aef6a6d7175766fa3.tar.gz opie-3de693f244170cb9424d841aef6a6d7175766fa3.tar.bz2 |
Added connection and disconnection.
-rw-r--r-- | noncore/net/opietooth/manager/rfcpopup.cpp | 56 | ||||
-rw-r--r-- | noncore/net/opietooth/manager/rfcpopup.h | 9 |
2 files changed, 41 insertions, 24 deletions
diff --git a/noncore/net/opietooth/manager/rfcpopup.cpp b/noncore/net/opietooth/manager/rfcpopup.cpp index 54f1eb7..7711f0a 100644 --- a/noncore/net/opietooth/manager/rfcpopup.cpp +++ b/noncore/net/opietooth/manager/rfcpopup.cpp @@ -8,2 +8,4 @@ #include <opie2/odebug.h> +#include <opie2/oprocess.h> + using namespace Opie::Core; @@ -18,4 +20,5 @@ using namespace OpieTooth; */ -RfcCommPopup::RfcCommPopup( OpieTooth::BTDeviceItem* item ) - : QPopupMenu() +RfcCommPopup::RfcCommPopup(const OpieTooth::Services& service, + OpieTooth::BTDeviceItem* item) + : QPopupMenu(), m_service(service) { @@ -24,21 +27,31 @@ RfcCommPopup::RfcCommPopup( OpieTooth::BTDeviceItem* item ) QAction* a; + int port = service.protocolDescriptorList().last().port(); + QString mac = item->mac(); + unsigned int i; - + procId = -1; m_item = item; - /* connect action */ - a = new QAction( ); // so it's get deleted - a->setText("Connect"); - a->addTo( this ); - connect( a, SIGNAL( activated() ), - this, SLOT( slotConnect() ) ); - - - /* disconnect action */ - a = new QAction( ); - a->setText("Disconnect"); - a->addTo( this ); - connect( a, SIGNAL( activated() ) , - this, SLOT( slotDisconnect() ) ); - + for (i = 0; i < sizeof(PPPDialog::conns) / sizeof(Connection); i++) { + if (PPPDialog::conns[i].port == port && + PPPDialog::conns[i].btAddr == mac && + PPPDialog::conns[i].proc.isRunning()) { + /* disconnect action */ + a = new QAction( ); + a->setText("Disconnect"); + a->addTo( this ); + connect( a, SIGNAL( activated() ) , + this, SLOT( slotDisconnect() ) ); + procId = i; + break; + } + } + if (procId == -1) { + /* connect action */ + a = new QAction( ); // so it's get deleted + a->setText("Connect"); + a->addTo( this ); + connect( a, SIGNAL( activated() ), + this, SLOT( slotConnect() ) ); + } @@ -76,3 +89,4 @@ void RfcCommPopup::slotConnect() - PPPDialog pppDialog; + PPPDialog pppDialog(m_item->mac(), + m_service.protocolDescriptorList().last().port()); QPEApplication::execDialog( &pppDialog ); @@ -83,3 +97,5 @@ void RfcCommPopup::slotDisconnect() { - owarn << "slot disconnected" << oendl; + owarn << "slot disconnected " << procId << oendl; + if (procId >= 0) + PPPDialog::conns[procId].proc.kill(); } diff --git a/noncore/net/opietooth/manager/rfcpopup.h b/noncore/net/opietooth/manager/rfcpopup.h index 74b9117..a67e41e 100644 --- a/noncore/net/opietooth/manager/rfcpopup.h +++ b/noncore/net/opietooth/manager/rfcpopup.h @@ -5,3 +5,3 @@ #include <qaction.h> - +#include <services.h> #include "btdeviceitem.h" @@ -20,6 +20,5 @@ namespace OpieTooth { public: - RfcCommPopup( OpieTooth::BTDeviceItem* ); + RfcCommPopup(const OpieTooth::Services&, OpieTooth::BTDeviceItem*); ~RfcCommPopup(); - private: @@ -29,3 +28,5 @@ namespace OpieTooth { QAction* m_bar; - OpieTooth::BTDeviceItem *m_item; + OpieTooth::BTDeviceItem *m_item; + Services m_service; + int procId; //Connection process number private slots: |