-rw-r--r-- | noncore/net/opietooth/manager/bluebase.cpp | 162 | ||||
-rw-r--r-- | noncore/net/opietooth/manager/bluebase.h | 12 | ||||
-rw-r--r-- | noncore/net/opietooth/manager/bluetoothbase.ui | 16 |
3 files changed, 146 insertions, 44 deletions
diff --git a/noncore/net/opietooth/manager/bluebase.cpp b/noncore/net/opietooth/manager/bluebase.cpp index c993c7c..d45fbe0 100644 --- a/noncore/net/opietooth/manager/bluebase.cpp +++ b/noncore/net/opietooth/manager/bluebase.cpp @@ -18,175 +18,279 @@ #include "bluebase.h" #include "scandialog.h" #include <qframe.h> #include <qlabel.h> #include <qpushbutton.h> #include <qlayout.h> #include <qvariant.h> #include <qwhatsthis.h> #include <qimage.h> #include <qpixmap.h> #include <qtabwidget.h> #include <qscrollview.h> #include <qvbox.h> #include <qmessagebox.h> #include <qapplication.h> #include <qcheckbox.h> #include <qlineedit.h> #include <qlistview.h> #include <qpe/resource.h> #include <qpe/config.h> +#include <remotedevice.h> -namespace OpieTooth { +namespace OpieTooth { - #include <remotedevice.h> BlueBase::BlueBase( QWidget* parent, const char* name, WFlags fl ) : BluetoothBase( parent, name, fl ) { - QObject::connect( (QObject*) PushButton2, SIGNAL( clicked() ), this, SLOT(startScan())); - QObject::connect((QObject*)configApplyButton, SIGNAL(clicked() ), this, SLOT(applyConfigChanges())); + QObject::connect( (QObject*)PushButton2, SIGNAL( clicked() ), this, SLOT(startScan() ) ); + QObject::connect( (QObject*)configApplyButton, SIGNAL(clicked() ), this, SLOT(applyConfigChanges() ) ); + QObject::connect( (QObject*)ListView2, SIGNAL( expanded( QListViewItem * item ) ), + this, SLOT( addServicesToDevice( QListViewItem * item ) ) ); + QObject::connect( (QObject*)ListView2, SIGNAL( clicked( QListViewItem * )), + this, SLOT( startServiceActionClicked( QListViewItem * item ) ) ); + + // + // QObject::connect( (QObject*) Manager, SIGNAL (foundServices( const QString& device, Services::ValueList ), this () ) ); + //Load all icons needed + QPixmap offPix = Resource::loadPixmap( "editdelete" ); + QPixmap onPix = Resource::loadPixmap( "installed" ); 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(); + + + //TESTING + + ListView2->setRootIsDecorated(true); + + QListViewItem *topLV = new QListViewItem( ListView2, "Harlekins Dongle" , "yes"); + topLV->setPixmap(0, offPix); + (void) new QListViewItem( topLV, "on" ); + (void) new QListViewItem( topLV, "off" ); + + QListViewItem *topLV2 = new QListViewItem( ListView2, "Siemens S45" , "no" ); + topLV2->setPixmap(0, onPix); + (void) new QListViewItem( topLV2, "on" ); + (void) new QListViewItem( topLV2, "off" ); + } -/** - * Reads all options from the config file - */ + + /** + * Reads all options from the config file + */ void BlueBase::readConfig() { Config cfg("bluetoothmanager"); cfg.setGroup("bluezsettings"); deviceName = cfg.readEntry("name", "No name"); // name the device should identify with defaultPasskey = cfg.readEntryCrypt("passkey", ""); // <- hmm, look up how good the trolls did that, maybe too weak useEncryption = cfg.readNumEntry("useEncryption", 1); enableAuthentification = cfg.readNumEntry("enableAuthentification", 1); enablePagescan = cfg.readNumEntry("enablePagescan",1); enableInquiryscan = cfg.readNumEntry("enableInquiryscan", 1); } -/** - * Writes all options to the config file - */ + /** + * Writes all options to the config file + */ void BlueBase::writeConfig() { Config cfg("bluetoothmanager"); cfg.setGroup("bluezsettings"); - cfg.writeEntry("name", deviceName); cfg.writeEntryCrypt("passkey", defaultPasskey); cfg.writeEntry("useEncryption", useEncryption); cfg.writeEntry("enableAuthentification", enableAuthentification); cfg.writeEntry("enablePagescan",enablePagescan); cfg.writeEntry("enableInquiryscan", enableInquiryscan); } -/** - * Set up the gui - */ + /* + * Read the list of allready known devices + * + */ + void BlueBase::readSavedDevices() { + + } + + /* + * Read the list of allready known devices + * + */ + void BlueBase::writeSavedDevices() { + + + } + + + /** + * Set up the gui + */ void BlueBase::initGui() { StatusLabel->setText(getStatus()); // maybe move it to getStatus() cryptCheckBox->setChecked(useEncryption); authCheckBox->setChecked(enableAuthentification); pagescanCheckBox->setChecked(enablePagescan); inquiryscanCheckBox->setChecked(enableInquiryscan); deviceNameLine->setText(deviceName); passkeyLine->setText(defaultPasskey); + // set info tab + setInfo(); } -/** - * Get the status informations and returns it - * @return QString the status informations gathered - */ + /** + * Get the status informations and returns it + * @return QString the status informations gathered + */ QString BlueBase::getStatus(){ - return ("manger.h need also a status method"); + 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() - */ + /** + * Read the current values from the gui and invoke writeConfig() + */ void BlueBase::applyConfigChanges() { deviceName = deviceNameLine->text(); defaultPasskey = passkeyLine->text(); useEncryption = cryptCheckBox->isChecked(); enableAuthentification = authCheckBox->isChecked(); enablePagescan = pagescanCheckBox->isChecked(); enableInquiryscan = inquiryscanCheckBox->isChecked(); writeConfig(); QMessageBox* box = new QMessageBox(this, "Test"); box->setText(tr("Changes applied")); box->show(); // falls nötig hcid killhupen - die funktionalität adden } + /* + * Add fresh found devices from scan dialog to the listing + * + */ void BlueBase::addSearchedDevices( QList<RemoteDevice> &newDevices ) { QListViewItem * deviceItem; QListIterator<RemoteDevice> it(newDevices); for( ; it.current(); ++it ) { RemoteDevice *dev = it.current(); - deviceItem = new QListViewItem( ListView4, dev->name() ); + deviceItem = new QListViewItem( ListView2, dev->name() ); + + if (deviceActive( dev ) ) { + deviceItem->setPixmap(0, onPix); + } else { + deviceItem->setPixmap(0, offPix); + } + deviceItem->setText(1, dev->mac() ); } } -/** - * Open the "scan for devices" dialog - */ + /* + * 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) { + + + } + + /* + * Search and display avail. services for a device (on expand from device listing) + * + */ + void BlueBase::addServicesToDevice( QListViewItem * item ) { + // row of mac adress + RemoteDevice *device = new RemoteDevice(item->text(1), item->text(0)); + //dann nen manager und darauf dann searchServises, das liefert nen signal, das wieder connected + // werden muss. + + // delete + } + + /* + * Find out if a device can currently be reached + */ + bool BlueBase::deviceActive( RemoteDevice *device ) { + + return true; + } + + /** + * Open the "scan for devices" dialog + */ void BlueBase::startScan() { + ScanDialog *scan = new ScanDialog( this, "", true); QObject::connect((QObject*)scan, SIGNAL( selectedDevices(QList<RemoteDevice>&) ), this, SLOT( addSearchedDevices(QList<RemoteDevice>& ) )); scan->showMaximized(); } -/** - * Decontructor - */ + + void BlueBase::setInfo() { + StatusLabel->setText(getStatus()); + } + + /** + * Decontructor + */ BlueBase::~BlueBase(){ } } diff --git a/noncore/net/opietooth/manager/bluebase.h b/noncore/net/opietooth/manager/bluebase.h index c8ceed2..7b03f82 100644 --- a/noncore/net/opietooth/manager/bluebase.h +++ b/noncore/net/opietooth/manager/bluebase.h @@ -1,63 +1,75 @@ #ifndef BLUEBASE_H #define BLUEBASE_H #include <qvariant.h> #include <qwidget.h> #include <qscrollview.h> #include <qsplitter.h> #include <qlist.h> +#include <qpixmap.h> #include "bluetoothbase.h" #include <remotedevice.h> class QVBox; class QHBoxLayout; class QGridLayout; class QFrame; class QLabel; class QPushButton; class QTabWidget; class QCheckBox; + namespace OpieTooth { class BlueBase : public BluetoothBase { Q_OBJECT public: BlueBase( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); ~BlueBase(); protected: private slots: void startScan(); private: void readConfig(); void writeConfig(); + void readSavedDevices(); + void writeSavedDevices(); QString getStatus(); void initGui(); + void setInfo(); + bool deviceActive( RemoteDevice *device ); QString deviceName; QString defaultPasskey; int useEncryption; int enableAuthentification; int enablePagescan; int enableInquiryscan; + QPixmap offPix; + QPixmap onPix; + private slots: void addSearchedDevices( QList<RemoteDevice> &newDevices ); + void addServicesToDevice( QListViewItem * item ); + void startServiceActionClicked( QListViewItem * item ); + void startServiceActionHold( QListViewItem * item, const QPoint & point, int column); void applyConfigChanges(); }; } #endif diff --git a/noncore/net/opietooth/manager/bluetoothbase.ui b/noncore/net/opietooth/manager/bluetoothbase.ui index 61e2bcf..869a9cb 100644 --- a/noncore/net/opietooth/manager/bluetoothbase.ui +++ b/noncore/net/opietooth/manager/bluetoothbase.ui @@ -70,77 +70,63 @@ <name>name</name> <cstring>Spacer1</cstring> </property> <property stdset="1"> <name>orientation</name> <enum>Vertical</enum> </property> <property stdset="1"> <name>sizeType</name> <enum>Fixed</enum> </property> <property> <name>sizeHint</name> <size> <width>20</width> <height>20</height> </size> </property> </spacer> <widget> <class>QListView</class> <column> <property> <name>text</name> - <string>Active</string> - </property> - <property> - <name>clickable</name> - <bool>true</bool> - </property> - <property> - <name>resizeable</name> - <bool>true</bool> - </property> - </column> - <column> - <property> - <name>text</name> <string>Device Name</string> </property> <property> <name>clickable</name> <bool>true</bool> </property> <property> <name>resizeable</name> <bool>true</bool> </property> </column> <column> <property> <name>text</name> - <string>Type</string> + <string>Online</string> </property> <property> <name>clickable</name> <bool>true</bool> </property> <property> <name>resizeable</name> <bool>true</bool> </property> </column> <property stdset="1"> <name>name</name> <cstring>ListView2</cstring> </property> <property stdset="1"> <name>geometry</name> <rect> <x>0</x> <y>0</y> <width>230</width> <height>230</height> </rect> </property> </widget> |