summaryrefslogtreecommitdiff
path: root/noncore/net/opietooth/manager/bluebase.cpp
Unidiff
Diffstat (limited to 'noncore/net/opietooth/manager/bluebase.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/opietooth/manager/bluebase.cpp56
1 files changed, 42 insertions, 14 deletions
diff --git a/noncore/net/opietooth/manager/bluebase.cpp b/noncore/net/opietooth/manager/bluebase.cpp
index 189001d..3f2f138 100644
--- a/noncore/net/opietooth/manager/bluebase.cpp
+++ b/noncore/net/opietooth/manager/bluebase.cpp
@@ -92,10 +92,12 @@ using namespace OpieTooth;
92 BTDeviceItem *topLV2 = new BTDeviceItem( ListView2, RemoteDevice("xx:", "Siemens S45" ) ); 92 BTDeviceItem *topLV2 = new BTDeviceItem( ListView2, RemoteDevice("xx:", "Siemens S45" ) );
93 topLV2->setPixmap( 1, m_onPix ); 93 topLV2->setPixmap( 1, m_onPix );
94 Services s1; 94 Services s1;
95 s1.setServiceName( "Serial" ); 95 s1.setServiceName( "Serial" );
96 s1.insertClassId(1, "BlueNic");
96 (void) new BTServiceItem( topLV2, s1 ); 97 (void) new BTServiceItem( topLV2, s1 );
97 s1.setServiceName( "BlueNic" ); 98 s1.setServiceName( "BlueNic" );
99 s1.insertClassId(2, "Obex");
98 (void) new BTServiceItem( topLV2, s1 ); 100 (void) new BTServiceItem( topLV2, s1 );
99 101
100 writeToHciConfig(); 102 writeToHciConfig();
101 // search conncetions 103 // search conncetions
@@ -298,9 +300,10 @@ void BlueBase::startServiceActionHold( QListViewItem * item, const QPoint & poin
298 300
299 ret = menu->exec( point , 0); 301 ret = menu->exec( point , 0);
300 302
301 switch(ret) { 303 switch(ret) {
302 case 0: 304 case -1:
305
303 break; 306 break;
304 case 1: 307 case 1:
305 break; 308 break;
306 case 2: 309 case 2:
@@ -312,25 +315,50 @@ void BlueBase::startServiceActionHold( QListViewItem * item, const QPoint & poin
312 break; 315 break;
313 } 316 }
314 delete groups; 317 delete groups;
315 318
316 } else if ( ((BTListItem*)item)->type() == "service") { 319 }
320 /**
321 * We got service sensitive PopupMenus in our factory
322 * We will create one through the factory and will insert
323 * our Separator + ShowInfo into the menu or create a new
324 * one if the factory returns 0
325 * PopupMenu deletion is kind of weird.
326 * If escaped( -1 ) or any of our items were chosen we'll
327 * delete the PopupMenu otherwise it's the responsibility of
328 * the PopupMenu to delete itself
329 *
330 */
331 else if ( ((BTListItem*)item)->type() == "service") {
332 BTServiceItem* service = (BTServiceItem*)item;
333 QMap<int, QString> list = service->services().classIdList();
334 QMap<int, QString>::Iterator it = list.begin();
335 QPopupMenu *popup =0l;
336 if ( it != list.end() )
337 popup = m_popHelper.find( it.key(),
338 service->services(),
339 service->parent() );
340
341 if ( popup == 0l ) {
342 qWarning("factory returned 0l");
343 popup = new QPopupMenu();
344 }
317 345
318 menu->insertItem( tr("Test1:"), 0); 346 int test1 = popup->insertItem( tr("Test1:"), 0);
319 menu->insertItem( tr("connect"), 1); 347 int con = popup->insertItem( tr("connect"), 1);
320 menu->insertItem( tr("delete"), 2); 348 int del = popup->insertItem( tr("delete"), 2);
321 349
322 ret = menu->exec( point , 0); 350 ret = popup->exec( point );
323 351
324 switch(ret) { 352 if ( ret == -1 )
325 case 0: 353 delete popup;
326 break; 354 else if ( ret == test1 )
327 case 1: 355 delete popup;
328 break; 356 else if ( ret == con )
329 case 2: 357 delete popup;
330 // delete childs too 358 else if ( ret == del ) {
359 // take item first? -zecke
331 delete item; 360 delete item;
332 break;
333 } 361 }
334 } 362 }
335 delete menu; 363 delete menu;
336} 364}