summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/opietooth/manager/bluebase.cpp162
-rw-r--r--noncore/net/opietooth/manager/bluebase.h12
-rw-r--r--noncore/net/opietooth/manager/bluetoothbase.ui16
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 @@
18 18
19#include "bluebase.h" 19#include "bluebase.h"
20#include "scandialog.h" 20#include "scandialog.h"
21 21
22#include <qframe.h> 22#include <qframe.h>
23#include <qlabel.h> 23#include <qlabel.h>
24#include <qpushbutton.h> 24#include <qpushbutton.h>
25#include <qlayout.h> 25#include <qlayout.h>
26#include <qvariant.h> 26#include <qvariant.h>
27#include <qwhatsthis.h> 27#include <qwhatsthis.h>
28#include <qimage.h> 28#include <qimage.h>
29#include <qpixmap.h> 29#include <qpixmap.h>
30#include <qtabwidget.h> 30#include <qtabwidget.h>
31#include <qscrollview.h> 31#include <qscrollview.h>
32#include <qvbox.h> 32#include <qvbox.h>
33#include <qmessagebox.h> 33#include <qmessagebox.h>
34#include <qapplication.h> 34#include <qapplication.h>
35#include <qcheckbox.h> 35#include <qcheckbox.h>
36#include <qlineedit.h> 36#include <qlineedit.h>
37#include <qlistview.h> 37#include <qlistview.h>
38 38
39#include <qpe/resource.h> 39#include <qpe/resource.h>
40#include <qpe/config.h> 40#include <qpe/config.h>
41 41
42#include <remotedevice.h>
42 43
43namespace OpieTooth {
44 44
45namespace OpieTooth {
45 46
46 #include <remotedevice.h>
47 47
48 BlueBase::BlueBase( QWidget* parent, const char* name, WFlags fl ) 48 BlueBase::BlueBase( QWidget* parent, const char* name, WFlags fl )
49 : BluetoothBase( parent, name, fl ) { 49 : BluetoothBase( parent, name, fl ) {
50 50
51 51
52 QObject::connect( (QObject*) PushButton2, SIGNAL( clicked() ), this, SLOT(startScan())); 52 QObject::connect( (QObject*)PushButton2, SIGNAL( clicked() ), this, SLOT(startScan() ) );
53 QObject::connect((QObject*)configApplyButton, SIGNAL(clicked() ), this, SLOT(applyConfigChanges())); 53 QObject::connect( (QObject*)configApplyButton, SIGNAL(clicked() ), this, SLOT(applyConfigChanges() ) );
54 QObject::connect( (QObject*)ListView2, SIGNAL( expanded( QListViewItem * item ) ),
55 this, SLOT( addServicesToDevice( QListViewItem * item ) ) );
56 QObject::connect( (QObject*)ListView2, SIGNAL( clicked( QListViewItem * )),
57 this, SLOT( startServiceActionClicked( QListViewItem * item ) ) );
58
59 //
60 // QObject::connect( (QObject*) Manager, SIGNAL (foundServices( const QString& device, Services::ValueList ), this () ) );
54 61
62 //Load all icons needed
55 63
56 64
65 QPixmap offPix = Resource::loadPixmap( "editdelete" );
66 QPixmap onPix = Resource::loadPixmap( "installed" );
57 67
58 QPalette pal = this->palette(); 68 QPalette pal = this->palette();
59 QColor col = pal.color(QPalette::Active, QColorGroup::Background); 69 QColor col = pal.color(QPalette::Active, QColorGroup::Background);
60 pal.setColor(QPalette::Active, QColorGroup::Button, col); 70 pal.setColor(QPalette::Active, QColorGroup::Button, col);
61 pal.setColor(QPalette::Inactive, QColorGroup::Button, col); 71 pal.setColor(QPalette::Inactive, QColorGroup::Button, col);
62 pal.setColor(QPalette::Normal, QColorGroup::Button, col); 72 pal.setColor(QPalette::Normal, QColorGroup::Button, col);
63 pal.setColor(QPalette::Disabled, QColorGroup::Button, col); 73 pal.setColor(QPalette::Disabled, QColorGroup::Button, col);
64 this->setPalette(pal); 74 this->setPalette(pal);
65 75
66 setCaption( tr( "Bluetooth Manager" ) ); 76 setCaption( tr( "Bluetooth Manager" ) );
67 77
68 readConfig(); 78 readConfig();
69 initGui(); 79 initGui();
80
81
82 //TESTING
83
84 ListView2->setRootIsDecorated(true);
85
86 QListViewItem *topLV = new QListViewItem( ListView2, "Harlekins Dongle" , "yes");
87 topLV->setPixmap(0, offPix);
88 (void) new QListViewItem( topLV, "on" );
89 (void) new QListViewItem( topLV, "off" );
90
91 QListViewItem *topLV2 = new QListViewItem( ListView2, "Siemens S45" , "no" );
92 topLV2->setPixmap(0, onPix);
93 (void) new QListViewItem( topLV2, "on" );
94 (void) new QListViewItem( topLV2, "off" );
95
70 } 96 }
71 97
72/** 98
73 * Reads all options from the config file 99 /**
74 */ 100 * Reads all options from the config file
101 */
75 void BlueBase::readConfig() { 102 void BlueBase::readConfig() {
76 103
77 Config cfg("bluetoothmanager"); 104 Config cfg("bluetoothmanager");
78 cfg.setGroup("bluezsettings"); 105 cfg.setGroup("bluezsettings");
79 106
80 107
81 deviceName = cfg.readEntry("name", "No name"); // name the device should identify with 108 deviceName = cfg.readEntry("name", "No name"); // name the device should identify with
82 defaultPasskey = cfg.readEntryCrypt("passkey", ""); // <- hmm, look up how good the trolls did that, maybe too weak 109 defaultPasskey = cfg.readEntryCrypt("passkey", ""); // <- hmm, look up how good the trolls did that, maybe too weak
83 useEncryption = cfg.readNumEntry("useEncryption", 1); 110 useEncryption = cfg.readNumEntry("useEncryption", 1);
84 enableAuthentification = cfg.readNumEntry("enableAuthentification", 1); 111 enableAuthentification = cfg.readNumEntry("enableAuthentification", 1);
85 enablePagescan = cfg.readNumEntry("enablePagescan",1); 112 enablePagescan = cfg.readNumEntry("enablePagescan",1);
86 enableInquiryscan = cfg.readNumEntry("enableInquiryscan", 1); 113 enableInquiryscan = cfg.readNumEntry("enableInquiryscan", 1);
87 114
88 } 115 }
89 116
90/** 117 /**
91 * Writes all options to the config file 118 * Writes all options to the config file
92 */ 119 */
93 void BlueBase::writeConfig() { 120 void BlueBase::writeConfig() {
94 121
95 122
96 Config cfg("bluetoothmanager"); 123 Config cfg("bluetoothmanager");
97 cfg.setGroup("bluezsettings"); 124 cfg.setGroup("bluezsettings");
98 125
99
100 cfg.writeEntry("name", deviceName); 126 cfg.writeEntry("name", deviceName);
101 cfg.writeEntryCrypt("passkey", defaultPasskey); 127 cfg.writeEntryCrypt("passkey", defaultPasskey);
102 cfg.writeEntry("useEncryption", useEncryption); 128 cfg.writeEntry("useEncryption", useEncryption);
103 cfg.writeEntry("enableAuthentification", enableAuthentification); 129 cfg.writeEntry("enableAuthentification", enableAuthentification);
104 cfg.writeEntry("enablePagescan",enablePagescan); 130 cfg.writeEntry("enablePagescan",enablePagescan);
105 cfg.writeEntry("enableInquiryscan", enableInquiryscan); 131 cfg.writeEntry("enableInquiryscan", enableInquiryscan);
106} 132}
107 133
108 134
109/** 135 /*
110 * Set up the gui 136 * Read the list of allready known devices
111 */ 137 *
138 */
139 void BlueBase::readSavedDevices() {
140
141 }
142
143 /*
144 * Read the list of allready known devices
145 *
146 */
147 void BlueBase::writeSavedDevices() {
148
149
150 }
151
152
153 /**
154 * Set up the gui
155 */
112 void BlueBase::initGui() { 156 void BlueBase::initGui() {
113 157
114 StatusLabel->setText(getStatus()); // maybe move it to getStatus() 158 StatusLabel->setText(getStatus()); // maybe move it to getStatus()
115 159
116 cryptCheckBox->setChecked(useEncryption); 160 cryptCheckBox->setChecked(useEncryption);
117 authCheckBox->setChecked(enableAuthentification); 161 authCheckBox->setChecked(enableAuthentification);
118 pagescanCheckBox->setChecked(enablePagescan); 162 pagescanCheckBox->setChecked(enablePagescan);
119 inquiryscanCheckBox->setChecked(enableInquiryscan); 163 inquiryscanCheckBox->setChecked(enableInquiryscan);
120 deviceNameLine->setText(deviceName); 164 deviceNameLine->setText(deviceName);
121 passkeyLine->setText(defaultPasskey); 165 passkeyLine->setText(defaultPasskey);
166 // set info tab
167 setInfo();
122} 168}
123 169
124 170
125/** 171 /**
126 * Get the status informations and returns it 172 * Get the status informations and returns it
127 * @return QString the status informations gathered 173 * @return QString the status informations gathered
128 */ 174 */
129 QString BlueBase::getStatus(){ 175 QString BlueBase::getStatus(){
130 176
131 return ("manger.h need also a status method"); 177 QString infoString = tr("<b>Device name : </b> Ipaq" );
178 infoString += QString("<br><b>" + tr("MAC adress: ") +"</b> No idea");
179 infoString += QString("<br><b>" + tr("Class") + "</b> PDA");
180
181 return (infoString);
132 182
133 } 183 }
134 184
135 185
136/** 186 /**
137 * Read the current values from the gui and invoke writeConfig() 187 * Read the current values from the gui and invoke writeConfig()
138 */ 188 */
139 void BlueBase::applyConfigChanges() { 189 void BlueBase::applyConfigChanges() {
140 190
141 deviceName = deviceNameLine->text(); 191 deviceName = deviceNameLine->text();
142 defaultPasskey = passkeyLine->text(); 192 defaultPasskey = passkeyLine->text();
143 useEncryption = cryptCheckBox->isChecked(); 193 useEncryption = cryptCheckBox->isChecked();
144 enableAuthentification = authCheckBox->isChecked(); 194 enableAuthentification = authCheckBox->isChecked();
145 enablePagescan = pagescanCheckBox->isChecked(); 195 enablePagescan = pagescanCheckBox->isChecked();
146 enableInquiryscan = inquiryscanCheckBox->isChecked(); 196 enableInquiryscan = inquiryscanCheckBox->isChecked();
147 197
148 writeConfig(); 198 writeConfig();
149 199
150 QMessageBox* box = new QMessageBox(this, "Test"); 200 QMessageBox* box = new QMessageBox(this, "Test");
151 box->setText(tr("Changes applied")); 201 box->setText(tr("Changes applied"));
152 box->show(); 202 box->show();
153 203
154 // falls nötig hcid killhupen - die funktionalität adden 204 // falls nötig hcid killhupen - die funktionalität adden
155} 205}
156 206
157 207
208 /*
209 * Add fresh found devices from scan dialog to the listing
210 *
211 */
158 void BlueBase::addSearchedDevices( QList<RemoteDevice> &newDevices ) { 212 void BlueBase::addSearchedDevices( QList<RemoteDevice> &newDevices ) {
159 213
160 QListViewItem * deviceItem; 214 QListViewItem * deviceItem;
161 215
162 QListIterator<RemoteDevice> it(newDevices); 216 QListIterator<RemoteDevice> it(newDevices);
163 217
164 for( ; it.current(); ++it ) { 218 for( ; it.current(); ++it ) {
165 219
166 220
167 RemoteDevice *dev = it.current(); 221 RemoteDevice *dev = it.current();
168 deviceItem = new QListViewItem( ListView4, dev->name() ); 222 deviceItem = new QListViewItem( ListView2, dev->name() );
223
224 if (deviceActive( dev ) ) {
225 deviceItem->setPixmap(0, onPix);
226 } else {
227 deviceItem->setPixmap(0, offPix);
228 }
229
169 deviceItem->setText(1, dev->mac() ); 230 deviceItem->setText(1, dev->mac() );
170 } 231 }
171 } 232 }
172 233
173 234
174/** 235 /*
175 * Open the "scan for devices" dialog 236 * Action that is toggled on entrys on click
176 */ 237 */
238 void BlueBase::startServiceActionClicked( QListViewItem * item ) {
239
240
241 }
242
243 /*
244 * Action that are toggled on hold (mostly QPopups i guess)
245 */
246 void BlueBase::startServiceActionHold( QListViewItem * item, const QPoint & point, int column) {
247
248
249 }
250
251 /*
252 * Search and display avail. services for a device (on expand from device listing)
253 *
254 */
255 void BlueBase::addServicesToDevice( QListViewItem * item ) {
256 // row of mac adress
257 RemoteDevice *device = new RemoteDevice(item->text(1), item->text(0));
258 //dann nen manager und darauf dann searchServises, das liefert nen signal, das wieder connected
259 // werden muss.
260
261 // delete
262 }
263
264 /*
265 * Find out if a device can currently be reached
266 */
267 bool BlueBase::deviceActive( RemoteDevice *device ) {
268
269 return true;
270 }
271
272 /**
273 * Open the "scan for devices" dialog
274 */
177 void BlueBase::startScan() { 275 void BlueBase::startScan() {
276
178 ScanDialog *scan = new ScanDialog( this, "", true); 277 ScanDialog *scan = new ScanDialog( this, "", true);
179 QObject::connect((QObject*)scan, SIGNAL( selectedDevices(QList<RemoteDevice>&) ), 278 QObject::connect((QObject*)scan, SIGNAL( selectedDevices(QList<RemoteDevice>&) ),
180 this, SLOT( addSearchedDevices(QList<RemoteDevice>& ) )); 279 this, SLOT( addSearchedDevices(QList<RemoteDevice>& ) ));
181 280
182 scan->showMaximized(); 281 scan->showMaximized();
183 } 282 }
184 283
185/** 284
186 * Decontructor 285 void BlueBase::setInfo() {
187 */ 286 StatusLabel->setText(getStatus());
287 }
288
289 /**
290 * Decontructor
291 */
188 BlueBase::~BlueBase(){ 292 BlueBase::~BlueBase(){
189 } 293 }
190 294
191} 295}
192 296
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 @@
1 1
2#ifndef BLUEBASE_H 2#ifndef BLUEBASE_H
3#define BLUEBASE_H 3#define BLUEBASE_H
4 4
5#include <qvariant.h> 5#include <qvariant.h>
6#include <qwidget.h> 6#include <qwidget.h>
7#include <qscrollview.h> 7#include <qscrollview.h>
8#include <qsplitter.h> 8#include <qsplitter.h>
9#include <qlist.h> 9#include <qlist.h>
10#include <qpixmap.h>
10 11
11#include "bluetoothbase.h" 12#include "bluetoothbase.h"
12 13
13#include <remotedevice.h> 14#include <remotedevice.h>
14 15
15class QVBox; 16class QVBox;
16class QHBoxLayout; 17class QHBoxLayout;
17class QGridLayout; 18class QGridLayout;
18class QFrame; 19class QFrame;
19class QLabel; 20class QLabel;
20class QPushButton; 21class QPushButton;
21class QTabWidget; 22class QTabWidget;
22class QCheckBox; 23class QCheckBox;
23 24
25
24namespace OpieTooth { 26namespace OpieTooth {
25 27
26 28
27 29
28 class BlueBase : public BluetoothBase { 30 class BlueBase : public BluetoothBase {
29 Q_OBJECT 31 Q_OBJECT
30 32
31 public: 33 public:
32 BlueBase( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); 34 BlueBase( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
33 ~BlueBase(); 35 ~BlueBase();
34 36
35 protected: 37 protected:
36 38
37 39
38 private slots: 40 private slots:
39 void startScan(); 41 void startScan();
40 42
41 private: 43 private:
42 void readConfig(); 44 void readConfig();
43 void writeConfig(); 45 void writeConfig();
46 void readSavedDevices();
47 void writeSavedDevices();
44 QString getStatus(); 48 QString getStatus();
45 void initGui(); 49 void initGui();
50 void setInfo();
46 51
52 bool deviceActive( RemoteDevice *device );
47 53
48 QString deviceName; 54 QString deviceName;
49 QString defaultPasskey; 55 QString defaultPasskey;
50 int useEncryption; 56 int useEncryption;
51 int enableAuthentification; 57 int enableAuthentification;
52 int enablePagescan; 58 int enablePagescan;
53 int enableInquiryscan; 59 int enableInquiryscan;
54 60
61 QPixmap offPix;
62 QPixmap onPix;
63
55 private slots: 64 private slots:
56 void addSearchedDevices( QList<RemoteDevice> &newDevices ); 65 void addSearchedDevices( QList<RemoteDevice> &newDevices );
66 void addServicesToDevice( QListViewItem * item );
67 void startServiceActionClicked( QListViewItem * item );
68 void startServiceActionHold( QListViewItem * item, const QPoint & point, int column);
57 void applyConfigChanges(); 69 void applyConfigChanges();
58 70
59 }; 71 };
60 72
61} 73}
62 74
63#endif 75#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 @@
70 <name>name</name> 70 <name>name</name>
71 <cstring>Spacer1</cstring> 71 <cstring>Spacer1</cstring>
72 </property> 72 </property>
73 <property stdset="1"> 73 <property stdset="1">
74 <name>orientation</name> 74 <name>orientation</name>
75 <enum>Vertical</enum> 75 <enum>Vertical</enum>
76 </property> 76 </property>
77 <property stdset="1"> 77 <property stdset="1">
78 <name>sizeType</name> 78 <name>sizeType</name>
79 <enum>Fixed</enum> 79 <enum>Fixed</enum>
80 </property> 80 </property>
81 <property> 81 <property>
82 <name>sizeHint</name> 82 <name>sizeHint</name>
83 <size> 83 <size>
84 <width>20</width> 84 <width>20</width>
85 <height>20</height> 85 <height>20</height>
86 </size> 86 </size>
87 </property> 87 </property>
88 </spacer> 88 </spacer>
89 <widget> 89 <widget>
90 <class>QListView</class> 90 <class>QListView</class>
91 <column> 91 <column>
92 <property> 92 <property>
93 <name>text</name> 93 <name>text</name>
94 <string>Active</string>
95 </property>
96 <property>
97 <name>clickable</name>
98 <bool>true</bool>
99 </property>
100 <property>
101 <name>resizeable</name>
102 <bool>true</bool>
103 </property>
104 </column>
105 <column>
106 <property>
107 <name>text</name>
108 <string>Device Name</string> 94 <string>Device Name</string>
109 </property> 95 </property>
110 <property> 96 <property>
111 <name>clickable</name> 97 <name>clickable</name>
112 <bool>true</bool> 98 <bool>true</bool>
113 </property> 99 </property>
114 <property> 100 <property>
115 <name>resizeable</name> 101 <name>resizeable</name>
116 <bool>true</bool> 102 <bool>true</bool>
117 </property> 103 </property>
118 </column> 104 </column>
119 <column> 105 <column>
120 <property> 106 <property>
121 <name>text</name> 107 <name>text</name>
122 <string>Type</string> 108 <string>Online</string>
123 </property> 109 </property>
124 <property> 110 <property>
125 <name>clickable</name> 111 <name>clickable</name>
126 <bool>true</bool> 112 <bool>true</bool>
127 </property> 113 </property>
128 <property> 114 <property>
129 <name>resizeable</name> 115 <name>resizeable</name>
130 <bool>true</bool> 116 <bool>true</bool>
131 </property> 117 </property>
132 </column> 118 </column>
133 <property stdset="1"> 119 <property stdset="1">
134 <name>name</name> 120 <name>name</name>
135 <cstring>ListView2</cstring> 121 <cstring>ListView2</cstring>
136 </property> 122 </property>
137 <property stdset="1"> 123 <property stdset="1">
138 <name>geometry</name> 124 <name>geometry</name>
139 <rect> 125 <rect>
140 <x>0</x> 126 <x>0</x>
141 <y>0</y> 127 <y>0</y>
142 <width>230</width> 128 <width>230</width>
143 <height>230</height> 129 <height>230</height>
144 </rect> 130 </rect>
145 </property> 131 </property>
146 </widget> 132 </widget>