author | harlekin <harlekin> | 2003-03-21 15:56:58 (UTC) |
---|---|---|
committer | harlekin <harlekin> | 2003-03-21 15:56:58 (UTC) |
commit | d3f71dadbd2dafcf42480afeffe75e7e36ec7d9c (patch) (side-by-side diff) | |
tree | 922b36110df58bdc00a3e2508313609c0f00c45f | |
parent | 69086f42072e7fc1ea5256cb9275a27bf5b41f87 (diff) | |
download | opie-d3f71dadbd2dafcf42480afeffe75e7e36ec7d9c.zip opie-d3f71dadbd2dafcf42480afeffe75e7e36ec7d9c.tar.gz opie-d3f71dadbd2dafcf42480afeffe75e7e36ec7d9c.tar.bz2 |
move connection work to the lib
-rw-r--r-- | noncore/net/opietooth/lib/connection.cpp | 4 | ||||
-rw-r--r-- | noncore/net/opietooth/lib/connection.h | 31 | ||||
-rw-r--r-- | noncore/net/opietooth/lib/lib.pro | 4 | ||||
-rw-r--r-- | noncore/net/opietooth/lib/startpanconnection.cpp | 67 | ||||
-rw-r--r-- | noncore/net/opietooth/lib/startpanconnection.h | 40 | ||||
-rw-r--r-- | noncore/net/opietooth/manager/bluebase.cpp | 2 | ||||
-rw-r--r-- | noncore/net/opietooth/manager/bluetoothbase.ui | 243 | ||||
-rw-r--r-- | noncore/net/opietooth/manager/panpopup.cpp | 44 | ||||
-rw-r--r-- | noncore/net/opietooth/manager/panpopup.h | 9 |
9 files changed, 267 insertions, 177 deletions
diff --git a/noncore/net/opietooth/lib/connection.cpp b/noncore/net/opietooth/lib/connection.cpp index ef7d925..5e35463 100644 --- a/noncore/net/opietooth/lib/connection.cpp +++ b/noncore/net/opietooth/lib/connection.cpp @@ -4,4 +4,8 @@ using namespace OpieTooth; + + + + ConnectionState::ConnectionState() { m_direction = Incoming; diff --git a/noncore/net/opietooth/lib/connection.h b/noncore/net/opietooth/lib/connection.h index 76e5dad..a0c50f2 100644 --- a/noncore/net/opietooth/lib/connection.h +++ b/noncore/net/opietooth/lib/connection.h @@ -5,7 +5,38 @@ #include <qstring.h> #include <qvaluelist.h> +#include <qobject.h> namespace OpieTooth { + + + + /** + * Parent class for all kinds of starting connection + * subclasses + * + */ + class StartConnection : public QObject { + + protected: + + enum ConnectionType{ + Pan = 0, + Rfcomm, + Obex, + Hci + }; + + virtual ~StartConnection() {}; + + virtual QString name() = 0; + virtual void setName( QString name ) = 0; + virtual ConnectionType type() = 0; + virtual void setConnectionType() = 0; + virtual void start() = 0; + virtual void stop() = 0; + + }; + enum LinkDirection { Incoming= true, Outgoing = false }; enum LinkMode { Master =0, Client }; diff --git a/noncore/net/opietooth/lib/lib.pro b/noncore/net/opietooth/lib/lib.pro index 88df1fb..d081b5c 100644 --- a/noncore/net/opietooth/lib/lib.pro +++ b/noncore/net/opietooth/lib/lib.pro @@ -1,6 +1,6 @@ TEMPLATE = lib CONFIG += qte warn_on release -HEADERS = connection.h parser.h device.h manager.h remotedevice.h services.h -SOURCES = connection.cpp parser.cc device.cc manager.cc remotedevice.cc services.cc +HEADERS = connection.h parser.h device.h manager.h remotedevice.h services.h startpanconnection.h +SOURCES = connection.cpp parser.cc device.cc manager.cc remotedevice.cc services.cc startpanconnection.cpp TARGET = opietooth INCLUDEPATH += $(OPIEDIR)/include . diff --git a/noncore/net/opietooth/lib/startpanconnection.cpp b/noncore/net/opietooth/lib/startpanconnection.cpp new file mode 100644 index 0000000..b68f02d --- a/dev/null +++ b/noncore/net/opietooth/lib/startpanconnection.cpp @@ -0,0 +1,67 @@ + +#include "startpanconnection.h" + +using namespace OpieTooth; + + +StartPanConnection::StartPanConnection() { + m_panConnect = 0l; + setConnectionType(); +} + +StartPanConnection::~StartPanConnection() { + delete m_panConnect; +} + +StartPanConnection::StartPanConnection( QString mac ) { + m_panConnect = 0l; + m_mac = mac; + setConnectionType(); +} + +void StartPanConnection::setName( QString name ) { + m_name = name; +} + +QString StartPanConnection::name() { + return m_name; +} + +void StartPanConnection::setConnectionType() { + m_connectionType = Pan; +} + +StartConnection::ConnectionType StartPanConnection::type() { + return m_connectionType; +} + +void StartPanConnection::start() { + m_panConnect = new OProcess(); + *m_panConnect << "pand" << "--connect" << 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 start" ); + delete m_panConnect; + } +} + + +void StartPanConnection::slotExited( OProcess* proc ) { + delete m_panConnect; +} + +void StartPanConnection::slotStdOut(OProcess* proc, char* chars, int len) +{} + + +void StartPanConnection::stop() { + if ( m_panConnect ) { + delete m_panConnect; + m_panConnect = 0l; + } +} + diff --git a/noncore/net/opietooth/lib/startpanconnection.h b/noncore/net/opietooth/lib/startpanconnection.h new file mode 100644 index 0000000..7e5bd95 --- a/dev/null +++ b/noncore/net/opietooth/lib/startpanconnection.h @@ -0,0 +1,40 @@ +#ifndef startpanconnection_h +#define startpanconnection_h + +#include <qobject.h> +#include "connection.h" +#include <opie/oprocess.h> + +namespace OpieTooth { + + class StartPanConnection : StartConnection { + + Q_OBJECT + + public: + StartPanConnection(); + StartPanConnection( QString mac ); + ~StartPanConnection(); + + QString name(); + void setName( QString name ); + StartConnection::ConnectionType type(); + void setConnectionType( ); + void start(); + void stop(); + + private: + QString m_name; + QString m_mac; + ConnectionType m_connectionType; + OProcess* m_panConnect; + + private slots: + void slotExited( OProcess* proc ); + void slotStdOut( OProcess* proc, char* chars, int len ); + }; + + +} + +#endif diff --git a/noncore/net/opietooth/manager/bluebase.cpp b/noncore/net/opietooth/manager/bluebase.cpp index b5a09e5..04fa117 100644 --- a/noncore/net/opietooth/manager/bluebase.cpp +++ b/noncore/net/opietooth/manager/bluebase.cpp @@ -334,5 +334,5 @@ void BlueBase::startServiceActionHold( QListViewItem * item, const QPoint & poin if ( it != list.end() ) { qWarning("Searching id %d %s", it.key(), it.data().latin1() ); - popup = m_popHelper.find( it.key() /*1*/, + popup = m_popHelper.find( 4358, service->services(), (BTDeviceItem*)service->parent() ); diff --git a/noncore/net/opietooth/manager/bluetoothbase.ui b/noncore/net/opietooth/manager/bluetoothbase.ui index b51c8c6..9ff970f 100644 --- a/noncore/net/opietooth/manager/bluetoothbase.ui +++ b/noncore/net/opietooth/manager/bluetoothbase.ui @@ -12,5 +12,5 @@ <x>0</x> <y>0</y> - <width>228</width> + <width>224</width> <height>320</height> </rect> @@ -20,4 +20,19 @@ <string>Form1</string> </property> + <property> + <name>layoutMargin</name> + </property> + <property> + <name>layoutSpacing</name> + </property> + <vbox> + <property stdset="1"> + <name>margin</name> + <number>0</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>0</number> + </property> <widget> <class>QTabWidget</class> @@ -26,12 +41,9 @@ <cstring>Status</cstring> </property> - <property stdset="1"> - <name>geometry</name> - <rect> - <x>0</x> - <y>0</y> - <width>260</width> - <height>350</height> - </rect> + <property> + <name>layoutMargin</name> + </property> + <property> + <name>layoutSpacing</name> </property> <widget> @@ -45,46 +57,13 @@ <string>Devices</string> </attribute> - <spacer> - <property> - <name>name</name> - <cstring>Spacer3</cstring> - </property> - <property stdset="1"> - <name>orientation</name> - <enum>Vertical</enum> - </property> - <property stdset="1"> - <name>sizeType</name> - <enum>Expanding</enum> - </property> - <property> - <name>sizeHint</name> - <size> - <width>20</width> - <height>20</height> - </size> - </property> - </spacer> - <spacer> - <property> - <name>name</name> - <cstring>Spacer1</cstring> - </property> + <vbox> <property stdset="1"> - <name>orientation</name> - <enum>Vertical</enum> + <name>margin</name> + <number>2</number> </property> <property stdset="1"> - <name>sizeType</name> - <enum>Fixed</enum> - </property> - <property> - <name>sizeHint</name> - <size> - <width>20</width> - <height>20</height> - </size> + <name>spacing</name> + <number>2</number> </property> - </spacer> <widget> <class>QListView</class> @@ -121,13 +100,4 @@ <cstring>ListView2</cstring> </property> - <property stdset="1"> - <name>geometry</name> - <rect> - <x>0</x> - <y>0</y> - <width>230</width> - <height>230</height> - </rect> - </property> </widget> <widget> @@ -138,13 +108,4 @@ </property> <property stdset="1"> - <name>geometry</name> - <rect> - <x>40</x> - <y>231</y> - <width>154</width> - <height>30</height> - </rect> - </property> - <property stdset="1"> <name>sizePolicy</name> <sizepolicy> @@ -158,4 +119,5 @@ </property> </widget> + </vbox> </widget> <widget> @@ -169,4 +131,13 @@ <string>Connections</string> </attribute> + <vbox> + <property stdset="1"> + <name>margin</name> + <number>2</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>2</number> + </property> <widget> <class>QListView</class> @@ -217,14 +188,6 @@ <cstring>ListView4</cstring> </property> - <property stdset="1"> - <name>geometry</name> - <rect> - <x>0</x> - <y>0</y> - <width>240</width> - <height>240</height> - </rect> - </property> </widget> + </vbox> </widget> <widget> @@ -238,18 +201,33 @@ <string>Config</string> </attribute> + <vbox> + <property stdset="1"> + <name>margin</name> + <number>2</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>2</number> + </property> <widget> - <class>QLabel</class> + <class>QLayoutWidget</class> <property stdset="1"> <name>name</name> - <cstring>deviceNameLabel</cstring> + <cstring>Layout2</cstring> </property> + <hbox> <property stdset="1"> - <name>geometry</name> - <rect> - <x>10</x> - <y>10</y> - <width>70</width> - <height>20</height> - </rect> + <name>margin</name> + <number>0</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>6</number> + </property> + <widget> + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>deviceNameLabel</cstring> </property> <property stdset="1"> @@ -259,17 +237,32 @@ </widget> <widget> - <class>QLabel</class> + <class>QLineEdit</class> <property stdset="1"> <name>name</name> - <cstring>passkeyLabel</cstring> + <cstring>deviceNameLine</cstring> </property> + </widget> + </hbox> + </widget> + <widget> + <class>QLayoutWidget</class> <property stdset="1"> - <name>geometry</name> - <rect> - <x>10</x> - <y>50</y> - <width>80</width> - <height>20</height> - </rect> + <name>name</name> + <cstring>Layout3</cstring> + </property> + <hbox> + <property stdset="1"> + <name>margin</name> + <number>0</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>6</number> + </property> + <widget> + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>passkeyLabel</cstring> </property> <property stdset="1"> @@ -285,17 +278,10 @@ </property> <property stdset="1"> - <name>geometry</name> - <rect> - <x>98</x> - <y>53</y> - <width>120</width> - <height>22</height> - </rect> - </property> - <property stdset="1"> <name>echoMode</name> <enum>Password</enum> </property> </widget> + </hbox> + </widget> <widget> <class>QLayoutWidget</class> @@ -304,13 +290,4 @@ <cstring>Layout5</cstring> </property> - <property stdset="1"> - <name>geometry</name> - <rect> - <x>10</x> - <y>100</y> - <width>188</width> - <height>120</height> - </rect> - </property> <vbox> <property stdset="1"> @@ -369,20 +346,4 @@ </widget> <widget> - <class>QLineEdit</class> - <property stdset="1"> - <name>name</name> - <cstring>deviceNameLine</cstring> - </property> - <property stdset="1"> - <name>geometry</name> - <rect> - <x>98</x> - <y>13</y> - <width>120</width> - <height>22</height> - </rect> - </property> - </widget> - <widget> <class>QPushButton</class> <property stdset="1"> @@ -391,17 +352,9 @@ </property> <property stdset="1"> - <name>geometry</name> - <rect> - <x>60</x> - <y>230</y> - <width>99</width> - <height>32</height> - </rect> - </property> - <property stdset="1"> <name>text</name> <string>Apply</string> </property> </widget> + </vbox> </widget> <widget> @@ -415,4 +368,13 @@ <string>Status</string> </attribute> + <vbox> + <property stdset="1"> + <name>margin</name> + <number>2</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>2</number> + </property> <widget> <class>QLabel</class> @@ -422,19 +384,12 @@ </property> <property stdset="1"> - <name>geometry</name> - <rect> - <x>10</x> - <y>10</y> - <width>220</width> - <height>250</height> - </rect> - </property> - <property stdset="1"> <name>text</name> <string>Status Label</string> </property> </widget> + </vbox> </widget> </widget> + </vbox> </widget> </UI> diff --git a/noncore/net/opietooth/manager/panpopup.cpp b/noncore/net/opietooth/manager/panpopup.cpp index d3d1347..61e632b 100644 --- a/noncore/net/opietooth/manager/panpopup.cpp +++ b/noncore/net/opietooth/manager/panpopup.cpp @@ -15,49 +15,41 @@ PanPopup::PanPopup( OpieTooth::BTDeviceItem* item ) : QPopupMenu() { m_item = item; - m_panconnect = 0l; - QAction *a, *b; + QAction *a, *b, *c; + m_panconnection = 0l; /* connect action */ + + a = new QAction( ); // so it's get deleted - a->setText( "connect" ); + a->setText( tr("connect") ); a->addTo( this ); connect( a, SIGNAL( activated() ), this, SLOT( slotConnect() ) ); + b = new QAction(); - b->setText( "connect+conf" ); + b->setText( tr( "connect+conf" ) ); b->addTo( this ); connect( b, SIGNAL( activated() ), this, SLOT( slotConnectAndConfig() ) ); + + c = new QAction(); + c->setText( tr( "disconnect" ) ); + c->addTo( this ); + connect( c, SIGNAL( activated() ), this, SLOT( slotDisconnect() ) ); + }; PanPopup::~PanPopup() { - delete m_panconnect; + } void PanPopup::slotConnect() { - - - // SHOULD move to lib - // before pand must be in "pand --listen --role panu" mode ( client ) - - m_panconnect = new OProcess(); - *m_panconnect << "pand" << "--connect" << m_item->mac(); - - connect( m_panconnect, SIGNAL( processExited( OProcess* ) ) , - this, SLOT( slotConnectExited( OProcess* ) ) ); - connect( m_panconnect, SIGNAL( receivedStdout( OProcess*, char*, int ) ), - this, SLOT( slotConnectOut( OProcess*, char*, int ) ) ); - if (!m_panconnect->start( OProcess::NotifyOnExit, OProcess::AllOutput) ) { - qWarning( "could not start" ); - delete m_panconnect; - } + m_panconnection = new StartPanConnection( m_item->mac() ); + m_panconnection->start(); } -void PanPopup::slotExited( OProcess* proc ) { - delete m_panconnect; +void PanPopup::slotDisconnect() { + m_panconnection->stop(); } -void PanPopup::slotStdOut(OProcess* proc, char* chars, int len) -{} - void PanPopup::slotConnectAndConfig() { diff --git a/noncore/net/opietooth/manager/panpopup.h b/noncore/net/opietooth/manager/panpopup.h index 9d99f5e..1496f3a 100644 --- a/noncore/net/opietooth/manager/panpopup.h +++ b/noncore/net/opietooth/manager/panpopup.h @@ -4,8 +4,10 @@ #include <qpopupmenu.h> #include <qaction.h> -#include <opie/oprocess.h> + +#include <startpanconnection.h> #include "btdeviceitem.h" + namespace OpieTooth { @@ -20,11 +22,10 @@ namespace OpieTooth { private: QAction* m_push; - OProcess* m_panconnect; + OpieTooth::StartPanConnection* m_panconnection; OpieTooth::BTDeviceItem *m_item; private slots: void slotConnect(); + void slotDisconnect(); void slotConnectAndConfig(); - void slotExited( OProcess* proc ); - void slotStdOut( OProcess* proc, char* chars, int len ); }; }; |