summaryrefslogtreecommitdiff
path: root/noncore/net/opietooth/manager/bluebase.cpp
Side-by-side diff
Diffstat (limited to 'noncore/net/opietooth/manager/bluebase.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/opietooth/manager/bluebase.cpp32
1 files changed, 16 insertions, 16 deletions
diff --git a/noncore/net/opietooth/manager/bluebase.cpp b/noncore/net/opietooth/manager/bluebase.cpp
index 0ea45d2..29030ab 100644
--- a/noncore/net/opietooth/manager/bluebase.cpp
+++ b/noncore/net/opietooth/manager/bluebase.cpp
@@ -1,177 +1,177 @@
/*
* bluebase.cpp *
* ---------------------
*
* copyright : (c) 2002 by Maximilian Reiß
* email : max.reiss@gmx.de
*
*/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#include "bluebase.h"
#include "scandialog.h"
#include "hciconfwrapper.h"
#include "devicehandler.h"
#include "btconnectionitem.h"
#include "rfcommassigndialogimpl.h"
/* OPIE */
#include <qpe/qpeapplication.h>
#include <qpe/resource.h>
#include <qpe/config.h>
/* QT */
#include <qframe.h>
#include <qlabel.h>
#include <qpushbutton.h>
#include <qlayout.h>
#include <qvariant.h>
#include <qimage.h>
#include <qpixmap.h>
#include <qtabwidget.h>
#include <qscrollview.h>
#include <qvbox.h>
#include <qmessagebox.h>
#include <qcheckbox.h>
#include <qlineedit.h>
#include <qlistview.h>
#include <qdir.h>
#include <qpopupmenu.h>
#include <qtimer.h>
#include <qlist.h>
/* STD */
#include <remotedevice.h>
#include <services.h>
#include <stdlib.h>
using namespace OpieTooth;
BlueBase::BlueBase( QWidget* parent, const char* name, WFlags fl )
: BluetoothBase( parent, name, fl )
{
m_localDevice = new Manager( "hci0" );
connect( PushButton2, SIGNAL( clicked() ), this, SLOT(startScan() ) );
connect( configApplyButton, SIGNAL(clicked() ), this, SLOT(applyConfigChanges() ) );
connect( rfcommBindButton, SIGNAL( clicked() ), this, SLOT( rfcommDialog() ) );
// not good since lib is async
- // connect( ListView2, SIGNAL( expanded ( QListViewItem* ) ),
- // this, SLOT( addServicesToDevice( QListViewItem * ) ) );
- connect( ListView2, SIGNAL( clicked( QListViewItem* )),
- this, SLOT( startServiceActionClicked( QListViewItem* ) ) );
- connect( ListView2, SIGNAL( rightButtonClicked( QListViewItem *, const QPoint &, int ) ),
- this, SLOT(startServiceActionHold( QListViewItem *, const QPoint &, int) ) );
- connect( m_localDevice , SIGNAL( foundServices( const QString& , Services::ValueList ) ),
- this, SLOT( addServicesToDevice( const QString& , Services::ValueList ) ) );
- connect( m_localDevice, SIGNAL( available( const QString&, bool ) ),
- this, SLOT( deviceActive( const QString& , bool ) ) );
- connect( m_localDevice, SIGNAL( connections( ConnectionState::ValueList ) ),
- this, SLOT( addConnectedDevices( ConnectionState::ValueList ) ) );
- connect( m_localDevice, SIGNAL( signalStrength( const QString&, const QString& ) ),
- this, SLOT( addSignalStrength( const QString&, const QString& ) ) );
+ // connect( ListView2, SIGNAL( expanded(QListViewItem*) ),
+ // this, SLOT( addServicesToDevice(QListViewItem*) ) );
+ connect( ListView2, SIGNAL( clicked(QListViewItem*)),
+ this, SLOT( startServiceActionClicked(QListViewItem*) ) );
+ connect( ListView2, SIGNAL( rightButtonClicked(QListViewItem*,const QPoint&,int) ),
+ this, SLOT(startServiceActionHold(QListViewItem*,const QPoint&,int) ) );
+ connect( m_localDevice , SIGNAL( foundServices(const QString&,Services::ValueList) ),
+ this, SLOT( addServicesToDevice(const QString&,Services::ValueList) ) );
+ connect( m_localDevice, SIGNAL( available(const QString&,bool) ),
+ this, SLOT( deviceActive(const QString&,bool) ) );
+ connect( m_localDevice, SIGNAL( connections(ConnectionState::ValueList) ),
+ this, SLOT( addConnectedDevices(ConnectionState::ValueList) ) );
+ connect( m_localDevice, SIGNAL( signalStrength(const QString&,const QString&) ),
+ this, SLOT( addSignalStrength(const QString&,const QString&) ) );
// let hold be rightButtonClicked()
QPEApplication::setStylusOperation( ListView2->viewport(), QPEApplication::RightOnHold);
QPEApplication::setStylusOperation( ListView4->viewport(), QPEApplication::RightOnHold);
//Load all icons needed
m_offPix = Resource::loadPixmap( "opietooth/notconnected" );
m_onPix = Resource::loadPixmap( "opietooth/connected" );
m_findPix = Resource::loadPixmap( "opietooth/find" );
QPalette pal = this->palette();
QColor col = pal.color( QPalette::Active, QColorGroup::Background );
pal.setColor( QPalette::Active, QColorGroup::Button, col );
pal.setColor( QPalette::Inactive, QColorGroup::Button, col );
pal.setColor( QPalette::Normal, QColorGroup::Button, col );
pal.setColor( QPalette::Disabled, QColorGroup::Button, col );
this->setPalette( pal );
setCaption( tr( "Bluetooth Manager" ) );
readConfig();
initGui();
ListView2->setRootIsDecorated(true);
writeToHciConfig();
// search conncetions
addConnectedDevices();
addSignalStrength();
m_iconLoader = new BTIconLoader();
readSavedDevices();
}
/**
* Reads all options from the config file
*/
void BlueBase::readConfig()
{
Config cfg( "bluetoothmanager" );
cfg.setGroup( "bluezsettings" );
m_deviceName = cfg.readEntry( "name" , "No name" ); // name the device should identify with
m_defaultPasskey = cfg.readEntryCrypt( "passkey" , "" ); // <- hmm, look up how good the trolls did that, maybe too weak
m_useEncryption = cfg.readBoolEntry( "useEncryption" , TRUE );
m_enableAuthentification = cfg.readBoolEntry( "enableAuthentification" , TRUE );
m_enablePagescan = cfg.readBoolEntry( "enablePagescan" , TRUE );
m_enableInquiryscan = cfg.readBoolEntry( "enableInquiryscan" , TRUE );
}
/**
* Writes all options to the config file
*/
void BlueBase::writeConfig()
{
Config cfg( "bluetoothmanager" );
cfg.setGroup( "bluezsettings" );
cfg.writeEntry( "name" , m_deviceName );
cfg.writeEntryCrypt( "passkey" , m_defaultPasskey );
cfg.writeEntry( "useEncryption" , m_useEncryption );
cfg.writeEntry( "enableAuthentification" , m_enableAuthentification );
cfg.writeEntry( "enablePagescan" , m_enablePagescan );
cfg.writeEntry( "enableInquiryscan" , m_enableInquiryscan );
writeToHciConfig();
}
/**
* Modify the hcid.conf file to our needs
*/
void BlueBase::writeToHciConfig()
{
qWarning("writeToHciConfig");
HciConfWrapper hciconf ( "/etc/bluetooth/hcid.conf" );
hciconf.load();
hciconf.setPinHelper( "/opt/QtPalmtop/bin/bluepin" );
hciconf.setName( m_deviceName );
hciconf.setEncrypt( m_useEncryption );
hciconf.setAuth( m_enableAuthentification );
hciconf.setPscan( m_enablePagescan );
hciconf.setIscan( m_enableInquiryscan );
hciconf.save();
}
/**
* Read the list of allready known devices
*/
void BlueBase::readSavedDevices()
{
QValueList<RemoteDevice> loadedDevices;
@@ -544,145 +544,145 @@ void BlueBase::addConnectedDevices( ConnectionState::ValueList connectionList )
if ( found == false )
{
connectionItem = new BTConnectionItem( ListView4, (*it) );
if( m_deviceList.find((*it).mac()).data() )
{
connectionItem->setName( m_deviceList.find( (*it).mac()).data()->name() );
}
}
}
QListViewItemIterator it2( ListView4 );
for ( ; it2.current(); ++it2 )
{
bool found = false;
for (it = connectionList.begin(); it != connectionList.end(); ++it)
{
if( ( ((BTConnectionItem*)it2.current())->connection().mac() ) == (*it).mac() )
{
found = true;
}
}
if ( !found )
{
delete it2.current();
}
}
}
else
{
ListView4->clear();
ConnectionState con;
con.setMac( tr("No connections found") );
connectionItem = new BTConnectionItem( ListView4 , con );
}
// recall connection search after some time
QTimer::singleShot( 15000, this, SLOT( addConnectedDevices() ) );
}
/**
* Find out if a device can currently be reached
* @param device
*/
void BlueBase::deviceActive( const RemoteDevice &device )
{
// search by mac, async, gets a signal back
// We should have a BTDeviceItem there or where does it get added to the map -zecke
m_localDevice->isAvailable( device.mac() );
}
/**
* The signal catcher. Set the avail. status on device.
* @param device - the mac address
* @param connected - if it is avail. or not
*/
void BlueBase::deviceActive( const QString& device, bool connected )
{
qDebug("deviceActive slot");
QMap<QString,BTDeviceItem*>::Iterator it;
it = m_deviceList.find( device );
if( it == m_deviceList.end() )
return;
BTDeviceItem* deviceItem = it.data();
if ( connected )
{
deviceItem->setPixmap( 1, m_onPix );
}
else
{
deviceItem->setPixmap( 1, m_offPix );
}
m_deviceList.remove( it );
}
/**
* Open the "scan for devices" dialog
*/
void BlueBase::startScan()
{
ScanDialog *scan = new ScanDialog( this, "ScanDialog",
true, WDestructiveClose );
- QObject::connect( scan, SIGNAL( selectedDevices( const QValueList<RemoteDevice>& ) ),
- this, SLOT( addSearchedDevices( const QValueList<RemoteDevice>& ) ) );
+ QObject::connect( scan, SIGNAL( selectedDevices(const QValueList<RemoteDevice>&) ),
+ this, SLOT( addSearchedDevices(const QValueList<RemoteDevice>&) ) );
QPEApplication::showDialog( scan );
}
/**
* Set the informations about the local device in information Tab
*/
void BlueBase::setInfo()
{
StatusLabel->setText( status() );
}
/**
* Decontructor
*/
BlueBase::~BlueBase()
{
writeSavedDevices();
delete m_iconLoader;
}
/**
* find searches the ListView for a BTDeviceItem containig
* the same Device if found return true else false
* @param dev RemoteDevice to find
* @return returns true if found
*/
bool BlueBase::find( const RemoteDevice& rem )
{
QListViewItemIterator it( ListView2 );
BTListItem* item;
BTDeviceItem* device;
for (; it.current(); ++it )
{
item = (BTListItem*) it.current();
if ( item->typeId() != BTListItem::Device )
continue;
device = (BTDeviceItem*)item;
if ( rem.equals( device->remoteDevice() ) )
return true;
}
return false; // not found
}