author | harlekin <harlekin> | 2003-03-06 19:45:59 (UTC) |
---|---|---|
committer | harlekin <harlekin> | 2003-03-06 19:45:59 (UTC) |
commit | 56eadb23f09da3823da787d98c0f2478620a15b3 (patch) (unidiff) | |
tree | f04fd0e01ad6b85c55fbf8d51dc2cb359b6d113c | |
parent | de5ee3b655897d8d6b8b78fee3cb2b63f9a9bf8a (diff) | |
download | opie-56eadb23f09da3823da787d98c0f2478620a15b3.zip opie-56eadb23f09da3823da787d98c0f2478620a15b3.tar.gz opie-56eadb23f09da3823da787d98c0f2478620a15b3.tar.bz2 |
make recan services and delete item work
-rw-r--r-- | noncore/net/opietooth/manager/bluebase.cpp | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/noncore/net/opietooth/manager/bluebase.cpp b/noncore/net/opietooth/manager/bluebase.cpp index b31e14f..d3abb54 100644 --- a/noncore/net/opietooth/manager/bluebase.cpp +++ b/noncore/net/opietooth/manager/bluebase.cpp | |||
@@ -204,205 +204,197 @@ void BlueBase::initGui() { | |||
204 | pagescanCheckBox->setChecked( m_enablePagescan ); | 204 | pagescanCheckBox->setChecked( m_enablePagescan ); |
205 | inquiryscanCheckBox->setChecked( m_enableInquiryscan ); | 205 | inquiryscanCheckBox->setChecked( m_enableInquiryscan ); |
206 | deviceNameLine->setText( m_deviceName ); | 206 | deviceNameLine->setText( m_deviceName ); |
207 | passkeyLine->setText( m_defaultPasskey ); | 207 | passkeyLine->setText( m_defaultPasskey ); |
208 | // set info tab | 208 | // set info tab |
209 | setInfo(); | 209 | setInfo(); |
210 | } | 210 | } |
211 | 211 | ||
212 | 212 | ||
213 | /** | 213 | /** |
214 | * Get the status informations and returns it | 214 | * Get the status informations and returns it |
215 | * @return QString the status informations gathered | 215 | * @return QString the status informations gathered |
216 | */ | 216 | */ |
217 | QString BlueBase::status()const{ | 217 | QString BlueBase::status()const{ |
218 | QString infoString = tr( "<b>Device name : </b> Ipaq" ); | 218 | QString infoString = tr( "<b>Device name : </b> Ipaq" ); |
219 | infoString += QString( "<br><b>" + tr( "MAC adress: " ) +"</b> No idea" ); | 219 | infoString += QString( "<br><b>" + tr( "MAC adress: " ) +"</b> No idea" ); |
220 | infoString += QString( "<br><b>" + tr( "Class" ) + "</b> PDA" ); | 220 | infoString += QString( "<br><b>" + tr( "Class" ) + "</b> PDA" ); |
221 | 221 | ||
222 | return (infoString); | 222 | return (infoString); |
223 | } | 223 | } |
224 | 224 | ||
225 | 225 | ||
226 | /** | 226 | /** |
227 | * Read the current values from the gui and invoke writeConfig() | 227 | * Read the current values from the gui and invoke writeConfig() |
228 | */ | 228 | */ |
229 | void BlueBase::applyConfigChanges() { | 229 | void BlueBase::applyConfigChanges() { |
230 | m_deviceName = deviceNameLine->text(); | 230 | m_deviceName = deviceNameLine->text(); |
231 | m_defaultPasskey = passkeyLine->text(); | 231 | m_defaultPasskey = passkeyLine->text(); |
232 | m_useEncryption = cryptCheckBox->isChecked(); | 232 | m_useEncryption = cryptCheckBox->isChecked(); |
233 | m_enableAuthentification = authCheckBox->isChecked(); | 233 | m_enableAuthentification = authCheckBox->isChecked(); |
234 | m_enablePagescan = pagescanCheckBox->isChecked(); | 234 | m_enablePagescan = pagescanCheckBox->isChecked(); |
235 | m_enableInquiryscan = inquiryscanCheckBox->isChecked(); | 235 | m_enableInquiryscan = inquiryscanCheckBox->isChecked(); |
236 | 236 | ||
237 | writeConfig(); | 237 | writeConfig(); |
238 | 238 | ||
239 | QMessageBox::information( this, tr("Test") , tr("Changes were applied.") ); | 239 | QMessageBox::information( this, tr("Test") , tr("Changes were applied.") ); |
240 | } | 240 | } |
241 | 241 | ||
242 | /** | 242 | /** |
243 | * Add fresh found devices from scan dialog to the listing | 243 | * Add fresh found devices from scan dialog to the listing |
244 | * | 244 | * |
245 | */ | 245 | */ |
246 | void BlueBase::addSearchedDevices( const QValueList<RemoteDevice> &newDevices ) { | 246 | void BlueBase::addSearchedDevices( const QValueList<RemoteDevice> &newDevices ) { |
247 | BTDeviceItem * deviceItem; | 247 | BTDeviceItem * deviceItem; |
248 | QValueList<RemoteDevice>::ConstIterator it; | 248 | QValueList<RemoteDevice>::ConstIterator it; |
249 | 249 | ||
250 | for( it = newDevices.begin(); it != newDevices.end() ; ++it ) { | 250 | for( it = newDevices.begin(); it != newDevices.end() ; ++it ) { |
251 | 251 | ||
252 | if (find( (*it) )) // is already inserted | 252 | if (find( (*it) )) // is already inserted |
253 | continue; | 253 | continue; |
254 | 254 | ||
255 | deviceItem = new BTDeviceItem( ListView2 , (*it) ); | 255 | deviceItem = new BTDeviceItem( ListView2 , (*it) ); |
256 | deviceItem->setPixmap( 1, m_findPix ); | 256 | deviceItem->setPixmap( 1, m_findPix ); |
257 | deviceItem->setExpandable ( true ); | 257 | deviceItem->setExpandable ( true ); |
258 | 258 | ||
259 | // look if device is avail. atm, async | 259 | // look if device is avail. atm, async |
260 | deviceActive( (*it) ); | 260 | deviceActive( (*it) ); |
261 | 261 | ||
262 | // ggf auch hier? | 262 | // ggf auch hier? |
263 | addServicesToDevice( deviceItem ); | 263 | addServicesToDevice( deviceItem ); |
264 | } | 264 | } |
265 | } | 265 | } |
266 | 266 | ||
267 | 267 | ||
268 | /** | 268 | /** |
269 | * Action that is toggled on entrys on click | 269 | * Action that is toggled on entrys on click |
270 | */ | 270 | */ |
271 | void BlueBase::startServiceActionClicked( QListViewItem */*item*/ ) { | 271 | void BlueBase::startServiceActionClicked( QListViewItem */*item*/ ) { |
272 | } | 272 | } |
273 | 273 | ||
274 | 274 | ||
275 | /** | 275 | /** |
276 | * Action that are toggled on hold (mostly QPopups i guess) | 276 | * Action that are toggled on hold (mostly QPopups i guess) |
277 | */ | 277 | */ |
278 | void BlueBase::startServiceActionHold( QListViewItem * item, const QPoint & point, int /*column*/ ) { | 278 | void BlueBase::startServiceActionHold( QListViewItem * item, const QPoint & point, int /*column*/ ) { |
279 | if (!item ) | 279 | if (!item ) |
280 | return; | 280 | return; |
281 | 281 | ||
282 | QPopupMenu *menu = new QPopupMenu(); | 282 | QPopupMenu *menu = new QPopupMenu(); |
283 | int ret=0; | 283 | int ret=0; |
284 | 284 | ||
285 | if ( ((BTListItem*)item)->type() == "device") { | 285 | if ( ((BTListItem*)item)->type() == "device") { |
286 | 286 | ||
287 | QPopupMenu *groups = new QPopupMenu(); | 287 | QPopupMenu *groups = new QPopupMenu(); |
288 | 288 | ||
289 | menu->insertItem( ((BTDeviceItem*)item)->name(),0 ); | 289 | menu->insertItem( ((BTDeviceItem*)item)->name(),0 ); |
290 | menu->insertSeparator(1); | 290 | menu->insertSeparator(1); |
291 | menu->insertItem( tr("rescan sevices"), 2); | 291 | menu->insertItem( tr("rescan sevices"), 2); |
292 | menu->insertItem( tr("to group"), groups , 3); | 292 | menu->insertItem( tr("to group"), groups , 3); |
293 | menu->insertItem( tr("delete"), 4); | 293 | menu->insertItem( tr("delete"), 4); |
294 | 294 | ||
295 | ret = menu->exec( point , 0); | 295 | ret = menu->exec( point , 0); |
296 | 296 | ||
297 | switch(ret) { | 297 | switch(ret) { |
298 | case -1: | 298 | case -1: |
299 | break; | 299 | break; |
300 | case 0: | 300 | case 2: |
301 | addServicesToDevice( (BTDeviceItem*)item ); | 301 | addServicesToDevice( (BTDeviceItem*)item ); |
302 | break; | 302 | break; |
303 | case 1: | ||
304 | 303 | ||
305 | break; | 304 | case 4: |
306 | |||
307 | // NO need to, since hcid does that on the fly | ||
308 | // case 2: | ||
309 | // make connection | ||
310 | //m_localDevice->connectTo( ((BTDeviceItem*)item)->mac() ); | ||
311 | //break; | ||
312 | case 3: | ||
313 | // deletes childs too | 305 | // deletes childs too |
314 | delete item; | 306 | delete item; |
315 | break; | 307 | break; |
316 | } | 308 | } |
317 | delete groups; | 309 | delete groups; |
318 | 310 | ||
319 | } | 311 | } |
320 | 312 | ||
321 | /* | 313 | /* |
322 | * We got service sensitive PopupMenus in our factory | 314 | * We got service sensitive PopupMenus in our factory |
323 | * We will create one through the factory and will insert | 315 | * We will create one through the factory and will insert |
324 | * our Separator + ShowInfo into the menu or create a new | 316 | * our Separator + ShowInfo into the menu or create a new |
325 | * one if the factory returns 0 | 317 | * one if the factory returns 0 |
326 | * PopupMenu deletion is kind of weird. | 318 | * PopupMenu deletion is kind of weird. |
327 | * If escaped( -1 ) or any of our items were chosen we'll | 319 | * If escaped( -1 ) or any of our items were chosen we'll |
328 | * delete the PopupMenu otherwise it's the responsibility of | 320 | * delete the PopupMenu otherwise it's the responsibility of |
329 | * the PopupMenu to delete itself | 321 | * the PopupMenu to delete itself |
330 | * | 322 | * |
331 | */ | 323 | */ |
332 | else if ( ((BTListItem*)item)->type() == "service") { | 324 | else if ( ((BTListItem*)item)->type() == "service") { |
333 | BTServiceItem* service = (BTServiceItem*)item; | 325 | BTServiceItem* service = (BTServiceItem*)item; |
334 | QMap<int, QString> list = service->services().classIdList(); | 326 | QMap<int, QString> list = service->services().classIdList(); |
335 | QMap<int, QString>::Iterator it = list.begin(); | 327 | QMap<int, QString>::Iterator it = list.begin(); |
336 | QPopupMenu *popup =0l; | 328 | QPopupMenu *popup =0l; |
337 | if ( it != list.end() ) { | 329 | if ( it != list.end() ) { |
338 | qWarning("Searching id %d %s", it.key(), it.data().latin1() ); | 330 | qWarning("Searching id %d %s", it.key(), it.data().latin1() ); |
339 | popup = m_popHelper.find( it.key() /*1*/, | 331 | popup = m_popHelper.find( it.key() /*1*/, |
340 | service->services(), | 332 | service->services(), |
341 | (BTDeviceItem*)service->parent() ); | 333 | (BTDeviceItem*)service->parent() ); |
342 | }else { | 334 | }else { |
343 | qWarning("Empty"); | 335 | qWarning("Empty"); |
344 | } | 336 | } |
345 | 337 | ||
346 | if ( popup == 0l ) { | 338 | if ( popup == 0l ) { |
347 | qWarning("factory returned 0l"); | 339 | qWarning("factory returned 0l"); |
348 | popup = new QPopupMenu(); | 340 | popup = new QPopupMenu(); |
349 | } | 341 | } |
350 | int test1 = popup->insertItem( tr("Test1:"), 2); | 342 | int test1 = popup->insertItem( tr("Test1:"), 2); |
351 | 343 | ||
352 | ret = popup->exec( point ); | 344 | ret = popup->exec( point ); |
353 | qWarning("returned from exec() "); | 345 | qWarning("returned from exec() "); |
354 | if ( ret == -1 ) { | 346 | if ( ret == -1 ) { |
355 | ; | 347 | ; |
356 | } else if ( ret == test1 ) { | 348 | } else if ( ret == test1 ) { |
357 | ; | 349 | ; |
358 | } | 350 | } |
359 | delete popup; | 351 | delete popup; |
360 | } | 352 | } |
361 | delete menu; | 353 | delete menu; |
362 | } | 354 | } |
363 | 355 | ||
364 | 356 | ||
365 | /** | 357 | /** |
366 | * Search and display avail. services for a device (on expand from device listing) | 358 | * Search and display avail. services for a device (on expand from device listing) |
367 | * @param item the service item returned | 359 | * @param item the service item returned |
368 | */ | 360 | */ |
369 | void BlueBase::addServicesToDevice( BTDeviceItem * item ) { | 361 | void BlueBase::addServicesToDevice( BTDeviceItem * item ) { |
370 | qDebug("addServicesToDevice"); | 362 | qDebug("addServicesToDevice"); |
371 | // row of mac adress text(3) | 363 | // row of mac adress text(3) |
372 | RemoteDevice device = item->remoteDevice(); | 364 | RemoteDevice device = item->remoteDevice(); |
373 | m_deviceList.insert( item->mac() , item ); | 365 | m_deviceList.insert( item->mac() , item ); |
374 | // and some time later I get a signal foundServices( const QString& device, Services::ValueList ); back | 366 | // and some time later I get a signal foundServices( const QString& device, Services::ValueList ); back |
375 | m_localDevice->searchServices( device ); | 367 | m_localDevice->searchServices( device ); |
376 | } | 368 | } |
377 | 369 | ||
378 | 370 | ||
379 | /** | 371 | /** |
380 | * Overloaded. This one it the one that is connected to the foundServices signal | 372 | * Overloaded. This one it the one that is connected to the foundServices signal |
381 | * @param device the mac address of the remote device | 373 | * @param device the mac address of the remote device |
382 | * @param servicesList the list with the service the device has. | 374 | * @param servicesList the list with the service the device has. |
383 | */ | 375 | */ |
384 | void BlueBase::addServicesToDevice( const QString& device, Services::ValueList servicesList ) { | 376 | void BlueBase::addServicesToDevice( const QString& device, Services::ValueList servicesList ) { |
385 | qDebug("fill services list"); | 377 | qDebug("fill services list"); |
386 | 378 | ||
387 | QMap<QString,BTDeviceItem*>::Iterator it; | 379 | QMap<QString,BTDeviceItem*>::Iterator it; |
388 | BTDeviceItem* deviceItem = 0; | 380 | BTDeviceItem* deviceItem = 0; |
389 | 381 | ||
390 | // get the right devices which requested the search | 382 | // get the right devices which requested the search |
391 | it = m_deviceList.find( device ); | 383 | it = m_deviceList.find( device ); |
392 | if( it == m_deviceList.end() ) | 384 | if( it == m_deviceList.end() ) |
393 | return; | 385 | return; |
394 | deviceItem = it.data(); | 386 | deviceItem = it.data(); |
395 | 387 | ||
396 | QValueList<OpieTooth::Services>::Iterator it2; | 388 | QValueList<OpieTooth::Services>::Iterator it2; |
397 | BTServiceItem * serviceItem; | 389 | BTServiceItem * serviceItem; |
398 | 390 | ||
399 | if (!servicesList.isEmpty() ) { | 391 | if (!servicesList.isEmpty() ) { |
400 | // add services | 392 | // add services |
401 | QMap<int, QString> list; | 393 | QMap<int, QString> list; |
402 | QMap<int, QString>::Iterator classIt; | 394 | QMap<int, QString>::Iterator classIt; |
403 | for( it2 = servicesList.begin(); it2 != servicesList.end(); ++it2 ) { | 395 | for( it2 = servicesList.begin(); it2 != servicesList.end(); ++it2 ) { |
404 | serviceItem = new BTServiceItem( deviceItem , (*it2) ); | 396 | serviceItem = new BTServiceItem( deviceItem , (*it2) ); |
405 | list = (*it2).classIdList(); | 397 | list = (*it2).classIdList(); |
406 | classIt = list.begin(); | 398 | classIt = list.begin(); |
407 | int classId=0; | 399 | int classId=0; |
408 | if ( classIt != list.end() ) { | 400 | if ( classIt != list.end() ) { |