summaryrefslogtreecommitdiff
authormickeyl <mickeyl>2005-08-23 20:37:03 (UTC)
committer mickeyl <mickeyl>2005-08-23 20:37:03 (UTC)
commit68c01ad5f6e7dc12192c9ce77f0a2ee48b813831 (patch) (unidiff)
tree054dd974156c8e49400979eb9b226bb7bd32fd31
parent95210ac41729a4c264e830963cdae3a4cdd218fb (diff)
downloadopie-68c01ad5f6e7dc12192c9ce77f0a2ee48b813831.zip
opie-68c01ad5f6e7dc12192c9ce77f0a2ee48b813831.tar.gz
opie-68c01ad5f6e7dc12192c9ce77f0a2ee48b813831.tar.bz2
- fix SIGSEGV when trying to send but IrDA is not enabled
- rename 'scan' button to 'rescan' - disable 'send' button if IrDA and BT is both disabled
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/obex/obexsend.cpp51
-rw-r--r--core/obex/obexsendbase.ui8
2 files changed, 32 insertions, 27 deletions
diff --git a/core/obex/obexsend.cpp b/core/obex/obexsend.cpp
index a80a48b..9cd9972 100644
--- a/core/obex/obexsend.cpp
+++ b/core/obex/obexsend.cpp
@@ -1,234 +1,239 @@
1// 7-Jul-2005 mbh@sdgsystems.com: replace hand coded form with one 1// 7-Jul-2005 mbh@sdgsystems.com: replace hand coded form with one
2// generated via QT2 Designer. The new form supports 2// generated via QT2 Designer. The new form supports
3// selection of target devices, as opposed to sending to 3// selection of target devices, as opposed to sending to
4// all. 4// all.
5 5
6#include "obex.h" 6#include "obex.h"
7#include "btobex.h" 7#include "btobex.h"
8#include "obexsend.h" 8#include "obexsend.h"
9using namespace OpieObex; 9using namespace OpieObex;
10 10
11/* OPIE */ 11/* OPIE */
12#include <opie2/odebug.h> 12#include <opie2/odebug.h>
13#include <qpe/qcopenvelope_qws.h> 13#include <qpe/qcopenvelope_qws.h>
14#include <qpe/resource.h> 14#include <qpe/resource.h>
15 15
16using namespace Opie::Core; 16using namespace Opie::Core;
17 17
18/* QT */ 18/* QT */
19#include <qlabel.h> 19#include <qlabel.h>
20#include <qpushbutton.h>
20#include <qpixmap.h> 21#include <qpixmap.h>
21#include <qlistview.h> 22#include <qlistview.h>
22#include <qtimer.h> 23#include <qtimer.h>
23 24
24/* TRANSLATOR OpieObex::SendWidget */ 25/* TRANSLATOR OpieObex::SendWidget */
25 26
26SendWidget::SendWidget( QWidget* parent, const char* name ) 27SendWidget::SendWidget( QWidget* parent, const char* name )
27 : obexSendBase( parent, name ) { 28 : obexSendBase( parent, name ) {
28 initUI(); 29 initUI();
29} 30}
30SendWidget::~SendWidget() { 31SendWidget::~SendWidget() {
31} 32}
32void SendWidget::initUI() { 33void SendWidget::initUI() {
33 m_obex = new Obex(this, "obex"); 34 m_obex = new Obex(this, "obex");
34 connect(m_obex, SIGNAL(error(int) ), 35 connect(m_obex, SIGNAL(error(int) ),
35 this, SLOT(slotIrError(int) ) ); 36 this, SLOT(slotIrError(int) ) );
36 connect(m_obex, SIGNAL(sent(bool) ), 37 connect(m_obex, SIGNAL(sent(bool) ),
37 this, SLOT(slotIrSent(bool) ) ); 38 this, SLOT(slotIrSent(bool) ) );
38 connect(m_obex, SIGNAL(currentTry(unsigned int) ), 39 connect(m_obex, SIGNAL(currentTry(unsigned int) ),
39 this, SLOT(slotIrTry(unsigned int) ) ); 40 this, SLOT(slotIrTry(unsigned int) ) );
40 41
41 QCopChannel* chan = new QCopChannel("QPE/IrDaAppletBack", this ); 42 QCopChannel* chan = new QCopChannel("QPE/IrDaAppletBack", this );
42 connect(chan, SIGNAL(received(const QCString&,const QByteArray&) ), 43 connect(chan, SIGNAL(received(const QCString&,const QByteArray&) ),
43 this, SLOT(dispatchIrda(const QCString&,const QByteArray&) ) ); 44 this, SLOT(dispatchIrda(const QCString&,const QByteArray&) ) );
44 45
45 m_btobex = new BtObex(this, "btobex"); 46 m_btobex = new BtObex(this, "btobex");
46 connect(m_btobex, SIGNAL(error(int) ), 47 connect(m_btobex, SIGNAL(error(int) ),
47 this, SLOT(slotBtError(int) ) ); 48 this, SLOT(slotBtError(int) ) );
48 connect(m_btobex, SIGNAL(sent(bool) ), 49 connect(m_btobex, SIGNAL(sent(bool) ),
49 this, SLOT(slotBtSent(bool) ) ); 50 this, SLOT(slotBtSent(bool) ) );
50 connect(m_btobex, SIGNAL(currentTry(unsigned int) ), 51 connect(m_btobex, SIGNAL(currentTry(unsigned int) ),
51 this, SLOT(slotBtTry(unsigned int) ) ); 52 this, SLOT(slotBtTry(unsigned int) ) );
52 53
53 chan = new QCopChannel("QPE/BluetoothBack", this ); 54 chan = new QCopChannel("QPE/BluetoothBack", this );
54 connect(chan, SIGNAL(received(const QCString&,const QByteArray&) ), 55 connect(chan, SIGNAL(received(const QCString&,const QByteArray&) ),
55 this, SLOT(dispatchBt(const QCString&,const QByteArray&) ) ); 56 this, SLOT(dispatchBt(const QCString&,const QByteArray&) ) );
56 57
57} 58}
58 59
59/* 60/*
60 * in send we'll first set everything up 61 * in send we'll first set everything up
61 * and then wait for a list of devices. 62 * and then wait for a list of devices.
62 */ 63 */
63void SendWidget::send( const QString& file, const QString& desc ) { 64void SendWidget::send( const QString& file, const QString& desc ) {
64 m_file = file; 65 m_file = file;
65 m_irDa.clear(); 66 m_irDa.clear();
66 m_start = 0; 67 m_start = 0;
67 68
68 fileToSend->setText(desc.isEmpty() ? file : desc ); 69 fileToSend->setText(desc.isEmpty() ? file : desc );
69 scan_for_receivers(); 70 scan_for_receivers();
70} 71}
71 72
72int SendWidget::addReceiver(const char *r, const char *icon) 73int SendWidget::addReceiver(const char *r, const char *icon)
73{ 74{
74 QListViewItem * item = new QListViewItem( receiverList, 0 ); 75 QListViewItem * item = new QListViewItem( receiverList, 0 );
75 item->setText( 0, r); 76 item->setText( 0, r);
76 item->setPixmap( 1, Resource::loadPixmap( icon ) ); 77 item->setPixmap( 1, Resource::loadPixmap( icon ) );
77 78
78 int id=receivers.count(); 79 int id=receivers.count();
79 receivers[id]=item; 80 receivers[id]=item;
80 return id; 81 return id;
81} 82}
82 83
83bool SendWidget::receiverSelected(int id) 84bool SendWidget::receiverSelected(int id)
84{ 85{
85 return receivers[id]->pixmap(2); 86 return receivers[id]->pixmap(2);
86} 87}
87 88
88void SendWidget::setReceiverStatus( int id, const QString& status ) { 89void SendWidget::setReceiverStatus( int id, const QString& status ) {
89 if ( !receivers.contains(id) ) return; 90 if ( !receivers.contains(id) ) return;
90 receivers[id]->setText(3, status ); 91 receivers[id]->setText(3, status );
91} 92}
92 93
93void SendWidget::slotIrDaDevices( const QStringList& list) { 94void SendWidget::slotIrDaDevices( const QStringList& list) {
94 for (QStringList::ConstIterator it = list.begin(); it != list.end(); ++it ) { 95 for (QStringList::ConstIterator it = list.begin(); it != list.end(); ++it ) {
95 int id = addReceiver(*it, "obex/irda.png"); 96 int id = addReceiver(*it, "obex/irda.png");
96 m_irDa.insert( id, (*it) ); 97 m_irDa.insert( id, (*it) );
97 } 98 }
98 irdaStatus->setText( tr("ready.")); 99 irdaStatus->setText( tr("ready."));
99 m_irDaIt = m_irDa.begin(); 100 m_irDaIt = m_irDa.begin();
100 101
101} 102}
102 103
103void SendWidget::slotBTDevices( const QMap<QString, QString>& str ) { 104void SendWidget::slotBTDevices( const QMap<QString, QString>& str ) {
104 for(QMap<QString, QString>::ConstIterator it = str.begin(); it != str.end(); ++it ) { 105 for(QMap<QString, QString>::ConstIterator it = str.begin(); it != str.end(); ++it ) {
105 int id = addReceiver(it.key(), "obex/bt.png"); 106 int id = addReceiver(it.key(), "obex/bt.png");
106 m_bt.insert( id, Pair( it.key(), it.data() ) ); 107 m_bt.insert( id, Pair( it.key(), it.data() ) );
107 } 108 }
108 btStatus->setText(tr("ready.")); 109 btStatus->setText(tr("ready."));
109 m_btIt = m_bt.begin(); 110 m_btIt = m_bt.begin();
110 111
111} 112}
112void SendWidget::slotSelectedDevice( int, int ) { 113void SendWidget::slotSelectedDevice( int, int ) {
113/* if ( name == m_irDeSearch ) { 114/* if ( name == m_irDeSearch ) {
114 for (QMap<int, QString>::Iterator it= m_irDa.begin(); it != m_irDa.end(); ++it ) 115 for (QMap<int, QString>::Iterator it= m_irDa.begin(); it != m_irDa.end(); ++it )
115 m_devBox->removeDevice( it.key() ); 116 m_devBox->removeDevice( it.key() );
116 117
117 QCopEnvelope e2("QPE/IrDaApplet", "listDevices()"); 118 QCopEnvelope e2("QPE/IrDaApplet", "listDevices()");
118 }*/ 119 }*/
119} 120}
120void SendWidget::dispatchIrda( const QCString& str, const QByteArray& ar ) { 121void SendWidget::dispatchIrda( const QCString& str, const QByteArray& ar ) {
121 if ( str == "devices(QStringList)" ) { 122 if ( str == "devices(QStringList)" ) {
122 QDataStream stream( ar, IO_ReadOnly ); 123 QDataStream stream( ar, IO_ReadOnly );
123 QStringList list; 124 QStringList list;
124 stream >> list; 125 stream >> list;
125 slotIrDaDevices( list ); 126 slotIrDaDevices( list );
126 } 127 }
127} 128}
128void SendWidget::slotIrError( int ) { 129void SendWidget::slotIrError( int ) {
129 irdaStatus->setText(tr("error :(")); 130 irdaStatus->setText(tr("error :("));
130} 131}
131void SendWidget::slotIrSent( bool b) { 132void SendWidget::slotIrSent( bool b) {
132 QString text = b ? tr("Sent") : tr("Failure"); 133 QString text = b ? tr("Sent") : tr("Failure");
133 setReceiverStatus( m_irDaIt.key(), text ); 134 setReceiverStatus( m_irDaIt.key(), text );
134 ++m_irDaIt; 135 ++m_irDaIt;
135 slotStartIrda(); 136 slotStartIrda();
136} 137}
137void SendWidget::slotIrTry(unsigned int trI) { 138void SendWidget::slotIrTry(unsigned int trI) {
138 setReceiverStatus(m_irDaIt.key(), tr("Try %1").arg( QString::number( trI ) )); 139 setReceiverStatus(m_irDaIt.key(), tr("Try %1").arg( QString::number( trI ) ));
139} 140}
140void SendWidget::slotStartIrda() { 141void SendWidget::slotStartIrda() {
141 if (m_irDaIt == m_irDa.end() ) { 142 if ( !m_irDa.count() ) return;
143 if ( m_irDaIt == m_irDa.end() ) {
142 irdaStatus->setText(tr("complete.")); 144 irdaStatus->setText(tr("complete."));
143 return; 145 return;
144 } 146 }
145 setReceiverStatus( m_irDaIt.key(), tr("Start sending") ); 147 setReceiverStatus( m_irDaIt.key(), tr("Start sending") );
146 m_obex->send( m_file ); 148 m_obex->send( m_file );
147} 149}
148 150
149void SendWidget::dispatchBt( const QCString& str, const QByteArray& ar ) { 151void SendWidget::dispatchBt( const QCString& str, const QByteArray& ar ) {
150 if ( str == "devices(QStringMap)" ) { 152 if ( str == "devices(QStringMap)" ) {
151 QDataStream stream( ar, IO_ReadOnly ); 153 QDataStream stream( ar, IO_ReadOnly );
152 QMap<QString, QString> btmap; 154 QMap<QString, QString> btmap;
153 stream >> btmap; 155 stream >> btmap;
154 slotBTDevices( btmap ); 156 slotBTDevices( btmap );
155 } 157 }
156} 158}
157void SendWidget::slotBtError( int ) { 159void SendWidget::slotBtError( int ) {
158 btStatus->setText(tr("error :(")); 160 btStatus->setText(tr("error :("));
159} 161}
160void SendWidget::slotBtSent( bool b) { 162void SendWidget::slotBtSent( bool b) {
161 QString text = b ? tr("Sent") : tr("Failure"); 163 QString text = b ? tr("Sent") : tr("Failure");
162 setReceiverStatus( m_btIt.key(), text ); 164 setReceiverStatus( m_btIt.key(), text );
163 ++m_btIt; 165 ++m_btIt;
164 slotStartBt(); 166 slotStartBt();
165} 167}
166void SendWidget::slotBtTry(unsigned int trI) { 168void SendWidget::slotBtTry(unsigned int trI) {
167 setReceiverStatus( m_btIt.key(), tr("Try %1").arg( QString::number( trI ) ) ); 169 setReceiverStatus( m_btIt.key(), tr("Try %1").arg( QString::number( trI ) ) );
168} 170}
169void SendWidget::slotStartBt() { 171void SendWidget::slotStartBt() {
170 // skip past unselected receivers 172 // skip past unselected receivers
171 while((m_btIt != m_bt.end()) && !receiverSelected(m_btIt.key())) 173 while((m_btIt != m_bt.end()) && !receiverSelected(m_btIt.key()))
172 ++m_btIt; 174 ++m_btIt;
173 if (m_btIt == m_bt.end() ) { 175 if (m_btIt == m_bt.end() ) {
174 btStatus->setText(tr("complete.")); 176 btStatus->setText(tr("complete."));
175 return; 177 return;
176 } 178 }
177 setReceiverStatus( m_btIt.key(), tr("Start sending") ); 179 setReceiverStatus( m_btIt.key(), tr("Start sending") );
178 m_btobex->send( m_file, m_btIt.data().second() ); 180 m_btobex->send( m_file, m_btIt.data().second() );
179} 181}
180 182
181void SendWidget::send_to_receivers() { 183void SendWidget::send_to_receivers() {
182 slotStartIrda(); 184 slotStartIrda();
183 slotStartBt(); 185 slotStartBt();
184} 186}
185 187
186void SendWidget::scan_for_receivers() { 188void SendWidget::scan_for_receivers()
187 189{
188 bool enable_irda=false; 190 //FIXME: Clean ListBox prior to (re)scan
189 bool enable_bt=false; 191 sendButton->setDisabled( true );
190
191 if ( !QCopChannel::isRegistered("QPE/IrDaApplet") ) {
192 irdaStatus->setText(tr("not enabled."));
193 enable_irda=true;
194 } else
195 irdaStatus->setText(tr("searching..."));
196 192
197 if ( !QCopChannel::isRegistered("QPE/Bluetooth") ) { 193 if ( !QCopChannel::isRegistered("QPE/IrDaApplet") )
198 btStatus->setText(tr("not enabled.")); 194 {
199 enable_bt=true; 195 irdaStatus->setText(tr("not enabled."));
200 } else 196 }
201 btStatus->setText(tr("searching...")); 197 else
198 {
199 QCopEnvelope e1("QPE/IrDaApplet", "enableIrda()");
200 irdaStatus->setText(tr("searching..."));
201 sendButton->setEnabled( true );
202 QCopEnvelope e2("QPE/IrDaApplet", "listDevices()");
203 }
202 204
203 if (enable_irda) 205 if ( !QCopChannel::isRegistered("QPE/Bluetooth") )
204 QCopEnvelope e0("QPE/IrDaApplet", "enableIrda()"); 206 {
205 if (enable_bt) 207 btStatus->setText(tr("not enabled."));
208 }
209 else
210 {
206 QCopEnvelope e1("QPE/Bluetooth", "enableBluetooth()"); 211 QCopEnvelope e1("QPE/Bluetooth", "enableBluetooth()");
207 212 btStatus->setText(tr("searching..."));
208 QCopEnvelope e2("QPE/IrDaApplet", "listDevices()"); 213 sendButton->setEnabled( true );
209 QCopEnvelope e3("QPE/Bluetooth", "listDevices()"); 214 QCopEnvelope e3("QPE/Bluetooth", "listDevices()");
210 215 }
211} 216}
212 217
213void SendWidget::toggle_receiver(QListViewItem* item) 218void SendWidget::toggle_receiver(QListViewItem* item)
214{ 219{
215 // toggle the state of an individual receiver. 220 // toggle the state of an individual receiver.
216 if(item->pixmap(2)) 221 if(item->pixmap(2))
217 item->setPixmap(2,QPixmap()); 222 item->setPixmap(2,QPixmap());
218 else 223 else
219 item->setPixmap(2,Resource::loadPixmap("backup/check.png")); 224 item->setPixmap(2,Resource::loadPixmap("backup/check.png"));
220} 225}
221 226
222 227
223void SendWidget::closeEvent( QCloseEvent* e) { 228void SendWidget::closeEvent( QCloseEvent* e) {
224 e->accept(); // make sure 229 e->accept(); // make sure
225 QTimer::singleShot(0, this, SLOT(userDone() ) ); 230 QTimer::singleShot(0, this, SLOT(userDone() ) );
226} 231}
227void SendWidget::userDone() { 232void SendWidget::userDone() {
228 QCopEnvelope e0("QPE/IrDaApplet", "disableIrda()"); 233 QCopEnvelope e0("QPE/IrDaApplet", "disableIrda()");
229 QCopEnvelope e1("QPE/Bluetooth", "disableBluetooth()"); 234 QCopEnvelope e1("QPE/Bluetooth", "disableBluetooth()");
230 emit done(); 235 emit done();
231} 236}
232QString SendWidget::file()const { 237QString SendWidget::file()const {
233 return m_file; 238 return m_file;
234} 239}
diff --git a/core/obex/obexsendbase.ui b/core/obex/obexsendbase.ui
index a192dd3..4619842 100644
--- a/core/obex/obexsendbase.ui
+++ b/core/obex/obexsendbase.ui
@@ -1,369 +1,369 @@
1<!DOCTYPE UI><UI> 1<!DOCTYPE UI><UI>
2<class>obexSendBase</class> 2<class>obexSendBase</class>
3<comment>Manage send via OBEX over both IrDA and Bluetooth 3<comment>Manage send via OBEX over both IrDA and Bluetooth
4The form provides status information, and method 4The form provides status information, and method
5for selecting destination hosts.</comment> 5for selecting destination hosts.</comment>
6<author>Michael Haynie &lt;mbh@sdgsystems.com&gt;</author> 6<author>Michael Haynie &lt;mbh@sdgsystems.com&gt;</author>
7<include location="global">qlistview.h</include> 7<include location="global">qlistview.h</include>
8<widget> 8<widget>
9 <class>QWidget</class> 9 <class>QWidget</class>
10 <property stdset="1"> 10 <property stdset="1">
11 <name>name</name> 11 <name>name</name>
12 <cstring>obexSendBase</cstring> 12 <cstring>obexSendBase</cstring>
13 </property> 13 </property>
14 <property stdset="1"> 14 <property stdset="1">
15 <name>geometry</name> 15 <name>geometry</name>
16 <rect> 16 <rect>
17 <x>0</x> 17 <x>0</x>
18 <y>0</y> 18 <y>0</y>
19 <width>363</width> 19 <width>359</width>
20 <height>221</height> 20 <height>221</height>
21 </rect> 21 </rect>
22 </property> 22 </property>
23 <property stdset="1"> 23 <property stdset="1">
24 <name>caption</name> 24 <name>caption</name>
25 <string>Send via OBEX</string> 25 <string>Send via OBEX</string>
26 </property> 26 </property>
27 <vbox> 27 <vbox>
28 <property stdset="1"> 28 <property stdset="1">
29 <name>margin</name> 29 <name>margin</name>
30 <number>11</number> 30 <number>11</number>
31 </property> 31 </property>
32 <property stdset="1"> 32 <property stdset="1">
33 <name>spacing</name> 33 <name>spacing</name>
34 <number>6</number> 34 <number>6</number>
35 </property> 35 </property>
36 <widget> 36 <widget>
37 <class>QLayoutWidget</class> 37 <class>QLayoutWidget</class>
38 <property stdset="1"> 38 <property stdset="1">
39 <name>name</name> 39 <name>name</name>
40 <cstring>Layout1</cstring> 40 <cstring>Layout1</cstring>
41 </property> 41 </property>
42 <hbox> 42 <hbox>
43 <property stdset="1"> 43 <property stdset="1">
44 <name>margin</name> 44 <name>margin</name>
45 <number>0</number> 45 <number>0</number>
46 </property> 46 </property>
47 <property stdset="1"> 47 <property stdset="1">
48 <name>spacing</name> 48 <name>spacing</name>
49 <number>6</number> 49 <number>6</number>
50 </property> 50 </property>
51 <widget> 51 <widget>
52 <class>QLabel</class> 52 <class>QLabel</class>
53 <property stdset="1"> 53 <property stdset="1">
54 <name>name</name> 54 <name>name</name>
55 <cstring>sendLabel</cstring> 55 <cstring>sendLabel</cstring>
56 </property> 56 </property>
57 <property stdset="1"> 57 <property stdset="1">
58 <name>text</name> 58 <name>text</name>
59 <string>Sending:</string> 59 <string>Sending:</string>
60 </property> 60 </property>
61 </widget> 61 </widget>
62 <widget> 62 <widget>
63 <class>QLabel</class> 63 <class>QLabel</class>
64 <property stdset="1"> 64 <property stdset="1">
65 <name>name</name> 65 <name>name</name>
66 <cstring>fileToSend</cstring> 66 <cstring>fileToSend</cstring>
67 </property> 67 </property>
68 <property stdset="1"> 68 <property stdset="1">
69 <name>text</name> 69 <name>text</name>
70 <string>Unknown</string> 70 <string>Unknown</string>
71 </property> 71 </property>
72 </widget> 72 </widget>
73 <spacer> 73 <spacer>
74 <property> 74 <property>
75 <name>name</name> 75 <name>name</name>
76 <cstring>Spacer1</cstring> 76 <cstring>Spacer1</cstring>
77 </property> 77 </property>
78 <property stdset="1"> 78 <property stdset="1">
79 <name>orientation</name> 79 <name>orientation</name>
80 <enum>Horizontal</enum> 80 <enum>Horizontal</enum>
81 </property> 81 </property>
82 <property stdset="1"> 82 <property stdset="1">
83 <name>sizeType</name> 83 <name>sizeType</name>
84 <enum>Expanding</enum> 84 <enum>Expanding</enum>
85 </property> 85 </property>
86 <property> 86 <property>
87 <name>sizeHint</name> 87 <name>sizeHint</name>
88 <size> 88 <size>
89 <width>20</width> 89 <width>20</width>
90 <height>20</height> 90 <height>20</height>
91 </size> 91 </size>
92 </property> 92 </property>
93 </spacer> 93 </spacer>
94 </hbox> 94 </hbox>
95 </widget> 95 </widget>
96 <widget> 96 <widget>
97 <class>QLayoutWidget</class> 97 <class>QLayoutWidget</class>
98 <property stdset="1"> 98 <property stdset="1">
99 <name>name</name> 99 <name>name</name>
100 <cstring>Layout4</cstring> 100 <cstring>Layout4</cstring>
101 </property> 101 </property>
102 <hbox> 102 <hbox>
103 <property stdset="1"> 103 <property stdset="1">
104 <name>margin</name> 104 <name>margin</name>
105 <number>0</number> 105 <number>0</number>
106 </property> 106 </property>
107 <property stdset="1"> 107 <property stdset="1">
108 <name>spacing</name> 108 <name>spacing</name>
109 <number>6</number> 109 <number>6</number>
110 </property> 110 </property>
111 <widget> 111 <widget>
112 <class>QLabel</class> 112 <class>QLabel</class>
113 <property stdset="1"> 113 <property stdset="1">
114 <name>name</name> 114 <name>name</name>
115 <cstring>irdaLabel</cstring> 115 <cstring>irdaLabel</cstring>
116 </property> 116 </property>
117 <property stdset="1"> 117 <property stdset="1">
118 <name>sizePolicy</name> 118 <name>sizePolicy</name>
119 <sizepolicy> 119 <sizepolicy>
120 <hsizetype>0</hsizetype> 120 <hsizetype>0</hsizetype>
121 <vsizetype>1</vsizetype> 121 <vsizetype>1</vsizetype>
122 </sizepolicy> 122 </sizepolicy>
123 </property> 123 </property>
124 <property stdset="1"> 124 <property stdset="1">
125 <name>text</name> 125 <name>text</name>
126 <string></string> 126 <string></string>
127 </property> 127 </property>
128 <property stdset="1"> 128 <property stdset="1">
129 <name>pixmap</name> 129 <name>pixmap</name>
130 <pixmap>image0</pixmap> 130 <pixmap>image0</pixmap>
131 </property> 131 </property>
132 </widget> 132 </widget>
133 <widget> 133 <widget>
134 <class>QLabel</class> 134 <class>QLabel</class>
135 <property stdset="1"> 135 <property stdset="1">
136 <name>name</name> 136 <name>name</name>
137 <cstring>irdaStatus</cstring> 137 <cstring>irdaStatus</cstring>
138 </property> 138 </property>
139 <property stdset="1"> 139 <property stdset="1">
140 <name>sizePolicy</name> 140 <name>sizePolicy</name>
141 <sizepolicy> 141 <sizepolicy>
142 <hsizetype>7</hsizetype> 142 <hsizetype>7</hsizetype>
143 <vsizetype>1</vsizetype> 143 <vsizetype>1</vsizetype>
144 </sizepolicy> 144 </sizepolicy>
145 </property> 145 </property>
146 <property stdset="1"> 146 <property stdset="1">
147 <name>text</name> 147 <name>text</name>
148 <string>Unknown</string> 148 <string>Unknown</string>
149 </property> 149 </property>
150 </widget> 150 </widget>
151 <widget> 151 <widget>
152 <class>QLabel</class> 152 <class>QLabel</class>
153 <property stdset="1"> 153 <property stdset="1">
154 <name>name</name> 154 <name>name</name>
155 <cstring>btLabel</cstring> 155 <cstring>btLabel</cstring>
156 </property> 156 </property>
157 <property stdset="1"> 157 <property stdset="1">
158 <name>sizePolicy</name> 158 <name>sizePolicy</name>
159 <sizepolicy> 159 <sizepolicy>
160 <hsizetype>0</hsizetype> 160 <hsizetype>0</hsizetype>
161 <vsizetype>1</vsizetype> 161 <vsizetype>1</vsizetype>
162 </sizepolicy> 162 </sizepolicy>
163 </property> 163 </property>
164 <property stdset="1"> 164 <property stdset="1">
165 <name>text</name> 165 <name>text</name>
166 <string></string> 166 <string></string>
167 </property> 167 </property>
168 <property stdset="1"> 168 <property stdset="1">
169 <name>pixmap</name> 169 <name>pixmap</name>
170 <pixmap>image1</pixmap> 170 <pixmap>image1</pixmap>
171 </property> 171 </property>
172 </widget> 172 </widget>
173 <widget> 173 <widget>
174 <class>QLabel</class> 174 <class>QLabel</class>
175 <property stdset="1"> 175 <property stdset="1">
176 <name>name</name> 176 <name>name</name>
177 <cstring>btStatus</cstring> 177 <cstring>btStatus</cstring>
178 </property> 178 </property>
179 <property stdset="1"> 179 <property stdset="1">
180 <name>sizePolicy</name> 180 <name>sizePolicy</name>
181 <sizepolicy> 181 <sizepolicy>
182 <hsizetype>7</hsizetype> 182 <hsizetype>7</hsizetype>
183 <vsizetype>1</vsizetype> 183 <vsizetype>1</vsizetype>
184 </sizepolicy> 184 </sizepolicy>
185 </property> 185 </property>
186 <property stdset="1"> 186 <property stdset="1">
187 <name>text</name> 187 <name>text</name>
188 <string>Unknown</string> 188 <string>Unknown</string>
189 </property> 189 </property>
190 </widget> 190 </widget>
191 </hbox> 191 </hbox>
192 </widget> 192 </widget>
193 <widget> 193 <widget>
194 <class>QListView</class> 194 <class>QListView</class>
195 <column> 195 <column>
196 <property> 196 <property>
197 <name>text</name> 197 <name>text</name>
198 <string>Receiver</string> 198 <string>Receiver</string>
199 </property> 199 </property>
200 <property> 200 <property>
201 <name>clickable</name> 201 <name>clickable</name>
202 <bool>false</bool> 202 <bool>false</bool>
203 </property> 203 </property>
204 <property> 204 <property>
205 <name>resizeable</name> 205 <name>resizeable</name>
206 <bool>false</bool> 206 <bool>false</bool>
207 </property> 207 </property>
208 </column> 208 </column>
209 <column> 209 <column>
210 <property> 210 <property>
211 <name>text</name> 211 <name>text</name>
212 <string>T</string> 212 <string>T</string>
213 </property> 213 </property>
214 <property> 214 <property>
215 <name>clickable</name> 215 <name>clickable</name>
216 <bool>false</bool> 216 <bool>false</bool>
217 </property> 217 </property>
218 <property> 218 <property>
219 <name>resizeable</name> 219 <name>resizeable</name>
220 <bool>false</bool> 220 <bool>false</bool>
221 </property> 221 </property>
222 </column> 222 </column>
223 <column> 223 <column>
224 <property> 224 <property>
225 <name>text</name> 225 <name>text</name>
226 <string>S</string> 226 <string>S</string>
227 </property> 227 </property>
228 <property> 228 <property>
229 <name>clickable</name> 229 <name>clickable</name>
230 <bool>false</bool> 230 <bool>false</bool>
231 </property> 231 </property>
232 <property> 232 <property>
233 <name>resizeable</name> 233 <name>resizeable</name>
234 <bool>false</bool> 234 <bool>false</bool>
235 </property> 235 </property>
236 </column> 236 </column>
237 <column> 237 <column>
238 <property> 238 <property>
239 <name>text</name> 239 <name>text</name>
240 <string>Status</string> 240 <string>Status</string>
241 </property> 241 </property>
242 <property> 242 <property>
243 <name>clickable</name> 243 <name>clickable</name>
244 <bool>false</bool> 244 <bool>false</bool>
245 </property> 245 </property>
246 <property> 246 <property>
247 <name>resizeable</name> 247 <name>resizeable</name>
248 <bool>false</bool> 248 <bool>false</bool>
249 </property> 249 </property>
250 </column> 250 </column>
251 <property stdset="1"> 251 <property stdset="1">
252 <name>name</name> 252 <name>name</name>
253 <cstring>receiverList</cstring> 253 <cstring>receiverList</cstring>
254 </property> 254 </property>
255 </widget> 255 </widget>
256 <widget> 256 <widget>
257 <class>QLayoutWidget</class> 257 <class>QLayoutWidget</class>
258 <property stdset="1"> 258 <property stdset="1">
259 <name>name</name> 259 <name>name</name>
260 <cstring>Layout3</cstring> 260 <cstring>Layout3</cstring>
261 </property> 261 </property>
262 <hbox> 262 <hbox>
263 <property stdset="1"> 263 <property stdset="1">
264 <name>margin</name> 264 <name>margin</name>
265 <number>0</number> 265 <number>0</number>
266 </property> 266 </property>
267 <property stdset="1"> 267 <property stdset="1">
268 <name>spacing</name> 268 <name>spacing</name>
269 <number>6</number> 269 <number>6</number>
270 </property> 270 </property>
271 <spacer> 271 <spacer>
272 <property> 272 <property>
273 <name>name</name> 273 <name>name</name>
274 <cstring>Spacer2</cstring> 274 <cstring>Spacer2</cstring>
275 </property> 275 </property>
276 <property stdset="1"> 276 <property stdset="1">
277 <name>orientation</name> 277 <name>orientation</name>
278 <enum>Horizontal</enum> 278 <enum>Horizontal</enum>
279 </property> 279 </property>
280 <property stdset="1"> 280 <property stdset="1">
281 <name>sizeType</name> 281 <name>sizeType</name>
282 <enum>Expanding</enum> 282 <enum>Expanding</enum>
283 </property> 283 </property>
284 <property> 284 <property>
285 <name>sizeHint</name> 285 <name>sizeHint</name>
286 <size> 286 <size>
287 <width>20</width> 287 <width>20</width>
288 <height>20</height> 288 <height>20</height>
289 </size> 289 </size>
290 </property> 290 </property>
291 </spacer> 291 </spacer>
292 <widget> 292 <widget>
293 <class>QPushButton</class> 293 <class>QPushButton</class>
294 <property stdset="1"> 294 <property stdset="1">
295 <name>name</name> 295 <name>name</name>
296 <cstring>scanButton</cstring> 296 <cstring>scanButton</cstring>
297 </property> 297 </property>
298 <property stdset="1"> 298 <property stdset="1">
299 <name>text</name> 299 <name>text</name>
300 <string>Scan</string> 300 <string>&amp;Rescan</string>
301 </property> 301 </property>
302 </widget> 302 </widget>
303 <widget> 303 <widget>
304 <class>QPushButton</class> 304 <class>QPushButton</class>
305 <property stdset="1"> 305 <property stdset="1">
306 <name>name</name> 306 <name>name</name>
307 <cstring>sendButton</cstring> 307 <cstring>sendButton</cstring>
308 </property> 308 </property>
309 <property stdset="1"> 309 <property stdset="1">
310 <name>text</name> 310 <name>text</name>
311 <string>Send</string> 311 <string>&amp;Send</string>
312 </property> 312 </property>
313 </widget> 313 </widget>
314 <widget> 314 <widget>
315 <class>QPushButton</class> 315 <class>QPushButton</class>
316 <property stdset="1"> 316 <property stdset="1">
317 <name>name</name> 317 <name>name</name>
318 <cstring>doneButton</cstring> 318 <cstring>doneButton</cstring>
319 </property> 319 </property>
320 <property stdset="1"> 320 <property stdset="1">
321 <name>text</name> 321 <name>text</name>
322 <string>Done</string> 322 <string>&amp;Close</string>
323 </property> 323 </property>
324 </widget> 324 </widget>
325 </hbox> 325 </hbox>
326 </widget> 326 </widget>
327 </vbox> 327 </vbox>
328</widget> 328</widget>
329<images> 329<images>
330 <image> 330 <image>
331 <name>image0</name> 331 <name>image0</name>
332 <data format="XPM.GZ" length="356">789c5d8f410a02310c45f73d456876453a0aeec423282e05719156075d8c82332e44bcbb4d52eb4c435bf25ffe6f69e360bfdb806b4c3fd0708d102ff400777a76ddeb705cbf8d5d2c21ad74d899b11e226cefb733f721f5389762492c6391c8b26d7fd24f2a13a49a7844ac88f79499120d118eef1126a8a4248393141b789794e23f91a952212148afa64c823acaeb42ea5f8cc86765bebe81454c</data> 332 <data format="XPM.GZ" length="356">789c5d8f410a02310c45f73d456876453a0aeec423282e05719156075d8c82332e44bcbb4d52eb4c435bf25ffe6f69e360bfdb806b4c3fd0708d102ff400777a76ddeb705cbf8d5d2c21ad74d899b11e226cefb733f721f5389762492c6391c8b26d7fd24f2a13a49a7844ac88f79499120d118eef1126a8a4248393141b789794e23f91a952212148afa64c823acaeb42ea5f8cc86765bebe81454c</data>
333 </image> 333 </image>
334 <image> 334 <image>
335 <name>image1</name> 335 <name>image1</name>
336 <data format="XPM.GZ" length="2334">789c9dd5596f1b390c00e0f7fc0a237c0b0a7634a363068b3ee4be9da467da451f6674c44ee238877316fdef2b93f4a02db258606de4e10365511425e5edcae0f4f870b0f276e96ed6cec67ee047eded6025dc4f26cf7f7f7ff7636959e981aa07aa708372f9cdd2f2c96ce007c3e9559c03eb0c28e83337ccc4aaa0c1b0df5b9337c4baf0e423b1291279280e258f3f14a7b2251fb095aa38dfb9d85681bc27f686f3dfb14be778fc7a6f8ae3963838ceefd95555b377c5b669c86be2baadc89be2b635e455b16fb9bedbdebc3e1087d6517edd9be71f89a38cbf59b8a3f5a313a74e9187bd693df899ad8b8eeb7f11971dcd8fa637ed277e12575d47e3dbde9c7f6b61cff9bf887547fd87c7853df76b476cbc254fc4d673bdd23f5d7bce2ffdd58de7f9c60b07aa0f1ec46da0f9d08a3bf1a9d8879ac66ff7e6fdec7af3f9b9ec4df5a2f453c740fd46399f3a45de5f392fa688541f4abf4d1979fe6bb2cafde2f9beb2b5eab8de477190fcf7e218b8de0b769e9ffb37162bc927f39b9c803c12dbc4e7b7ebcdbf6fc86536afffac379f874836793dfc7beeb731b5cc5792ad6964be6f64675a897fe8cd7145ee4c10f3f90e2689df93a32d12d7f334b72a4c8abcdf05db2a999fde0355da4ac6533f95b65aeaa1fb99cbad229d4facc8d6941ddd37dc17b781f79fee8f7256478ed37ba16a6bc4811c6c13b91fcfe4681a3ebf48ef4959d890d827e4d226f14772654de0f5d0efe7db2df51d93ad2b793c50fd65639d9cd7200e520f9d87b2758b7ae9fd283b67647fe87ee5d7ca257a6f90dea74abb90f87ed3f9ae8c8b89eba7fb5fb9ba48940fe97dae52ad793c4ce7d6b5b39ee3f45eeaa66e653c9d17edeb5af24d7b733d74be74748de738dd579df2ef293f5ccd6d8adaca7d496217f9beb0eba690f148f6d95c3fdd17131a23eba1f7c4c4def4dedaae0962ca97e8c3ffacfefdfb7b1c015bec5e8fa3c78011139ee108c77fc6f11c2ff01227788553ecf2f7fad738dee02ddee10cef73fc0a1f727c848f8b383ee133be506435ffade5bf75dcc04ddc92f836eee02eeed188f9771f0ff0308f1b4afc088ff104dfe3078a7ec44ff819bfe0297e95f8372c5061d9ffbe428d062d3ae4fd1a6193579423809c1f005ae8c0f7ebcf1541800889469dc128c7c770be88c3458e5fc204e6d1295cc30ddcc21dfcb23f700f0ff0084ff00c2fb00a6bb00e1bbfef2f6cc216aec136ecc02eecc1fe6bfd81033884211c61fd7afffeabbfff23fef3afa57f00b9561583</data> 336 <data format="XPM.GZ" length="2334">789c9dd5596f1b390c00e0f7fc0a237c0b0a7634a363068b3ee4be9da467da451f6674c44ee238877316fdef2b93f4a02db258606de4e10365511425e5edcae0f4f870b0f276e96ed6cec67ee047eded6025dc4f26cf7f7f7ff7636959e981aa07aa708372f9cdd2f2c96ce007c3e9559c03eb0c28e83337ccc4aaa0c1b0df5b9337c4baf0e423b1291279280e258f3f14a7b2251fb095aa38dfb9d85681bc27f686f3dfb14be778fc7a6f8ae3963838ceefd95555b377c5b669c86be2baadc89be2b635e455b16fb9bedbdebc3e1087d6517edd9be71f89a38cbf59b8a3f5a313a74e9187bd693df899ad8b8eeb7f11971dcd8fa637ed277e12575d47e3dbde9c7f6b61cff9bf887547fd87c7853df76b476cbc254fc4d673bdd23f5d7bce2ffdd58de7f9c60b07aa0f1ec46da0f9d08a3bf1a9d8879ac66ff7e6fdec7af3f9b9ec4df5a2f453c740fd46399f3a45de5f392fa688541f4abf4d1979fe6bb2cafde2f9beb2b5eab8de477190fcf7e218b8de0b769e9ffb37162bc927f39b9c803c12dbc4e7b7ebcdbf6fc86536afffac379f874836793dfc7beeb731b5cc5792ad6964be6f64675a897fe8cd7145ee4c10f3f90e2689df93a32d12d7f334b72a4c8abcdf05db2a999fde0355da4ac6533f95b65aeaa1fb99cbad229d4facc8d6941ddd37dc17b781f79fee8f7256478ed37ba16a6bc4811c6c13b91fcfe4681a3ebf48ef4959d890d827e4d226f14772654de0f5d0efe7db2df51d93ad2b793c50fd65639d9cd7200e520f9d87b2758b7ae9fd283b67647fe87ee5d7ca257a6f90dea74abb90f87ed3f9ae8c8b89eba7fb5fb9ba48940fe97dae52ad793c4ce7d6b5b39ee3f45eeaa66e653c9d17edeb5af24d7b733d74be74748de738dd579df2ef293f5ccd6d8adaca7d496217f9beb0eba690f148f6d95c3fdd17131a23eba1f7c4c4def4dedaae0962ca97e8c3ffacfefdfb7b1c015bec5e8fa3c78011139ee108c77fc6f11c2ff01227788553ecf2f7fad738dee02ddee10cef73fc0a1f727c848f8b383ee133be506435ffade5bf75dcc04ddc92f836eee02eeed188f9771f0ff0308f1b4afc088ff104dfe3078a7ec44ff819bfe0297e95f8372c5061d9ffbe428d062d3ae4fd1a6193579423809c1f005ae8c0f7ebcf1541800889469dc128c7c770be88c3458e5fc204e6d1295cc30ddcc21dfcb23f700f0ff0084ff00c2fb00a6bb00e1bbfef2f6cc216aec136ecc02eecc1fe6bfd81033884211c61fd7afffeabbfff23fef3afa57f00b9561583</data>
337 </image> 337 </image>
338</images> 338</images>
339<connections> 339<connections>
340 <connection> 340 <connection>
341 <sender>scanButton</sender> 341 <sender>scanButton</sender>
342 <signal>clicked()</signal> 342 <signal>clicked()</signal>
343 <receiver>obexSendBase</receiver> 343 <receiver>obexSendBase</receiver>
344 <slot>scan_for_receivers()</slot> 344 <slot>scan_for_receivers()</slot>
345 </connection> 345 </connection>
346 <connection> 346 <connection>
347 <sender>sendButton</sender> 347 <sender>sendButton</sender>
348 <signal>clicked()</signal> 348 <signal>clicked()</signal>
349 <receiver>obexSendBase</receiver> 349 <receiver>obexSendBase</receiver>
350 <slot>send_to_receivers()</slot> 350 <slot>send_to_receivers()</slot>
351 </connection> 351 </connection>
352 <connection> 352 <connection>
353 <sender>doneButton</sender> 353 <sender>doneButton</sender>
354 <signal>clicked()</signal> 354 <signal>clicked()</signal>
355 <receiver>obexSendBase</receiver> 355 <receiver>obexSendBase</receiver>
356 <slot>userDone()</slot> 356 <slot>userDone()</slot>
357 </connection> 357 </connection>
358 <connection> 358 <connection>
359 <sender>receiverList</sender> 359 <sender>receiverList</sender>
360 <signal>clicked(QListViewItem*)</signal> 360 <signal>clicked(QListViewItem*)</signal>
361 <receiver>obexSendBase</receiver> 361 <receiver>obexSendBase</receiver>
362 <slot>toggle_receiver(QListViewItem *)</slot> 362 <slot>toggle_receiver(QListViewItem *)</slot>
363 </connection> 363 </connection>
364 <slot access="protected">scan_for_receivers()</slot> 364 <slot access="protected">scan_for_receivers()</slot>
365 <slot access="protected">send_to_receivers()</slot> 365 <slot access="protected">send_to_receivers()</slot>
366 <slot access="protected">toggle_receiver(QListViewItem *)</slot> 366 <slot access="protected">toggle_receiver(QListViewItem *)</slot>
367 <slot access="protected">userDone()</slot> 367 <slot access="protected">userDone()</slot>
368</connections> 368</connections>
369</UI> 369</UI>