-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 | 665 | ||||
-rw-r--r-- | noncore/net/opietooth/manager/panpopup.cpp | 46 | ||||
-rw-r--r-- | noncore/net/opietooth/manager/panpopup.h | 11 |
9 files changed, 480 insertions, 390 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,348 +20,338 @@ <string>Form1</string> </property> - <widget> - <class>QTabWidget</class> + <property> + <name>layoutMargin</name> + </property> + <property> + <name>layoutSpacing</name> + </property> + <vbox> <property stdset="1"> - <name>name</name> - <cstring>Status</cstring> + <name>margin</name> + <number>0</number> </property> <property stdset="1"> - <name>geometry</name> - <rect> - <x>0</x> - <y>0</y> - <width>260</width> - <height>350</height> - </rect> + <name>spacing</name> + <number>0</number> </property> <widget> - <class>QWidget</class> + <class>QTabWidget</class> <property stdset="1"> <name>name</name> - <cstring>tab</cstring> + <cstring>Status</cstring> </property> - <attribute> - <name>title</name> - <string>Devices</string> - </attribute> - <spacer> - <property> - <name>name</name> - <cstring>Spacer3</cstring> - </property> - <property stdset="1"> - <name>orientation</name> - <enum>Vertical</enum> - </property> + <property> + <name>layoutMargin</name> + </property> + <property> + <name>layoutSpacing</name> + </property> + <widget> + <class>QWidget</class> <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> + <cstring>tab</cstring> </property> - <property stdset="1"> - <name>orientation</name> - <enum>Vertical</enum> - </property> - <property stdset="1"> - <name>sizeType</name> - <enum>Fixed</enum> - </property> - <property> - <name>sizeHint</name> - <size> - <width>20</width> - <height>20</height> - </size> - </property> - </spacer> - <widget> - <class>QListView</class> - <column> - <property> - <name>text</name> - <string>Device Name</string> - </property> - <property> - <name>clickable</name> - <bool>true</bool> - </property> - <property> - <name>resizeable</name> - <bool>true</bool> - </property> - </column> - <column> - <property> - <name>text</name> - <string>Online</string> - </property> - <property> - <name>clickable</name> - <bool>true</bool> + <attribute> + <name>title</name> + <string>Devices</string> + </attribute> + <vbox> + <property stdset="1"> + <name>margin</name> + <number>2</number> </property> - <property> - <name>resizeable</name> - <bool>true</bool> + <property stdset="1"> + <name>spacing</name> + <number>2</number> </property> - </column> - <property stdset="1"> - <name>name</name> - <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> + <class>QListView</class> + <column> + <property> + <name>text</name> + <string>Device Name</string> + </property> + <property> + <name>clickable</name> + <bool>true</bool> + </property> + <property> + <name>resizeable</name> + <bool>true</bool> + </property> + </column> + <column> + <property> + <name>text</name> + <string>Online</string> + </property> + <property> + <name>clickable</name> + <bool>true</bool> + </property> + <property> + <name>resizeable</name> + <bool>true</bool> + </property> + </column> + <property stdset="1"> + <name>name</name> + <cstring>ListView2</cstring> + </property> + </widget> + <widget> + <class>QPushButton</class> + <property stdset="1"> + <name>name</name> + <cstring>PushButton2</cstring> + </property> + <property stdset="1"> + <name>sizePolicy</name> + <sizepolicy> + <hsizetype>0</hsizetype> + <vsizetype>0</vsizetype> + </sizepolicy> + </property> + <property stdset="1"> + <name>text</name> + <string>Scan for Devices</string> + </property> + </widget> + </vbox> </widget> <widget> - <class>QPushButton</class> + <class>QWidget</class> <property stdset="1"> <name>name</name> - <cstring>PushButton2</cstring> - </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> - <hsizetype>0</hsizetype> - <vsizetype>0</vsizetype> - </sizepolicy> - </property> - <property stdset="1"> - <name>text</name> - <string>Scan for Devices</string> + <cstring>tab</cstring> </property> - </widget> - </widget> - <widget> - <class>QWidget</class> - <property stdset="1"> - <name>name</name> - <cstring>tab</cstring> - </property> - <attribute> - <name>title</name> - <string>Connections</string> - </attribute> - <widget> - <class>QListView</class> - <column> - <property> - <name>text</name> - <string>Device Name</string> - </property> - <property> - <name>clickable</name> - <bool>true</bool> - </property> - <property> - <name>resizeable</name> - <bool>true</bool> - </property> - </column> - <column> - <property> - <name>text</name> - <string>Connection type</string> - </property> - <property> - <name>clickable</name> - <bool>true</bool> - </property> - <property> - <name>resizeable</name> - <bool>true</bool> - </property> - </column> - <column> - <property> - <name>text</name> - <string>Signal</string> - </property> - <property> - <name>clickable</name> - <bool>true</bool> + <attribute> + <name>title</name> + <string>Connections</string> + </attribute> + <vbox> + <property stdset="1"> + <name>margin</name> + <number>2</number> </property> - <property> - <name>resizeable</name> - <bool>true</bool> + <property stdset="1"> + <name>spacing</name> + <number>2</number> </property> - </column> - <property stdset="1"> - <name>name</name> - <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> - </widget> - <widget> - <class>QWidget</class> - <property stdset="1"> - <name>name</name> - <cstring>tab</cstring> - </property> - <attribute> - <name>title</name> - <string>Config</string> - </attribute> - <widget> - <class>QLabel</class> - <property stdset="1"> - <name>name</name> - <cstring>deviceNameLabel</cstring> - </property> - <property stdset="1"> - <name>geometry</name> - <rect> - <x>10</x> - <y>10</y> - <width>70</width> - <height>20</height> - </rect> - </property> - <property stdset="1"> - <name>text</name> - <string>Device Name</string> - </property> - </widget> - <widget> - <class>QLabel</class> - <property stdset="1"> - <name>name</name> - <cstring>passkeyLabel</cstring> - </property> - <property stdset="1"> - <name>geometry</name> - <rect> - <x>10</x> - <y>50</y> - <width>80</width> - <height>20</height> - </rect> - </property> - <property stdset="1"> - <name>text</name> - <string>Default Passkey</string> - </property> - </widget> - <widget> - <class>QLineEdit</class> - <property stdset="1"> - <name>name</name> - <cstring>passkeyLine</cstring> - </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> + <class>QListView</class> + <column> + <property> + <name>text</name> + <string>Device Name</string> + </property> + <property> + <name>clickable</name> + <bool>true</bool> + </property> + <property> + <name>resizeable</name> + <bool>true</bool> + </property> + </column> + <column> + <property> + <name>text</name> + <string>Connection type</string> + </property> + <property> + <name>clickable</name> + <bool>true</bool> + </property> + <property> + <name>resizeable</name> + <bool>true</bool> + </property> + </column> + <column> + <property> + <name>text</name> + <string>Signal</string> + </property> + <property> + <name>clickable</name> + <bool>true</bool> + </property> + <property> + <name>resizeable</name> + <bool>true</bool> + </property> + </column> + <property stdset="1"> + <name>name</name> + <cstring>ListView4</cstring> + </property> + </widget> + </vbox> </widget> <widget> - <class>QLayoutWidget</class> + <class>QWidget</class> <property stdset="1"> <name>name</name> - <cstring>Layout5</cstring> - </property> - <property stdset="1"> - <name>geometry</name> - <rect> - <x>10</x> - <y>100</y> - <width>188</width> - <height>120</height> - </rect> + <cstring>tab</cstring> </property> + <attribute> + <name>title</name> + <string>Config</string> + </attribute> <vbox> <property stdset="1"> <name>margin</name> - <number>0</number> + <number>2</number> </property> <property stdset="1"> <name>spacing</name> - <number>6</number> + <number>2</number> </property> <widget> - <class>QCheckBox</class> + <class>QLayoutWidget</class> <property stdset="1"> <name>name</name> - <cstring>authCheckBox</cstring> - </property> - <property stdset="1"> - <name>text</name> - <string>enable authentification</string> + <cstring>Layout2</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>deviceNameLabel</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>Device Name</string> + </property> + </widget> + <widget> + <class>QLineEdit</class> + <property stdset="1"> + <name>name</name> + <cstring>deviceNameLine</cstring> + </property> + </widget> + </hbox> </widget> <widget> - <class>QCheckBox</class> + <class>QLayoutWidget</class> <property stdset="1"> <name>name</name> - <cstring>cryptCheckBox</cstring> - </property> - <property stdset="1"> - <name>text</name> - <string>enable encryption</string> + <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"> + <name>text</name> + <string>Default Passkey</string> + </property> + </widget> + <widget> + <class>QLineEdit</class> + <property stdset="1"> + <name>name</name> + <cstring>passkeyLine</cstring> + </property> + <property stdset="1"> + <name>echoMode</name> + <enum>Password</enum> + </property> + </widget> + </hbox> </widget> <widget> - <class>QCheckBox</class> + <class>QLayoutWidget</class> <property stdset="1"> <name>name</name> - <cstring>pagescanCheckBox</cstring> - </property> - <property stdset="1"> - <name>text</name> - <string>Enable Page scan</string> + <cstring>Layout5</cstring> </property> + <vbox> + <property stdset="1"> + <name>margin</name> + <number>0</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>6</number> + </property> + <widget> + <class>QCheckBox</class> + <property stdset="1"> + <name>name</name> + <cstring>authCheckBox</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>enable authentification</string> + </property> + </widget> + <widget> + <class>QCheckBox</class> + <property stdset="1"> + <name>name</name> + <cstring>cryptCheckBox</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>enable encryption</string> + </property> + </widget> + <widget> + <class>QCheckBox</class> + <property stdset="1"> + <name>name</name> + <cstring>pagescanCheckBox</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>Enable Page scan</string> + </property> + </widget> + <widget> + <class>QCheckBox</class> + <property stdset="1"> + <name>name</name> + <cstring>inquiryscanCheckBox</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>Enable Inquiry scan</string> + </property> + </widget> + </vbox> </widget> <widget> - <class>QCheckBox</class> + <class>QPushButton</class> <property stdset="1"> <name>name</name> - <cstring>inquiryscanCheckBox</cstring> + <cstring>configApplyButton</cstring> </property> <property stdset="1"> <name>text</name> - <string>Enable Inquiry scan</string> + <string>Apply</string> </property> </widget> @@ -369,72 +359,37 @@ </widget> <widget> - <class>QLineEdit</class> + <class>QWidget</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"> - <name>name</name> - <cstring>configApplyButton</cstring> - </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> - </widget> - <widget> - <class>QWidget</class> - <property stdset="1"> - <name>name</name> - <cstring>tab</cstring> - </property> - <attribute> - <name>title</name> - <string>Status</string> - </attribute> - <widget> - <class>QLabel</class> - <property stdset="1"> - <name>name</name> - <cstring>StatusLabel</cstring> - </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> + <cstring>tab</cstring> </property> + <attribute> + <name>title</name> + <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> + <property stdset="1"> + <name>name</name> + <cstring>StatusLabel</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>Status Label</string> + </property> + </widget> + </vbox> </widget> </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 = new QAction(); // so it's get deleted + 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,12 +22,11 @@ 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 ); - }; + }; }; |