summaryrefslogtreecommitdiff
authorharlekin <harlekin>2003-03-06 19:45:59 (UTC)
committer harlekin <harlekin>2003-03-06 19:45:59 (UTC)
commit56eadb23f09da3823da787d98c0f2478620a15b3 (patch) (side-by-side diff)
treef04fd0e01ad6b85c55fbf8d51dc2cb359b6d113c
parentde5ee3b655897d8d6b8b78fee3cb2b63f9a9bf8a (diff)
downloadopie-56eadb23f09da3823da787d98c0f2478620a15b3.zip
opie-56eadb23f09da3823da787d98c0f2478620a15b3.tar.gz
opie-56eadb23f09da3823da787d98c0f2478620a15b3.tar.bz2
make recan services and delete item work
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/net/opietooth/manager/bluebase.cpp12
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() {
pagescanCheckBox->setChecked( m_enablePagescan );
inquiryscanCheckBox->setChecked( m_enableInquiryscan );
deviceNameLine->setText( m_deviceName );
passkeyLine->setText( m_defaultPasskey );
// set info tab
setInfo();
}
/**
* Get the status informations and returns it
* @return QString the status informations gathered
*/
QString BlueBase::status()const{
QString infoString = tr( "<b>Device name : </b> Ipaq" );
infoString += QString( "<br><b>" + tr( "MAC adress: " ) +"</b> No idea" );
infoString += QString( "<br><b>" + tr( "Class" ) + "</b> PDA" );
return (infoString);
}
/**
* Read the current values from the gui and invoke writeConfig()
*/
void BlueBase::applyConfigChanges() {
m_deviceName = deviceNameLine->text();
m_defaultPasskey = passkeyLine->text();
m_useEncryption = cryptCheckBox->isChecked();
m_enableAuthentification = authCheckBox->isChecked();
m_enablePagescan = pagescanCheckBox->isChecked();
m_enableInquiryscan = inquiryscanCheckBox->isChecked();
writeConfig();
QMessageBox::information( this, tr("Test") , tr("Changes were applied.") );
}
/**
* Add fresh found devices from scan dialog to the listing
*
*/
void BlueBase::addSearchedDevices( const QValueList<RemoteDevice> &newDevices ) {
BTDeviceItem * deviceItem;
QValueList<RemoteDevice>::ConstIterator it;
for( it = newDevices.begin(); it != newDevices.end() ; ++it ) {
if (find( (*it) )) // is already inserted
continue;
deviceItem = new BTDeviceItem( ListView2 , (*it) );
deviceItem->setPixmap( 1, m_findPix );
deviceItem->setExpandable ( true );
// look if device is avail. atm, async
deviceActive( (*it) );
// ggf auch hier?
addServicesToDevice( deviceItem );
}
}
/**
* Action that is toggled on entrys on click
*/
void BlueBase::startServiceActionClicked( QListViewItem */*item*/ ) {
}
/**
* Action that are toggled on hold (mostly QPopups i guess)
*/
void BlueBase::startServiceActionHold( QListViewItem * item, const QPoint & point, int /*column*/ ) {
if (!item )
return;
QPopupMenu *menu = new QPopupMenu();
int ret=0;
if ( ((BTListItem*)item)->type() == "device") {
QPopupMenu *groups = new QPopupMenu();
menu->insertItem( ((BTDeviceItem*)item)->name(),0 );
menu->insertSeparator(1);
menu->insertItem( tr("rescan sevices"), 2);
menu->insertItem( tr("to group"), groups , 3);
menu->insertItem( tr("delete"), 4);
ret = menu->exec( point , 0);
switch(ret) {
case -1:
break;
- case 0:
+ case 2:
addServicesToDevice( (BTDeviceItem*)item );
break;
- case 1:
- break;
-
- // NO need to, since hcid does that on the fly
- // case 2:
- // make connection
- //m_localDevice->connectTo( ((BTDeviceItem*)item)->mac() );
- //break;
- case 3:
+ case 4:
// deletes childs too
delete item;
break;
}
delete groups;
}
/*
* We got service sensitive PopupMenus in our factory
* We will create one through the factory and will insert
* our Separator + ShowInfo into the menu or create a new
* one if the factory returns 0
* PopupMenu deletion is kind of weird.
* If escaped( -1 ) or any of our items were chosen we'll
* delete the PopupMenu otherwise it's the responsibility of
* the PopupMenu to delete itself
*
*/
else if ( ((BTListItem*)item)->type() == "service") {
BTServiceItem* service = (BTServiceItem*)item;
QMap<int, QString> list = service->services().classIdList();
QMap<int, QString>::Iterator it = list.begin();
QPopupMenu *popup =0l;
if ( it != list.end() ) {
qWarning("Searching id %d %s", it.key(), it.data().latin1() );
popup = m_popHelper.find( it.key() /*1*/,
service->services(),
(BTDeviceItem*)service->parent() );
}else {
qWarning("Empty");
}
if ( popup == 0l ) {
qWarning("factory returned 0l");
popup = new QPopupMenu();
}
int test1 = popup->insertItem( tr("Test1:"), 2);
ret = popup->exec( point );
qWarning("returned from exec() ");
if ( ret == -1 ) {
;
} else if ( ret == test1 ) {
;
}
delete popup;
}
delete menu;
}
/**
* Search and display avail. services for a device (on expand from device listing)
* @param item the service item returned
*/
void BlueBase::addServicesToDevice( BTDeviceItem * item ) {
qDebug("addServicesToDevice");
// row of mac adress text(3)
RemoteDevice device = item->remoteDevice();
m_deviceList.insert( item->mac() , item );
// and some time later I get a signal foundServices( const QString& device, Services::ValueList ); back
m_localDevice->searchServices( device );
}
/**
* Overloaded. This one it the one that is connected to the foundServices signal
* @param device the mac address of the remote device
* @param servicesList the list with the service the device has.
*/
void BlueBase::addServicesToDevice( const QString& device, Services::ValueList servicesList ) {
qDebug("fill services list");
QMap<QString,BTDeviceItem*>::Iterator it;
BTDeviceItem* deviceItem = 0;
// get the right devices which requested the search
it = m_deviceList.find( device );
if( it == m_deviceList.end() )
return;
deviceItem = it.data();
QValueList<OpieTooth::Services>::Iterator it2;
BTServiceItem * serviceItem;
if (!servicesList.isEmpty() ) {
// add services
QMap<int, QString> list;
QMap<int, QString>::Iterator classIt;
for( it2 = servicesList.begin(); it2 != servicesList.end(); ++it2 ) {
serviceItem = new BTServiceItem( deviceItem , (*it2) );
list = (*it2).classIdList();
classIt = list.begin();
int classId=0;
if ( classIt != list.end() ) {