summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/obex/obexsend.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/core/obex/obexsend.cpp b/core/obex/obexsend.cpp
index 2512de3..5c177e3 100644
--- a/core/obex/obexsend.cpp
+++ b/core/obex/obexsend.cpp
@@ -1,218 +1,224 @@
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 <opie2/oresource.h> 14#include <opie2/oresource.h>
15#include <qpe/version.h>
15 16
16using namespace Opie::Core; 17using namespace Opie::Core;
17 18
18/* QT */ 19/* QT */
19#include <qlabel.h> 20#include <qlabel.h>
20#include <qpushbutton.h> 21#include <qpushbutton.h>
21#include <qpixmap.h> 22#include <qpixmap.h>
22#include <qlistview.h> 23#include <qlistview.h>
23 24
24#include <unistd.h> 25#include <unistd.h>
25/* TRANSLATOR OpieObex::SendWidget */ 26/* TRANSLATOR OpieObex::SendWidget */
26 27
28/* Just for backward compatibility */
29#if OPIE_VERSION < 102010
30 #define OResource Resource
31#endif
32
27SendWidget::SendWidget( QWidget* parent, const char* name ) 33SendWidget::SendWidget( QWidget* parent, const char* name )
28 : obexSendBase( parent, name ) { 34 : obexSendBase( parent, name ) {
29 initUI(); 35 initUI();
30} 36}
31SendWidget::~SendWidget() { 37SendWidget::~SendWidget() {
32} 38}
33void SendWidget::initUI() { 39void SendWidget::initUI() {
34 m_obex = new Obex(this, "obex"); 40 m_obex = new Obex(this, "obex");
35 connect(m_obex, SIGNAL(error(int) ), 41 connect(m_obex, SIGNAL(error(int) ),
36 this, SLOT(slotIrError(int) ) ); 42 this, SLOT(slotIrError(int) ) );
37 connect(m_obex, SIGNAL(sent(bool) ), 43 connect(m_obex, SIGNAL(sent(bool) ),
38 this, SLOT(slotIrSent(bool) ) ); 44 this, SLOT(slotIrSent(bool) ) );
39 connect(m_obex, SIGNAL(currentTry(unsigned int) ), 45 connect(m_obex, SIGNAL(currentTry(unsigned int) ),
40 this, SLOT(slotIrTry(unsigned int) ) ); 46 this, SLOT(slotIrTry(unsigned int) ) );
41 47
42 QCopChannel* chan = new QCopChannel("QPE/IrDaAppletBack", this ); 48 QCopChannel* chan = new QCopChannel("QPE/IrDaAppletBack", this );
43 connect(chan, SIGNAL(received(const QCString&,const QByteArray&) ), 49 connect(chan, SIGNAL(received(const QCString&,const QByteArray&) ),
44 this, SLOT(dispatchIrda(const QCString&,const QByteArray&) ) ); 50 this, SLOT(dispatchIrda(const QCString&,const QByteArray&) ) );
45 51
46 m_btobex = new BtObex(this, "btobex"); 52 m_btobex = new BtObex(this, "btobex");
47 connect(m_btobex, SIGNAL(error(int) ), 53 connect(m_btobex, SIGNAL(error(int) ),
48 this, SLOT(slotBtError(int) ) ); 54 this, SLOT(slotBtError(int) ) );
49 connect(m_btobex, SIGNAL(sent(bool) ), 55 connect(m_btobex, SIGNAL(sent(bool) ),
50 this, SLOT(slotBtSent(bool) ) ); 56 this, SLOT(slotBtSent(bool) ) );
51 connect(m_btobex, SIGNAL(currentTry(unsigned int) ), 57 connect(m_btobex, SIGNAL(currentTry(unsigned int) ),
52 this, SLOT(slotBtTry(unsigned int) ) ); 58 this, SLOT(slotBtTry(unsigned int) ) );
53 59
54 chan = new QCopChannel("QPE/BluetoothBack", this ); 60 chan = new QCopChannel("QPE/BluetoothBack", this );
55 connect(chan, SIGNAL(received(const QCString&,const QByteArray&) ), 61 connect(chan, SIGNAL(received(const QCString&,const QByteArray&) ),
56 this, SLOT(dispatchBt(const QCString&,const QByteArray&) ) ); 62 this, SLOT(dispatchBt(const QCString&,const QByteArray&) ) );
57 63
58} 64}
59 65
60/* 66/*
61 * in send we'll first set everything up 67 * in send we'll first set everything up
62 * and then wait for a list of devices. 68 * and then wait for a list of devices.
63 */ 69 */
64void SendWidget::send( const QString& file, const QString& desc ) { 70void SendWidget::send( const QString& file, const QString& desc ) {
65 m_file = file; 71 m_file = file;
66 m_irDa.clear(); 72 m_irDa.clear();
67 m_start = 0; 73 m_start = 0;
68 74
69 fileToSend->setText(desc.isEmpty() ? file : desc ); 75 fileToSend->setText(desc.isEmpty() ? file : desc );
70 scan_for_receivers(); 76 scan_for_receivers();
71} 77}
72 78
73int SendWidget::addReceiver(const char *r, const char *icon) 79int SendWidget::addReceiver(const char *r, const char *icon)
74{ 80{
75 QListViewItem * item = new QListViewItem( receiverList, 0 ); 81 QListViewItem * item = new QListViewItem( receiverList, 0 );
76 item->setText( 0, r); 82 item->setText( 0, r);
77 item->setPixmap( 1, OResource::loadPixmap( icon ) ); 83 item->setPixmap( 1, OResource::loadPixmap( icon ) );
78 84
79 int id=receivers.count(); 85 int id=receivers.count();
80 receivers[id]=item; 86 receivers[id]=item;
81 return id; 87 return id;
82} 88}
83 89
84bool SendWidget::receiverSelected(int id) 90bool SendWidget::receiverSelected(int id)
85{ 91{
86 return (bool)(receivers[id]->pixmap(2) != NULL); 92 return (bool)(receivers[id]->pixmap(2) != NULL);
87} 93}
88 94
89void SendWidget::setReceiverStatus( int id, const QString& status ) { 95void SendWidget::setReceiverStatus( int id, const QString& status ) {
90 if ( !receivers.contains(id) ) return; 96 if ( !receivers.contains(id) ) return;
91 receivers[id]->setText(3, status ); 97 receivers[id]->setText(3, status );
92} 98}
93 99
94void SendWidget::slotIrDaDevices( const QStringList& list) { 100void SendWidget::slotIrDaDevices( const QStringList& list) {
95 for (QStringList::ConstIterator it = list.begin(); 101 for (QStringList::ConstIterator it = list.begin();
96 it != list.end(); ++it ) { 102 it != list.end(); ++it ) {
97 int id = addReceiver(*it, "obex/irda.png"); 103 int id = addReceiver(*it, "obex/irda.png");
98 m_irDa.insert( id, (*it) ); 104 m_irDa.insert( id, (*it) );
99 } 105 }
100 irdaStatus->setText( tr("ready.")); 106 irdaStatus->setText( tr("ready."));
101 m_irDaIt = m_irDa.begin(); 107 m_irDaIt = m_irDa.begin();
102 108
103} 109}
104 110
105void SendWidget::slotBTDevices( const QMap<QString, QString>& str ) { 111void SendWidget::slotBTDevices( const QMap<QString, QString>& str ) {
106 for(QMap<QString, QString>::ConstIterator it = str.begin(); 112 for(QMap<QString, QString>::ConstIterator it = str.begin();
107 it != str.end(); ++it ) { 113 it != str.end(); ++it ) {
108 int id = addReceiver(it.key(), "obex/bt.png"); 114 int id = addReceiver(it.key(), "obex/bt.png");
109 m_bt.insert( id, Pair( it.key(), it.data() ) ); 115 m_bt.insert( id, Pair( it.key(), it.data() ) );
110 } 116 }
111 btStatus->setText(tr("ready.")); 117 btStatus->setText(tr("ready."));
112 m_btIt = m_bt.begin(); 118 m_btIt = m_bt.begin();
113 119
114} 120}
115void SendWidget::slotSelectedDevice( int, int ) { 121void SendWidget::slotSelectedDevice( int, int ) {
116/* if ( name == m_irDeSearch ) { 122/* if ( name == m_irDeSearch ) {
117 for (QMap<int, QString>::Iterator it= m_irDa.begin(); it != m_irDa.end(); ++it ) 123 for (QMap<int, QString>::Iterator it= m_irDa.begin(); it != m_irDa.end(); ++it )
118 m_devBox->removeDevice( it.key() ); 124 m_devBox->removeDevice( it.key() );
119 125
120 QCopEnvelope e2("QPE/IrDaApplet", "listDevices()"); 126 QCopEnvelope e2("QPE/IrDaApplet", "listDevices()");
121 }*/ 127 }*/
122} 128}
123void SendWidget::dispatchIrda( const QCString& str, const QByteArray& ar ) { 129void SendWidget::dispatchIrda( const QCString& str, const QByteArray& ar ) {
124 if ( str == "devices(QStringList)" ) { 130 if ( str == "devices(QStringList)" ) {
125 QDataStream stream( ar, IO_ReadOnly ); 131 QDataStream stream( ar, IO_ReadOnly );
126 QStringList list; 132 QStringList list;
127 stream >> list; 133 stream >> list;
128 slotIrDaDevices( list ); 134 slotIrDaDevices( list );
129 } 135 }
130} 136}
131void SendWidget::slotIrError( int ) { 137void SendWidget::slotIrError( int ) {
132 irdaStatus->setText(tr("error :(")); 138 irdaStatus->setText(tr("error :("));
133} 139}
134void SendWidget::slotIrSent( bool b) { 140void SendWidget::slotIrSent( bool b) {
135 QString text = b ? tr("Sent") : tr("Failure"); 141 QString text = b ? tr("Sent") : tr("Failure");
136 setReceiverStatus( m_irDaIt.key(), text ); 142 setReceiverStatus( m_irDaIt.key(), text );
137 ++m_irDaIt; 143 ++m_irDaIt;
138 slotStartIrda(); 144 slotStartIrda();
139} 145}
140void SendWidget::slotIrTry(unsigned int trI) { 146void SendWidget::slotIrTry(unsigned int trI) {
141 setReceiverStatus(m_irDaIt.key(), tr("Try %1").arg( QString::number( trI ) )); 147 setReceiverStatus(m_irDaIt.key(), tr("Try %1").arg( QString::number( trI ) ));
142} 148}
143void SendWidget::slotStartIrda() { 149void SendWidget::slotStartIrda() {
144 if ( !m_irDa.count() ) 150 if ( !m_irDa.count() )
145 return; 151 return;
146 if ( m_irDaIt == m_irDa.end() || !receiverSelected(m_irDaIt.key())) { 152 if ( m_irDaIt == m_irDa.end() || !receiverSelected(m_irDaIt.key())) {
147 irdaStatus->setText(tr("complete.")); 153 irdaStatus->setText(tr("complete."));
148 return; 154 return;
149 } 155 }
150 setReceiverStatus( m_irDaIt.key(), tr("Start sending") ); 156 setReceiverStatus( m_irDaIt.key(), tr("Start sending") );
151 m_obex->send( m_file, tr("noaddress") ); 157 m_obex->send( m_file, tr("noaddress") );
152} 158}
153 159
154void SendWidget::dispatchBt( const QCString& str, const QByteArray& ar ) { 160void SendWidget::dispatchBt( const QCString& str, const QByteArray& ar ) {
155 if ( str == "devices(QStringMap)" ) { 161 if ( str == "devices(QStringMap)" ) {
156 QDataStream stream( ar, IO_ReadOnly ); 162 QDataStream stream( ar, IO_ReadOnly );
157 QMap<QString, QString> btmap; 163 QMap<QString, QString> btmap;
158 stream >> btmap; 164 stream >> btmap;
159 slotBTDevices( btmap ); 165 slotBTDevices( btmap );
160 } 166 }
161} 167}
162void SendWidget::slotBtError( int ) { 168void SendWidget::slotBtError( int ) {
163 btStatus->setText(tr("error :(")); 169 btStatus->setText(tr("error :("));
164} 170}
165void SendWidget::slotBtSent( bool b) { 171void SendWidget::slotBtSent( bool b) {
166 QString text = b ? tr("Sent") : tr("Failure"); 172 QString text = b ? tr("Sent") : tr("Failure");
167 setReceiverStatus( m_btIt.key(), text ); 173 setReceiverStatus( m_btIt.key(), text );
168 ++m_btIt; 174 ++m_btIt;
169 slotStartBt(); 175 slotStartBt();
170} 176}
171void SendWidget::slotBtTry(unsigned int trI) { 177void SendWidget::slotBtTry(unsigned int trI) {
172 setReceiverStatus( m_btIt.key(), tr("Try %1").arg( QString::number( trI ) ) ); 178 setReceiverStatus( m_btIt.key(), tr("Try %1").arg( QString::number( trI ) ) );
173} 179}
174void SendWidget::slotStartBt() { 180void SendWidget::slotStartBt() {
175 // skip past unselected receivers 181 // skip past unselected receivers
176 while((m_btIt != m_bt.end()) && !receiverSelected(m_btIt.key())) 182 while((m_btIt != m_bt.end()) && !receiverSelected(m_btIt.key()))
177 ++m_btIt; 183 ++m_btIt;
178 if (m_btIt == m_bt.end() ) { 184 if (m_btIt == m_bt.end() ) {
179 btStatus->setText(tr("complete.")); 185 btStatus->setText(tr("complete."));
180 return; 186 return;
181 } 187 }
182 setReceiverStatus( m_btIt.key(), tr("Start sending") ); 188 setReceiverStatus( m_btIt.key(), tr("Start sending") );
183 m_btobex->send( m_file, m_btIt.data().second() ); 189 m_btobex->send( m_file, m_btIt.data().second() );
184} 190}
185 191
186void SendWidget::send_to_receivers() { 192void SendWidget::send_to_receivers() {
187 slotStartIrda(); 193 slotStartIrda();
188 slotStartBt(); 194 slotStartBt();
189} 195}
190 196
191void SendWidget::scan_for_receivers() 197void SendWidget::scan_for_receivers()
192{ 198{
193 receiverList->clear(); 199 receiverList->clear();
194 receivers.clear(); 200 receivers.clear();
195 sendButton->setDisabled( true ); 201 sendButton->setDisabled( true );
196 202
197 if ( !QCopChannel::isRegistered("QPE/IrDaApplet") ) 203 if ( !QCopChannel::isRegistered("QPE/IrDaApplet") )
198 { 204 {
199 irdaStatus->setText(tr("not enabled.")); 205 irdaStatus->setText(tr("not enabled."));
200 } 206 }
201 else 207 else
202 { 208 {
203 QCopEnvelope e1("QPE/IrDaApplet", "enableIrda()"); 209 QCopEnvelope e1("QPE/IrDaApplet", "enableIrda()");
204 irdaStatus->setText(tr("searching...")); 210 irdaStatus->setText(tr("searching..."));
205 sendButton->setEnabled( true ); 211 sendButton->setEnabled( true );
206 QCopEnvelope e2("QPE/IrDaApplet", "listDevices()"); 212 QCopEnvelope e2("QPE/IrDaApplet", "listDevices()");
207 } 213 }
208 214
209 if ( !QCopChannel::isRegistered("QPE/Bluetooth") ) 215 if ( !QCopChannel::isRegistered("QPE/Bluetooth") )
210 { 216 {
211 btStatus->setText(tr("not enabled.")); 217 btStatus->setText(tr("not enabled."));
212 } 218 }
213 else 219 else
214 { 220 {
215 QCopEnvelope e1("QPE/Bluetooth", "enableBluetooth()"); 221 QCopEnvelope e1("QPE/Bluetooth", "enableBluetooth()");
216 btStatus->setText(tr("searching...")); 222 btStatus->setText(tr("searching..."));
217 sendButton->setEnabled( true ); 223 sendButton->setEnabled( true );
218 QCopEnvelope e3("QPE/Bluetooth", "listDevices()"); 224 QCopEnvelope e3("QPE/Bluetooth", "listDevices()");