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
@@ -1,192 +1,296 @@
1/* 1/*
2 * bluebase.cpp * 2 * bluebase.cpp *
3 * --------------------- 3 * ---------------------
4 * 4 *
5 * begin : Sun 10 17:20:00 CEST 2002 5 * begin : Sun 10 17:20:00 CEST 2002
6 * copyright : (c) 2002 by Maximilian Reiß 6 * copyright : (c) 2002 by Maximilian Reiß
7 * email : max.reiss@gmx.de 7 * email : max.reiss@gmx.de
8 * 8 *
9 */ 9 */
10/*************************************************************************** 10/***************************************************************************
11 * * 11 * *
12 * This program is free software; you can redistribute it and/or modify * 12 * This program is free software; you can redistribute it and/or modify *
13 * it under the terms of the GNU General Public License as published by * 13 * it under the terms of the GNU General Public License as published by *
14 * the Free Software Foundation; either version 2 of the License, or * 14 * the Free Software Foundation; either version 2 of the License, or *
15 * (at your option) any later version. * 15 * (at your option) any later version. *
16 * * 16 * *
17 ***************************************************************************/ 17 ***************************************************************************/
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
@@ -1,218 +1,204 @@
1<!DOCTYPE UI><UI> 1<!DOCTYPE UI><UI>
2<class>BluetoothBase</class> 2<class>BluetoothBase</class>
3<widget> 3<widget>
4 <class>QWidget</class> 4 <class>QWidget</class>
5 <property stdset="1"> 5 <property stdset="1">
6 <name>name</name> 6 <name>name</name>
7 <cstring>BluetoothBase</cstring> 7 <cstring>BluetoothBase</cstring>
8 </property> 8 </property>
9 <property stdset="1"> 9 <property stdset="1">
10 <name>geometry</name> 10 <name>geometry</name>
11 <rect> 11 <rect>
12 <x>0</x> 12 <x>0</x>
13 <y>0</y> 13 <y>0</y>
14 <width>228</width> 14 <width>228</width>
15 <height>320</height> 15 <height>320</height>
16 </rect> 16 </rect>
17 </property> 17 </property>
18 <property stdset="1"> 18 <property stdset="1">
19 <name>caption</name> 19 <name>caption</name>
20 <string>Form1</string> 20 <string>Form1</string>
21 </property> 21 </property>
22 <widget> 22 <widget>
23 <class>QTabWidget</class> 23 <class>QTabWidget</class>
24 <property stdset="1"> 24 <property stdset="1">
25 <name>name</name> 25 <name>name</name>
26 <cstring>Status</cstring> 26 <cstring>Status</cstring>
27 </property> 27 </property>
28 <property stdset="1"> 28 <property stdset="1">
29 <name>geometry</name> 29 <name>geometry</name>
30 <rect> 30 <rect>
31 <x>0</x> 31 <x>0</x>
32 <y>0</y> 32 <y>0</y>
33 <width>260</width> 33 <width>260</width>
34 <height>350</height> 34 <height>350</height>
35 </rect> 35 </rect>
36 </property> 36 </property>
37 <widget> 37 <widget>
38 <class>QWidget</class> 38 <class>QWidget</class>
39 <property stdset="1"> 39 <property stdset="1">
40 <name>name</name> 40 <name>name</name>
41 <cstring>tab</cstring> 41 <cstring>tab</cstring>
42 </property> 42 </property>
43 <attribute> 43 <attribute>
44 <name>title</name> 44 <name>title</name>
45 <string>Devices</string> 45 <string>Devices</string>
46 </attribute> 46 </attribute>
47 <spacer> 47 <spacer>
48 <property> 48 <property>
49 <name>name</name> 49 <name>name</name>
50 <cstring>Spacer3</cstring> 50 <cstring>Spacer3</cstring>
51 </property> 51 </property>
52 <property stdset="1"> 52 <property stdset="1">
53 <name>orientation</name> 53 <name>orientation</name>
54 <enum>Vertical</enum> 54 <enum>Vertical</enum>
55 </property> 55 </property>
56 <property stdset="1"> 56 <property stdset="1">
57 <name>sizeType</name> 57 <name>sizeType</name>
58 <enum>Expanding</enum> 58 <enum>Expanding</enum>
59 </property> 59 </property>
60 <property> 60 <property>
61 <name>sizeHint</name> 61 <name>sizeHint</name>
62 <size> 62 <size>
63 <width>20</width> 63 <width>20</width>
64 <height>20</height> 64 <height>20</height>
65 </size> 65 </size>
66 </property> 66 </property>
67 </spacer> 67 </spacer>
68 <spacer> 68 <spacer>
69 <property> 69 <property>
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>
147 <widget> 133 <widget>
148 <class>QPushButton</class> 134 <class>QPushButton</class>
149 <property stdset="1"> 135 <property stdset="1">
150 <name>name</name> 136 <name>name</name>
151 <cstring>PushButton2</cstring> 137 <cstring>PushButton2</cstring>
152 </property> 138 </property>
153 <property stdset="1"> 139 <property stdset="1">
154 <name>geometry</name> 140 <name>geometry</name>
155 <rect> 141 <rect>
156 <x>40</x> 142 <x>40</x>
157 <y>231</y> 143 <y>231</y>
158 <width>154</width> 144 <width>154</width>
159 <height>30</height> 145 <height>30</height>
160 </rect> 146 </rect>
161 </property> 147 </property>
162 <property stdset="1"> 148 <property stdset="1">
163 <name>sizePolicy</name> 149 <name>sizePolicy</name>
164 <sizepolicy> 150 <sizepolicy>
165 <hsizetype>0</hsizetype> 151 <hsizetype>0</hsizetype>
166 <vsizetype>0</vsizetype> 152 <vsizetype>0</vsizetype>
167 </sizepolicy> 153 </sizepolicy>
168 </property> 154 </property>
169 <property stdset="1"> 155 <property stdset="1">
170 <name>text</name> 156 <name>text</name>
171 <string>Scan for Devices</string> 157 <string>Scan for Devices</string>
172 </property> 158 </property>
173 </widget> 159 </widget>
174 </widget> 160 </widget>
175 <widget> 161 <widget>
176 <class>QWidget</class> 162 <class>QWidget</class>
177 <property stdset="1"> 163 <property stdset="1">
178 <name>name</name> 164 <name>name</name>
179 <cstring>tab</cstring> 165 <cstring>tab</cstring>
180 </property> 166 </property>
181 <attribute> 167 <attribute>
182 <name>title</name> 168 <name>title</name>
183 <string>Connections</string> 169 <string>Connections</string>
184 </attribute> 170 </attribute>
185 <widget> 171 <widget>
186 <class>QListView</class> 172 <class>QListView</class>
187 <column> 173 <column>
188 <property> 174 <property>
189 <name>text</name> 175 <name>text</name>
190 <string>Device Name</string> 176 <string>Device Name</string>
191 </property> 177 </property>
192 <property> 178 <property>
193 <name>clickable</name> 179 <name>clickable</name>
194 <bool>true</bool> 180 <bool>true</bool>
195 </property> 181 </property>
196 <property> 182 <property>
197 <name>resizeable</name> 183 <name>resizeable</name>
198 <bool>true</bool> 184 <bool>true</bool>
199 </property> 185 </property>
200 </column> 186 </column>
201 <column> 187 <column>
202 <property> 188 <property>
203 <name>text</name> 189 <name>text</name>
204 <string>Connection type</string> 190 <string>Connection type</string>
205 </property> 191 </property>
206 <property> 192 <property>
207 <name>clickable</name> 193 <name>clickable</name>
208 <bool>true</bool> 194 <bool>true</bool>
209 </property> 195 </property>
210 <property> 196 <property>
211 <name>resizeable</name> 197 <name>resizeable</name>
212 <bool>true</bool> 198 <bool>true</bool>
213 </property> 199 </property>
214 </column> 200 </column>
215 <property stdset="1"> 201 <property stdset="1">
216 <name>name</name> 202 <name>name</name>
217 <cstring>ListView4</cstring> 203 <cstring>ListView4</cstring>
218 </property> 204 </property>