author | mickeyl <mickeyl> | 2005-07-09 16:05:57 (UTC) |
---|---|---|
committer | mickeyl <mickeyl> | 2005-07-09 16:05:57 (UTC) |
commit | 9b070d84b36c5dc764b6b4a8a3ca511d2e3d441f (patch) (unidiff) | |
tree | 9d42efed66329ad925f3079e2739d9a3a9ced880 /noncore/net/opietooth/manager | |
parent | 5dbfa604bcc5dd32401d862372af806bfe674e89 (diff) | |
download | opie-9b070d84b36c5dc764b6b4a8a3ca511d2e3d441f.zip opie-9b070d84b36c5dc764b6b4a8a3ca511d2e3d441f.tar.gz opie-9b070d84b36c5dc764b6b4a8a3ca511d2e3d441f.tar.bz2 |
autopopulate services list, use odebug where appropriate instead of owarn
Diffstat (limited to 'noncore/net/opietooth/manager') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/net/opietooth/manager/bluebase.cpp | 44 | ||||
-rw-r--r-- | noncore/net/opietooth/manager/bluebase.h | 9 |
2 files changed, 25 insertions, 28 deletions
diff --git a/noncore/net/opietooth/manager/bluebase.cpp b/noncore/net/opietooth/manager/bluebase.cpp index af1cd23..0649514 100644 --- a/noncore/net/opietooth/manager/bluebase.cpp +++ b/noncore/net/opietooth/manager/bluebase.cpp | |||
@@ -38,103 +38,97 @@ using namespace Opie::Core; | |||
38 | #include <qimage.h> | 38 | #include <qimage.h> |
39 | #include <qpixmap.h> | 39 | #include <qpixmap.h> |
40 | #include <qtabwidget.h> | 40 | #include <qtabwidget.h> |
41 | #include <qscrollview.h> | 41 | #include <qscrollview.h> |
42 | #include <qvbox.h> | 42 | #include <qvbox.h> |
43 | #include <qmessagebox.h> | 43 | #include <qmessagebox.h> |
44 | #include <qcheckbox.h> | 44 | #include <qcheckbox.h> |
45 | #include <qlineedit.h> | 45 | #include <qlineedit.h> |
46 | #include <qlistview.h> | 46 | #include <qlistview.h> |
47 | #include <qdir.h> | 47 | #include <qdir.h> |
48 | #include <qpopupmenu.h> | 48 | #include <qpopupmenu.h> |
49 | #include <qtimer.h> | 49 | #include <qtimer.h> |
50 | #include <qlist.h> | 50 | #include <qlist.h> |
51 | 51 | ||
52 | /* STD */ | 52 | /* STD */ |
53 | #include <remotedevice.h> | 53 | #include <remotedevice.h> |
54 | #include <services.h> | 54 | #include <services.h> |
55 | #include <stdlib.h> | 55 | #include <stdlib.h> |
56 | 56 | ||
57 | using namespace OpieTooth; | 57 | using namespace OpieTooth; |
58 | 58 | ||
59 | BlueBase::BlueBase( QWidget* parent, const char* name, WFlags fl ) | 59 | BlueBase::BlueBase( QWidget* parent, const char* name, WFlags fl ) |
60 | : BluetoothBase( parent, name, fl ) | 60 | : BluetoothBase( parent, name, fl ) |
61 | { | 61 | { |
62 | |||
63 | m_localDevice = new Manager( "hci0" ); | 62 | m_localDevice = new Manager( "hci0" ); |
64 | 63 | ||
65 | connect( PushButton2, SIGNAL( clicked() ), this, SLOT(startScan() ) ); | 64 | connect( PushButton2, SIGNAL( clicked() ), this, SLOT(startScan() ) ); |
66 | connect( configApplyButton, SIGNAL(clicked() ), this, SLOT(applyConfigChanges() ) ); | 65 | connect( configApplyButton, SIGNAL(clicked() ), this, SLOT(applyConfigChanges() ) ); |
67 | 66 | ||
68 | connect( rfcommBindButton, SIGNAL( clicked() ), this, SLOT( rfcommDialog() ) ); | 67 | connect( rfcommBindButton, SIGNAL( clicked() ), this, SLOT( rfcommDialog() ) ); |
69 | // not good since lib is async | 68 | |
70 | // connect( devicesView, SIGNAL( expanded(QListViewItem*) ), | ||
71 | // this, SLOT( addServicesToDevice(QListViewItem*) ) ); | ||
72 | connect( devicesView, SIGNAL( clicked(QListViewItem*)), | 69 | connect( devicesView, SIGNAL( clicked(QListViewItem*)), |
73 | this, SLOT( startServiceActionClicked(QListViewItem*) ) ); | 70 | this, SLOT( startServiceActionClicked(QListViewItem*) ) ); |
74 | connect( devicesView, SIGNAL( rightButtonClicked(QListViewItem*,const QPoint&,int) ), | 71 | connect( devicesView, SIGNAL( rightButtonClicked(QListViewItem*,const QPoint&,int) ), |
75 | this, SLOT(startServiceActionHold(QListViewItem*,const QPoint&,int) ) ); | 72 | this, SLOT(startServiceActionHold(QListViewItem*,const QPoint&,int) ) ); |
76 | connect( m_localDevice , SIGNAL( foundServices(const QString&,Services::ValueList) ), | 73 | connect( m_localDevice , SIGNAL( foundServices(const QString&,Services::ValueList) ), |
77 | this, SLOT( addServicesToDevice(const QString&,Services::ValueList) ) ); | 74 | this, SLOT( addServicesToDevice(const QString&,Services::ValueList) ) ); |
78 | connect( m_localDevice, SIGNAL( available(const QString&,bool) ), | 75 | connect( m_localDevice, SIGNAL( available(const QString&,bool) ), |
79 | this, SLOT( deviceActive(const QString&,bool) ) ); | 76 | this, SLOT( deviceActive(const QString&,bool) ) ); |
80 | connect( m_localDevice, SIGNAL( connections(ConnectionState::ValueList) ), | 77 | connect( m_localDevice, SIGNAL( connections(ConnectionState::ValueList) ), |
81 | this, SLOT( addConnectedDevices(ConnectionState::ValueList) ) ); | 78 | this, SLOT( addConnectedDevices(ConnectionState::ValueList) ) ); |
82 | connect( m_localDevice, SIGNAL( signalStrength(const QString&,const QString&) ), | 79 | connect( m_localDevice, SIGNAL( signalStrength(const QString&,const QString&) ), |
83 | this, SLOT( addSignalStrength(const QString&,const QString&) ) ); | 80 | this, SLOT( addSignalStrength(const QString&,const QString&) ) ); |
84 | 81 | ||
85 | |||
86 | // let hold be rightButtonClicked() | 82 | // let hold be rightButtonClicked() |
87 | QPEApplication::setStylusOperation( devicesView->viewport(), QPEApplication::RightOnHold); | 83 | QPEApplication::setStylusOperation( devicesView->viewport(), QPEApplication::RightOnHold); |
88 | QPEApplication::setStylusOperation( connectionsView->viewport(), QPEApplication::RightOnHold); | 84 | QPEApplication::setStylusOperation( connectionsView->viewport(), QPEApplication::RightOnHold); |
89 | 85 | ||
90 | //Load all icons needed | 86 | //Load all icons needed |
91 | m_offPix = Resource::loadPixmap( "opietooth/notconnected" ); | 87 | m_offPix = Resource::loadPixmap( "opietooth/notconnected" ); |
92 | m_onPix = Resource::loadPixmap( "opietooth/connected" ); | 88 | m_onPix = Resource::loadPixmap( "opietooth/connected" ); |
93 | m_findPix = Resource::loadPixmap( "opietooth/find" ); | 89 | m_findPix = Resource::loadPixmap( "opietooth/find" ); |
94 | 90 | ||
95 | QPalette pal = this->palette(); | 91 | QPalette pal = this->palette(); |
96 | QColor col = pal.color( QPalette::Active, QColorGroup::Background ); | 92 | QColor col = pal.color( QPalette::Active, QColorGroup::Background ); |
97 | pal.setColor( QPalette::Active, QColorGroup::Button, col ); | 93 | pal.setColor( QPalette::Active, QColorGroup::Button, col ); |
98 | pal.setColor( QPalette::Inactive, QColorGroup::Button, col ); | 94 | pal.setColor( QPalette::Inactive, QColorGroup::Button, col ); |
99 | pal.setColor( QPalette::Normal, QColorGroup::Button, col ); | 95 | pal.setColor( QPalette::Normal, QColorGroup::Button, col ); |
100 | pal.setColor( QPalette::Disabled, QColorGroup::Button, col ); | 96 | pal.setColor( QPalette::Disabled, QColorGroup::Button, col ); |
101 | this->setPalette( pal ); | 97 | this->setPalette( pal ); |
102 | 98 | ||
103 | setCaption( tr( "Bluetooth Manager" ) ); | 99 | setCaption( tr( "Bluetooth Manager" ) ); |
104 | 100 | ||
105 | readConfig(); | 101 | readConfig(); |
106 | initGui(); | 102 | initGui(); |
107 | 103 | ||
108 | devicesView->setRootIsDecorated(true); | 104 | devicesView->setRootIsDecorated(true); |
109 | 105 | m_iconLoader = new BTIconLoader(); | |
110 | |||
111 | writeToHciConfig(); | 106 | writeToHciConfig(); |
112 | // search conncetions | ||
113 | addConnectedDevices(); | 107 | addConnectedDevices(); |
114 | addSignalStrength(); | ||
115 | m_iconLoader = new BTIconLoader(); | ||
116 | readSavedDevices(); | 108 | readSavedDevices(); |
109 | addServicesToDevices(); | ||
110 | QTimer::singleShot( 3000, this, SLOT( addServicesToDevices() ) ); | ||
117 | } | 111 | } |
118 | 112 | ||
119 | /** | 113 | /** |
120 | * Reads all options from the config file | 114 | * Reads all options from the config file |
121 | */ | 115 | */ |
122 | void BlueBase::readConfig() | 116 | void BlueBase::readConfig() |
123 | { | 117 | { |
124 | 118 | ||
125 | Config cfg( "bluetoothmanager" ); | 119 | Config cfg( "bluetoothmanager" ); |
126 | cfg.setGroup( "bluezsettings" ); | 120 | cfg.setGroup( "bluezsettings" ); |
127 | 121 | ||
128 | m_deviceName = cfg.readEntry( "name" , "No name" ); // name the device should identify with | 122 | m_deviceName = cfg.readEntry( "name" , "No name" ); // name the device should identify with |
129 | m_defaultPasskey = cfg.readEntryCrypt( "passkey" , "" ); // <- hmm, look up how good the trolls did that, maybe too weak | 123 | m_defaultPasskey = cfg.readEntryCrypt( "passkey" , "" ); // <- hmm, look up how good the trolls did that, maybe too weak |
130 | m_useEncryption = cfg.readBoolEntry( "useEncryption" , TRUE ); | 124 | m_useEncryption = cfg.readBoolEntry( "useEncryption" , TRUE ); |
131 | m_enableAuthentification = cfg.readBoolEntry( "enableAuthentification" , TRUE ); | 125 | m_enableAuthentification = cfg.readBoolEntry( "enableAuthentification" , TRUE ); |
132 | m_enablePagescan = cfg.readBoolEntry( "enablePagescan" , TRUE ); | 126 | m_enablePagescan = cfg.readBoolEntry( "enablePagescan" , TRUE ); |
133 | m_enableInquiryscan = cfg.readBoolEntry( "enableInquiryscan" , TRUE ); | 127 | m_enableInquiryscan = cfg.readBoolEntry( "enableInquiryscan" , TRUE ); |
134 | } | 128 | } |
135 | 129 | ||
136 | /** | 130 | /** |
137 | * Writes all options to the config file | 131 | * Writes all options to the config file |
138 | */ | 132 | */ |
139 | void BlueBase::writeConfig() | 133 | void BlueBase::writeConfig() |
140 | { | 134 | { |
@@ -150,63 +144,63 @@ void BlueBase::writeConfig() | |||
150 | cfg.writeEntry( "enableInquiryscan" , m_enableInquiryscan ); | 144 | cfg.writeEntry( "enableInquiryscan" , m_enableInquiryscan ); |
151 | 145 | ||
152 | writeToHciConfig(); | 146 | writeToHciConfig(); |
153 | } | 147 | } |
154 | 148 | ||
155 | /** | 149 | /** |
156 | * Modify the hcid.conf file to our needs | 150 | * Modify the hcid.conf file to our needs |
157 | */ | 151 | */ |
158 | void BlueBase::writeToHciConfig() | 152 | void BlueBase::writeToHciConfig() |
159 | { | 153 | { |
160 | owarn << "writeToHciConfig" << oendl; | 154 | owarn << "writeToHciConfig" << oendl; |
161 | HciConfWrapper hciconf ( "/etc/bluetooth/hcid.conf" ); | 155 | HciConfWrapper hciconf ( "/etc/bluetooth/hcid.conf" ); |
162 | hciconf.load(); | 156 | hciconf.load(); |
163 | hciconf.setPinHelper( QPEApplication::qpeDir() + "bin/bluepin" ); | 157 | hciconf.setPinHelper( QPEApplication::qpeDir() + "bin/bluepin" ); |
164 | hciconf.setName( m_deviceName ); | 158 | hciconf.setName( m_deviceName ); |
165 | hciconf.setEncrypt( m_useEncryption ); | 159 | hciconf.setEncrypt( m_useEncryption ); |
166 | hciconf.setAuth( m_enableAuthentification ); | 160 | hciconf.setAuth( m_enableAuthentification ); |
167 | hciconf.setPscan( m_enablePagescan ); | 161 | hciconf.setPscan( m_enablePagescan ); |
168 | hciconf.setIscan( m_enableInquiryscan ); | 162 | hciconf.setIscan( m_enableInquiryscan ); |
169 | hciconf.save(); | 163 | hciconf.save(); |
170 | } | 164 | } |
171 | 165 | ||
172 | 166 | ||
173 | /** | 167 | /** |
174 | * Read the list of allready known devices | 168 | * Read the list of already known devices |
175 | */ | 169 | */ |
176 | void BlueBase::readSavedDevices() | 170 | void BlueBase::readSavedDevices() |
177 | { | 171 | { |
178 | 172 | ||
179 | QValueList<RemoteDevice> loadedDevices; | 173 | QValueList<RemoteDevice> loadedDevices; |
180 | DeviceHandler handler; | 174 | DeviceHandler handler; |
181 | loadedDevices = handler.load(); | 175 | loadedDevices = handler.load(); |
182 | 176 | ||
183 | addSearchedDevices( loadedDevices ); | 177 | addSearchedDevices( loadedDevices ); |
184 | } | 178 | } |
185 | 179 | ||
186 | 180 | ||
187 | /** | 181 | /** |
188 | * Write the list of allready known devices | 182 | * Write the list of already known devices |
189 | */ | 183 | */ |
190 | void BlueBase::writeSavedDevices() | 184 | void BlueBase::writeSavedDevices() |
191 | { | 185 | { |
192 | QListViewItemIterator it( devicesView ); | 186 | QListViewItemIterator it( devicesView ); |
193 | BTListItem* item; | 187 | BTListItem* item; |
194 | BTDeviceItem* device; | 188 | BTDeviceItem* device; |
195 | RemoteDevice::ValueList list; | 189 | RemoteDevice::ValueList list; |
196 | for ( ; it.current(); ++it ) | 190 | for ( ; it.current(); ++it ) |
197 | { | 191 | { |
198 | item = (BTListItem*)it.current(); | 192 | item = (BTListItem*)it.current(); |
199 | if(item->typeId() != BTListItem::Device ) | 193 | if(item->typeId() != BTListItem::Device ) |
200 | continue; | 194 | continue; |
201 | device = (BTDeviceItem*)item; | 195 | device = (BTDeviceItem*)item; |
202 | 196 | ||
203 | list.append( device->remoteDevice() ); | 197 | list.append( device->remoteDevice() ); |
204 | } | 198 | } |
205 | /* | 199 | /* |
206 | * if not empty save the List through DeviceHandler | 200 | * if not empty save the List through DeviceHandler |
207 | */ | 201 | */ |
208 | if ( list.isEmpty() ) | 202 | if ( list.isEmpty() ) |
209 | return; | 203 | return; |
210 | DeviceHandler handler; | 204 | DeviceHandler handler; |
211 | handler.save( list ); | 205 | handler.save( list ); |
212 | } | 206 | } |
@@ -274,51 +268,48 @@ void BlueBase::rfcommDialog() | |||
274 | } | 268 | } |
275 | } | 269 | } |
276 | 270 | ||
277 | /** | 271 | /** |
278 | * Add fresh found devices from scan dialog to the listing | 272 | * Add fresh found devices from scan dialog to the listing |
279 | * | 273 | * |
280 | */ | 274 | */ |
281 | void BlueBase::addSearchedDevices( const QValueList<RemoteDevice> &newDevices ) | 275 | void BlueBase::addSearchedDevices( const QValueList<RemoteDevice> &newDevices ) |
282 | { | 276 | { |
283 | BTDeviceItem * deviceItem; | 277 | BTDeviceItem * deviceItem; |
284 | QValueList<RemoteDevice>::ConstIterator it; | 278 | QValueList<RemoteDevice>::ConstIterator it; |
285 | 279 | ||
286 | for( it = newDevices.begin(); it != newDevices.end() ; ++it ) | 280 | for( it = newDevices.begin(); it != newDevices.end() ; ++it ) |
287 | { | 281 | { |
288 | 282 | ||
289 | if (find( (*it) )) // is already inserted | 283 | if (find( (*it) )) // is already inserted |
290 | continue; | 284 | continue; |
291 | 285 | ||
292 | deviceItem = new BTDeviceItem( devicesView , (*it) ); | 286 | deviceItem = new BTDeviceItem( devicesView , (*it) ); |
293 | deviceItem->setPixmap( 1, m_findPix ); | 287 | deviceItem->setPixmap( 1, m_findPix ); |
294 | deviceItem->setExpandable ( true ); | 288 | deviceItem->setExpandable ( true ); |
295 | 289 | ||
296 | // look if device is avail. atm, async | 290 | // look if device is avail. atm, async |
297 | deviceActive( (*it) ); | 291 | deviceActive( (*it) ); |
298 | |||
299 | // ggf auch hier? | ||
300 | addServicesToDevice( deviceItem ); | ||
301 | } | 292 | } |
302 | } | 293 | } |
303 | 294 | ||
304 | 295 | ||
305 | /** | 296 | /** |
306 | * Action that is toggled on entrys on click | 297 | * Action that is toggled on entrys on click |
307 | */ | 298 | */ |
308 | void BlueBase::startServiceActionClicked( QListViewItem */*item*/ ) | 299 | void BlueBase::startServiceActionClicked( QListViewItem */*item*/ ) |
309 | {} | 300 | {} |
310 | 301 | ||
311 | 302 | ||
312 | /** | 303 | /** |
313 | * Action that are toggled on hold (mostly QPopups i guess) | 304 | * Action that are toggled on hold (mostly QPopups i guess) |
314 | */ | 305 | */ |
315 | void BlueBase::startServiceActionHold( QListViewItem * item, const QPoint & point, int /*column*/ ) | 306 | void BlueBase::startServiceActionHold( QListViewItem * item, const QPoint & point, int /*column*/ ) |
316 | { | 307 | { |
317 | if (!item ) | 308 | if (!item ) |
318 | return; | 309 | return; |
319 | 310 | ||
320 | QPopupMenu *menu = new QPopupMenu(); | 311 | QPopupMenu *menu = new QPopupMenu(); |
321 | 312 | ||
322 | if ( static_cast<BTListItem*>( item )->type() == "device") | 313 | if ( static_cast<BTListItem*>( item )->type() == "device") |
323 | { | 314 | { |
324 | QPopupMenu *groups = new QPopupMenu(); | 315 | QPopupMenu *groups = new QPopupMenu(); |
@@ -377,72 +368,81 @@ void BlueBase::startServiceActionHold( QListViewItem * item, const QPoint & poin | |||
377 | 368 | ||
378 | if ( popup == 0l ) | 369 | if ( popup == 0l ) |
379 | { | 370 | { |
380 | owarn << "factory returned 0l" << oendl; | 371 | owarn << "factory returned 0l" << oendl; |
381 | popup = new QPopupMenu(); | 372 | popup = new QPopupMenu(); |
382 | } | 373 | } |
383 | int test1 = popup->insertItem( tr("Test1:"), 2); | 374 | int test1 = popup->insertItem( tr("Test1:"), 2); |
384 | 375 | ||
385 | int ret = popup->exec( point ); | 376 | int ret = popup->exec( point ); |
386 | owarn << "returned from exec() " << oendl; | 377 | owarn << "returned from exec() " << oendl; |
387 | if ( ret == -1 ) | 378 | if ( ret == -1 ) |
388 | { | 379 | { |
389 | ; | 380 | ; |
390 | } | 381 | } |
391 | else if ( ret == test1 ) | 382 | else if ( ret == test1 ) |
392 | { | 383 | { |
393 | ; | 384 | ; |
394 | } | 385 | } |
395 | delete popup; | 386 | delete popup; |
396 | } | 387 | } |
397 | delete menu; | 388 | delete menu; |
398 | } | 389 | } |
399 | 390 | ||
400 | 391 | ||
392 | void BlueBase::addServicesToDevices() | ||
393 | { | ||
394 | odebug << "BlueBase::addServicesToDevices()" << oendl; | ||
395 | BTDeviceItem* item = (BTDeviceItem*) devicesView->firstChild(); | ||
396 | while ( item ) | ||
397 | { | ||
398 | addServicesToDevice( item ); | ||
399 | item = (BTDeviceItem*) static_cast<QListViewItem*>( item )->nextSibling(); | ||
400 | } | ||
401 | } | ||
402 | |||
401 | /** | 403 | /** |
402 | * Search and display avail. services for a device (on expand from device listing) | 404 | * Search and display avail. services for a device (on expand from device listing) |
403 | * @param item the service item returned | 405 | * @param item the service item returned |
404 | */ | 406 | */ |
405 | void BlueBase::addServicesToDevice( BTDeviceItem * item ) | 407 | void BlueBase::addServicesToDevice( BTDeviceItem * item ) |
406 | { | 408 | { |
407 | odebug << "addServicesToDevice" << oendl; | 409 | odebug << "BlueBase::addServicesToDevice" << oendl; |
408 | // row of mac adress text(3) | 410 | // row of mac adress text(3) |
409 | RemoteDevice device = item->remoteDevice(); | 411 | RemoteDevice device = item->remoteDevice(); |
410 | m_deviceList.insert( item->mac() , item ); | 412 | m_deviceList.insert( item->mac() , item ); |
411 | // and some time later I get a signal foundServices( const QString& device, Services::ValueList ); back | 413 | // and some time later I get a signal foundServices( const QString& device, Services::ValueList ); back |
412 | m_localDevice->searchServices( device ); | 414 | m_localDevice->searchServices( device ); |
413 | } | 415 | } |
414 | 416 | ||
415 | 417 | ||
416 | /** | 418 | /** |
417 | * Overloaded. This one it the one that is | ||
418 | ted to the foundServices signal | ||
419 | * @param device the mac address of the remote device | 419 | * @param device the mac address of the remote device |
420 | * @param servicesList the list with the service the device has. | 420 | * @param servicesList the list with the service the device has. |
421 | */ | 421 | */ |
422 | void BlueBase::addServicesToDevice( const QString& device, Services::ValueList servicesList ) | 422 | void BlueBase::addServicesToDevice( const QString& device, Services::ValueList servicesList ) |
423 | { | 423 | { |
424 | odebug << "fill services list" << oendl; | 424 | odebug << "BlueBase::fill services list" << oendl; |
425 | 425 | ||
426 | QMap<QString,BTDeviceItem*>::Iterator it; | 426 | QMap<QString,BTDeviceItem*>::Iterator it; |
427 | BTDeviceItem* deviceItem = 0; | 427 | BTDeviceItem* deviceItem = 0; |
428 | 428 | ||
429 | // get the right devices which requested the search | 429 | // get the right devices which requested the search |
430 | it = m_deviceList.find( device ); | 430 | it = m_deviceList.find( device ); |
431 | if( it == m_deviceList.end() ) | 431 | if( it == m_deviceList.end() ) |
432 | return; | 432 | return; |
433 | deviceItem = it.data(); | 433 | deviceItem = it.data(); |
434 | 434 | ||
435 | // remove previous entries | 435 | // remove previous entries |
436 | QList<QListViewItem> tempList; | 436 | QList<QListViewItem> tempList; |
437 | tempList.setAutoDelete( true ); | 437 | tempList.setAutoDelete( true ); |
438 | QListViewItem * child = deviceItem->firstChild(); | 438 | QListViewItem * child = deviceItem->firstChild(); |
439 | while( child ) | 439 | while( child ) |
440 | { | 440 | { |
441 | tempList.append( child ); | 441 | tempList.append( child ); |
442 | child = child->nextSibling(); | 442 | child = child->nextSibling(); |
443 | } | 443 | } |
444 | tempList.clear(); | 444 | tempList.clear(); |
445 | 445 | ||
446 | QValueList<OpieTooth::Services>::Iterator it2; | 446 | QValueList<OpieTooth::Services>::Iterator it2; |
447 | BTServiceItem* serviceItem; | 447 | BTServiceItem* serviceItem; |
448 | 448 | ||
@@ -455,84 +455,81 @@ void BlueBase::addServicesToDevice( const QString& device, Services::ValueList s | |||
455 | for( it2 = servicesList.begin(); it2 != servicesList.end(); ++it2 ) | 455 | for( it2 = servicesList.begin(); it2 != servicesList.end(); ++it2 ) |
456 | { | 456 | { |
457 | serviceItem = new BTServiceItem( deviceItem, (*it2) ); | 457 | serviceItem = new BTServiceItem( deviceItem, (*it2) ); |
458 | list = (*it2).classIdList(); | 458 | list = (*it2).classIdList(); |
459 | classIt = list.begin(); | 459 | classIt = list.begin(); |
460 | int classId=0; | 460 | int classId=0; |
461 | if ( classIt != list.end() ) | 461 | if ( classIt != list.end() ) |
462 | { | 462 | { |
463 | classId = classIt.key(); | 463 | classId = classIt.key(); |
464 | } | 464 | } |
465 | 465 | ||
466 | serviceItem->setPixmap( 0, m_iconLoader->serviceIcon( classId ) ); | 466 | serviceItem->setPixmap( 0, m_iconLoader->serviceIcon( classId ) ); |
467 | } | 467 | } |
468 | } | 468 | } |
469 | else | 469 | else |
470 | { | 470 | { |
471 | Services s1; | 471 | Services s1; |
472 | s1.setServiceName( tr("no services found") ); | 472 | s1.setServiceName( tr("no services found") ); |
473 | serviceItem = new BTServiceItem( deviceItem, s1 ); | 473 | serviceItem = new BTServiceItem( deviceItem, s1 ); |
474 | } | 474 | } |
475 | // now remove them from the list | 475 | // now remove them from the list |
476 | m_deviceList.remove( it ); | 476 | m_deviceList.remove( it ); |
477 | } | 477 | } |
478 | 478 | ||
479 | |||
480 | |||
481 | |||
482 | |||
483 | void BlueBase::addSignalStrength() | 479 | void BlueBase::addSignalStrength() |
484 | { | 480 | { |
485 | 481 | ||
486 | QListViewItemIterator it( connectionsView ); | 482 | QListViewItemIterator it( connectionsView ); |
487 | for ( ; it.current(); ++it ) | 483 | for ( ; it.current(); ++it ) |
488 | { | 484 | { |
489 | m_localDevice->signalStrength( ((BTConnectionItem*)it.current() )->connection().mac() ); | 485 | m_localDevice->signalStrength( ((BTConnectionItem*)it.current() )->connection().mac() ); |
490 | } | 486 | } |
491 | 487 | ||
492 | QTimer::singleShot( 5000, this, SLOT( addSignalStrength() ) ); | 488 | QTimer::singleShot( 5000, this, SLOT( addSignalStrength() ) ); |
493 | } | 489 | } |
494 | 490 | ||
495 | void BlueBase::addSignalStrength( const QString& mac, const QString& strength ) | 491 | void BlueBase::addSignalStrength( const QString& mac, const QString& strength ) |
496 | { | 492 | { |
497 | 493 | ||
498 | QListViewItemIterator it( connectionsView ); | 494 | QListViewItemIterator it( connectionsView ); |
499 | for ( ; it.current(); ++it ) | 495 | for ( ; it.current(); ++it ) |
500 | { | 496 | { |
501 | if( ((BTConnectionItem*)it.current())->connection().mac() == mac ) | 497 | if( ((BTConnectionItem*)it.current())->connection().mac() == mac ) |
502 | { | 498 | { |
503 | ((BTConnectionItem*)it.current() )->setSignalStrength( strength ); | 499 | ((BTConnectionItem*)it.current() )->setSignalStrength( strength ); |
504 | } | 500 | } |
505 | } | 501 | } |
506 | } | 502 | } |
507 | 503 | ||
508 | /** | 504 | /** |
509 | * Add the existing connections (pairs) to the connections tab. | 505 | * Add the existing connections (pairs) to the connections tab. |
510 | * This one triggers the search | 506 | * This one triggers the search |
511 | */ | 507 | */ |
512 | void BlueBase::addConnectedDevices() | 508 | void BlueBase::addConnectedDevices() |
513 | { | 509 | { |
514 | m_localDevice->searchConnections(); | 510 | m_localDevice->searchConnections(); |
511 | QTimer::singleShot( 5000, this, SLOT( addSignalStrength() ) ); | ||
515 | } | 512 | } |
516 | 513 | ||
517 | /** | 514 | /** |
518 | * This adds the found connections to the connection tab. | 515 | * This adds the found connections to the connection tab. |
519 | * @param connectionList the ValueList with all current connections | 516 | * @param connectionList the ValueList with all current connections |
520 | */ | 517 | */ |
521 | void BlueBase::addConnectedDevices( ConnectionState::ValueList connectionList ) | 518 | void BlueBase::addConnectedDevices( ConnectionState::ValueList connectionList ) |
522 | { | 519 | { |
523 | 520 | ||
524 | QValueList<OpieTooth::ConnectionState>::Iterator it; | 521 | QValueList<OpieTooth::ConnectionState>::Iterator it; |
525 | BTConnectionItem * connectionItem; | 522 | BTConnectionItem * connectionItem; |
526 | 523 | ||
527 | if ( !connectionList.isEmpty() ) | 524 | if ( !connectionList.isEmpty() ) |
528 | { | 525 | { |
529 | 526 | ||
530 | for (it = connectionList.begin(); it != connectionList.end(); ++it) | 527 | for (it = connectionList.begin(); it != connectionList.end(); ++it) |
531 | { | 528 | { |
532 | 529 | ||
533 | QListViewItemIterator it2( connectionsView ); | 530 | QListViewItemIterator it2( connectionsView ); |
534 | bool found = false; | 531 | bool found = false; |
535 | for ( ; it2.current(); ++it2 ) | 532 | for ( ; it2.current(); ++it2 ) |
536 | { | 533 | { |
537 | if( ( (BTConnectionItem*)it2.current())->connection().mac() == (*it).mac() ) | 534 | if( ( (BTConnectionItem*)it2.current())->connection().mac() == (*it).mac() ) |
538 | { | 535 | { |
@@ -594,49 +591,48 @@ void BlueBase::deviceActive( const RemoteDevice &device ) | |||
594 | { | 591 | { |
595 | // search by mac, async, gets a signal back | 592 | // search by mac, async, gets a signal back |
596 | // We should have a BTDeviceItem there or where does it get added to the map -zecke | 593 | // We should have a BTDeviceItem there or where does it get added to the map -zecke |
597 | m_localDevice->isAvailable( device.mac() ); | 594 | m_localDevice->isAvailable( device.mac() ); |
598 | } | 595 | } |
599 | 596 | ||
600 | 597 | ||
601 | /** | 598 | /** |
602 | * The signal catcher. Set the avail. status on device. | 599 | * The signal catcher. Set the avail. status on device. |
603 | * @param device - the mac address | 600 | * @param device - the mac address |
604 | * @param connected - if it is avail. or not | 601 | * @param connected - if it is avail. or not |
605 | */ | 602 | */ |
606 | void BlueBase::deviceActive( const QString& device, bool connected ) | 603 | void BlueBase::deviceActive( const QString& device, bool connected ) |
607 | { | 604 | { |
608 | odebug << "deviceActive slot" << oendl; | 605 | odebug << "deviceActive slot" << oendl; |
609 | 606 | ||
610 | QMap<QString,BTDeviceItem*>::Iterator it; | 607 | QMap<QString,BTDeviceItem*>::Iterator it; |
611 | 608 | ||
612 | it = m_deviceList.find( device ); | 609 | it = m_deviceList.find( device ); |
613 | if( it == m_deviceList.end() ) | 610 | if( it == m_deviceList.end() ) |
614 | return; | 611 | return; |
615 | 612 | ||
616 | BTDeviceItem* deviceItem = it.data(); | 613 | BTDeviceItem* deviceItem = it.data(); |
617 | 614 | ||
618 | |||
619 | if ( connected ) | 615 | if ( connected ) |
620 | { | 616 | { |
621 | deviceItem->setPixmap( 1, m_onPix ); | 617 | deviceItem->setPixmap( 1, m_onPix ); |
622 | } | 618 | } |
623 | else | 619 | else |
624 | { | 620 | { |
625 | deviceItem->setPixmap( 1, m_offPix ); | 621 | deviceItem->setPixmap( 1, m_offPix ); |
626 | } | 622 | } |
627 | m_deviceList.remove( it ); | 623 | m_deviceList.remove( it ); |
628 | } | 624 | } |
629 | 625 | ||
630 | 626 | ||
631 | /** | 627 | /** |
632 | * Open the "scan for devices" dialog | 628 | * Open the "scan for devices" dialog |
633 | */ | 629 | */ |
634 | void BlueBase::startScan() | 630 | void BlueBase::startScan() |
635 | { | 631 | { |
636 | ScanDialog *scan = new ScanDialog( this, "ScanDialog", | 632 | ScanDialog *scan = new ScanDialog( this, "ScanDialog", |
637 | true, WDestructiveClose ); | 633 | true, WDestructiveClose ); |
638 | QObject::connect( scan, SIGNAL( selectedDevices(const QValueList<RemoteDevice>&) ), | 634 | QObject::connect( scan, SIGNAL( selectedDevices(const QValueList<RemoteDevice>&) ), |
639 | this, SLOT( addSearchedDevices(const QValueList<RemoteDevice>&) ) ); | 635 | this, SLOT( addSearchedDevices(const QValueList<RemoteDevice>&) ) ); |
640 | 636 | ||
641 | QPEApplication::showDialog( scan ); | 637 | QPEApplication::showDialog( scan ); |
642 | } | 638 | } |
diff --git a/noncore/net/opietooth/manager/bluebase.h b/noncore/net/opietooth/manager/bluebase.h index a8ab3db..48883d2 100644 --- a/noncore/net/opietooth/manager/bluebase.h +++ b/noncore/net/opietooth/manager/bluebase.h | |||
@@ -19,83 +19,84 @@ | |||
19 | #include "bticonloader.h" | 19 | #include "bticonloader.h" |
20 | 20 | ||
21 | #include <remotedevice.h> | 21 | #include <remotedevice.h> |
22 | #include <manager.h> | 22 | #include <manager.h> |
23 | 23 | ||
24 | class QVBox; | 24 | class QVBox; |
25 | class QHBoxLayout; | 25 | class QHBoxLayout; |
26 | class QGridLayout; | 26 | class QGridLayout; |
27 | class QFrame; | 27 | class QFrame; |
28 | class QLabel; | 28 | class QLabel; |
29 | class QPushButton; | 29 | class QPushButton; |
30 | class QTabWidget; | 30 | class QTabWidget; |
31 | class QCheckBox; | 31 | class QCheckBox; |
32 | class BTConnectionItem; | 32 | class BTConnectionItem; |
33 | 33 | ||
34 | 34 | ||
35 | namespace OpieTooth { | 35 | namespace OpieTooth { |
36 | 36 | ||
37 | class BlueBase : public BluetoothBase { | 37 | class BlueBase : public BluetoothBase { |
38 | Q_OBJECT | 38 | Q_OBJECT |
39 | 39 | ||
40 | public: | 40 | public: |
41 | BlueBase( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); | 41 | BlueBase( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); |
42 | ~BlueBase(); | 42 | ~BlueBase(); |
43 | 43 | ||
44 | static QString appName() { return QString::fromLatin1("bluetooth-manager"); } | 44 | static QString appName() { return QString::fromLatin1("bluetooth-manager"); } |
45 | 45 | ||
46 | protected: | 46 | protected: |
47 | 47 | ||
48 | 48 | ||
49 | private slots: | 49 | private slots: |
50 | void startScan(); | 50 | void startScan(); |
51 | 51 | ||
52 | 52 | ||
53 | private: | 53 | private: |
54 | bool find( const RemoteDevice& device ); | 54 | bool find( const RemoteDevice& device ); |
55 | void readConfig(); | 55 | void readConfig(); |
56 | void writeConfig(); | 56 | void writeConfig(); |
57 | void readSavedDevices(); | 57 | void readSavedDevices(); |
58 | void writeSavedDevices(); | 58 | void writeSavedDevices(); |
59 | void writeToHciConfig(); | 59 | void writeToHciConfig(); |
60 | QString status()const; | 60 | QString status()const; |
61 | void initGui(); | 61 | void initGui(); |
62 | void setInfo(); | 62 | void setInfo(); |
63 | 63 | ||
64 | PopupHelper m_popHelper; | 64 | PopupHelper m_popHelper; |
65 | Manager *m_localDevice; | 65 | Manager *m_localDevice; |
66 | QMap<QString,BTDeviceItem*> m_deviceList; | 66 | QMap<QString,BTDeviceItem*> m_deviceList; |
67 | 67 | ||
68 | void deviceActive( const RemoteDevice &device ); | 68 | void deviceActive( const RemoteDevice &device ); |
69 | 69 | ||
70 | QString m_deviceName; | 70 | QString m_deviceName; |
71 | QString m_defaultPasskey; | 71 | QString m_defaultPasskey; |
72 | bool m_useEncryption; | 72 | bool m_useEncryption; |
73 | bool m_enableAuthentification; | 73 | bool m_enableAuthentification; |
74 | bool m_enablePagescan; | 74 | bool m_enablePagescan; |
75 | bool m_enableInquiryscan; | 75 | bool m_enableInquiryscan; |
76 | 76 | ||
77 | QPixmap m_offPix; | 77 | QPixmap m_offPix; |
78 | QPixmap m_onPix; | 78 | QPixmap m_onPix; |
79 | QPixmap m_findPix; | 79 | QPixmap m_findPix; |
80 | 80 | ||
81 | BTIconLoader *m_iconLoader; | 81 | BTIconLoader *m_iconLoader; |
82 | 82 | ||
83 | private slots: | 83 | private slots: |
84 | void addSearchedDevices( const QValueList<RemoteDevice> &newDevices ); | 84 | void addSearchedDevices( const QValueList<RemoteDevice> &newDevices ); |
85 | void addServicesToDevices(); | ||
85 | void addServicesToDevice( BTDeviceItem *item ); | 86 | void addServicesToDevice( BTDeviceItem *item ); |
86 | void addServicesToDevice( const QString& device, Services::ValueList ); | 87 | void addServicesToDevice( const QString& device, Services::ValueList ); |
87 | void addConnectedDevices(); | 88 | void addConnectedDevices(); |
88 | void addConnectedDevices( ConnectionState::ValueList ); | 89 | void addConnectedDevices( ConnectionState::ValueList ); |
89 | void startServiceActionClicked( QListViewItem *item ); | 90 | void startServiceActionClicked( QListViewItem *item ); |
90 | void startServiceActionHold( QListViewItem *, const QPoint &, int ); | 91 | void startServiceActionHold( QListViewItem *, const QPoint &, int ); |
91 | void deviceActive( const QString& mac, bool connected ); | 92 | void deviceActive( const QString& mac, bool connected ); |
92 | void applyConfigChanges(); | 93 | void applyConfigChanges(); |
93 | void addSignalStrength(); | 94 | void addSignalStrength(); |
94 | void addSignalStrength( const QString& mac, const QString& strengh ); | 95 | void addSignalStrength( const QString& mac, const QString& strengh ); |
95 | void rfcommDialog(); | 96 | void rfcommDialog(); |
96 | 97 | ||
97 | }; | 98 | }; |
98 | 99 | ||
99 | } | 100 | } |
100 | 101 | ||
101 | #endif | 102 | #endif |