summaryrefslogtreecommitdiff
authorkorovkin <korovkin>2006-11-10 20:49:54 (UTC)
committer korovkin <korovkin>2006-11-10 20:49:54 (UTC)
commit961e5561b24452d9cfc2bf7400f6f5952b31431c (patch) (unidiff)
tree44439765333edad675966ce33f88427240cdbb0e
parentb742daec72bbef07039b785dcadca9dca9a0dc1c (diff)
downloadopie-961e5561b24452d9cfc2bf7400f6f5952b31431c.zip
opie-961e5561b24452d9cfc2bf7400f6f5952b31431c.tar.gz
opie-961e5561b24452d9cfc2bf7400f6f5952b31431c.tar.bz2
Made list of receivers loaded form files saved by bt-manager.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/obex/obexsend.cpp53
-rw-r--r--core/obex/obexsend.h3
2 files changed, 52 insertions, 4 deletions
diff --git a/core/obex/obexsend.cpp b/core/obex/obexsend.cpp
index 5c177e3..bca6784 100644
--- a/core/obex/obexsend.cpp
+++ b/core/obex/obexsend.cpp
@@ -1,31 +1,34 @@
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;
10using namespace OpieTooth;
10 11
11/* OPIE */ 12/* OPIE */
12#include <opie2/odebug.h> 13#include <opie2/odebug.h>
13#include <qpe/qcopenvelope_qws.h> 14#include <qpe/qcopenvelope_qws.h>
14#include <opie2/oresource.h> 15#include <opie2/oresource.h>
15#include <qpe/version.h> 16#include <qpe/version.h>
17#include <devicehandler.h>
18#include "remotedevice.h"
16 19
17using namespace Opie::Core; 20using namespace Opie::Core;
18 21
19/* QT */ 22/* QT */
20#include <qlabel.h> 23#include <qlabel.h>
21#include <qpushbutton.h> 24#include <qpushbutton.h>
22#include <qpixmap.h> 25#include <qpixmap.h>
23#include <qlistview.h> 26#include <qlistview.h>
24 27
25#include <unistd.h> 28#include <unistd.h>
26/* TRANSLATOR OpieObex::SendWidget */ 29/* TRANSLATOR OpieObex::SendWidget */
27 30
28/* Just for backward compatibility */ 31/* Just for backward compatibility */
29#if OPIE_VERSION < 102010 32#if OPIE_VERSION < 102010
30 #define OResource Resource 33 #define OResource Resource
31#endif 34#endif
@@ -60,39 +63,39 @@ void SendWidget::initUI() {
60 chan = new QCopChannel("QPE/BluetoothBack", this ); 63 chan = new QCopChannel("QPE/BluetoothBack", this );
61 connect(chan, SIGNAL(received(const QCString&,const QByteArray&) ), 64 connect(chan, SIGNAL(received(const QCString&,const QByteArray&) ),
62 this, SLOT(dispatchBt(const QCString&,const QByteArray&) ) ); 65 this, SLOT(dispatchBt(const QCString&,const QByteArray&) ) );
63 66
64} 67}
65 68
66/* 69/*
67 * in send we'll first set everything up 70 * in send we'll first set everything up
68 * and then wait for a list of devices. 71 * and then wait for a list of devices.
69 */ 72 */
70void SendWidget::send( const QString& file, const QString& desc ) { 73void SendWidget::send( const QString& file, const QString& desc ) {
71 m_file = file; 74 m_file = file;
72 m_irDa.clear(); 75 m_irDa.clear();
73 m_start = 0; 76 m_start = 0;
74 77
75 fileToSend->setText(desc.isEmpty() ? file : desc ); 78 fileToSend->setText(desc.isEmpty() ? file : desc );
76 scan_for_receivers(); 79 read_receivers();
77} 80}
78 81
79int SendWidget::addReceiver(const char *r, const char *icon) 82int SendWidget::addReceiver(const QString& str, const char *icon)
80{ 83{
81 QListViewItem * item = new QListViewItem( receiverList, 0 ); 84 QListViewItem * item = new QListViewItem( receiverList, 0 );
82 item->setText( 0, r); 85 item->setText( 0, str );
83 item->setPixmap( 1, OResource::loadPixmap( icon ) ); 86 item->setPixmap( 1, OResource::loadPixmap( icon ) );
84 87
85 int id=receivers.count(); 88 int id=receivers.count();
86 receivers[id]=item; 89 receivers[id]=item;
87 return id; 90 return id;
88} 91}
89 92
90bool SendWidget::receiverSelected(int id) 93bool SendWidget::receiverSelected(int id)
91{ 94{
92 return (bool)(receivers[id]->pixmap(2) != NULL); 95 return (bool)(receivers[id]->pixmap(2) != NULL);
93} 96}
94 97
95void SendWidget::setReceiverStatus( int id, const QString& status ) { 98void SendWidget::setReceiverStatus( int id, const QString& status ) {
96 if ( !receivers.contains(id) ) return; 99 if ( !receivers.contains(id) ) return;
97 receivers[id]->setText(3, status ); 100 receivers[id]->setText(3, status );
98} 101}
@@ -181,32 +184,76 @@ void SendWidget::slotStartBt() {
181 // skip past unselected receivers 184 // skip past unselected receivers
182 while((m_btIt != m_bt.end()) && !receiverSelected(m_btIt.key())) 185 while((m_btIt != m_bt.end()) && !receiverSelected(m_btIt.key()))
183 ++m_btIt; 186 ++m_btIt;
184 if (m_btIt == m_bt.end() ) { 187 if (m_btIt == m_bt.end() ) {
185 btStatus->setText(tr("complete.")); 188 btStatus->setText(tr("complete."));
186 return; 189 return;
187 } 190 }
188 setReceiverStatus( m_btIt.key(), tr("Start sending") ); 191 setReceiverStatus( m_btIt.key(), tr("Start sending") );
189 m_btobex->send( m_file, m_btIt.data().second() ); 192 m_btobex->send( m_file, m_btIt.data().second() );
190} 193}
191 194
192void SendWidget::send_to_receivers() { 195void SendWidget::send_to_receivers() {
193 slotStartIrda(); 196 slotStartIrda();
194 slotStartBt(); 197 slotStartBt();
195} 198}
196 199
200/**
201 * Read receivers saved by bluetooth manager
202 */
203void SendWidget::read_receivers()
204{
205 QValueList<RemoteDevice> devices;
206 DeviceHandler handler;
207 QValueList<RemoteDevice>::ConstIterator it;
208
209 receiverList->clear();
210 receivers.clear();
211 sendButton->setDisabled( true );
212
213 if ( !QCopChannel::isRegistered("QPE/IrDaApplet") )
214 {
215 irdaStatus->setText(tr("not enabled."));
216 }
217 else
218 {
219 QCopEnvelope e1("QPE/IrDaApplet", "enableIrda()");
220 irdaStatus->setText(tr("ready"));
221 sendButton->setEnabled( true );
222 }
223 if ( !QCopChannel::isRegistered("QPE/Bluetooth") )
224 {
225 btStatus->setText(tr("not enabled."));
226 }
227 else
228 {
229 QCopEnvelope e1("QPE/Bluetooth", "enableBluetooth()");
230
231 devices = handler.load();
232 for( it = devices.begin(); it != devices.end() ; ++it )
233 {
234 int id = addReceiver((*it).name(), "obex/bt.png");
235 m_bt.insert(id, Pair((*it).name(), (*it).mac()));
236 }
237 btStatus->setText(tr("ready."));
238 m_btIt = m_bt.begin();
239 sendButton->setEnabled( true );
240 }
241}
242
243
197void SendWidget::scan_for_receivers() 244void SendWidget::scan_for_receivers()
198{ 245{
199 receiverList->clear(); 246 receiverList->clear();
200 receivers.clear(); 247 receivers.clear();
201 sendButton->setDisabled( true ); 248 sendButton->setDisabled( true );
202 249
203 if ( !QCopChannel::isRegistered("QPE/IrDaApplet") ) 250 if ( !QCopChannel::isRegistered("QPE/IrDaApplet") )
204 { 251 {
205 irdaStatus->setText(tr("not enabled.")); 252 irdaStatus->setText(tr("not enabled."));
206 } 253 }
207 else 254 else
208 { 255 {
209 QCopEnvelope e1("QPE/IrDaApplet", "enableIrda()"); 256 QCopEnvelope e1("QPE/IrDaApplet", "enableIrda()");
210 irdaStatus->setText(tr("searching...")); 257 irdaStatus->setText(tr("searching..."));
211 sendButton->setEnabled( true ); 258 sendButton->setEnabled( true );
212 QCopEnvelope e2("QPE/IrDaApplet", "listDevices()"); 259 QCopEnvelope e2("QPE/IrDaApplet", "listDevices()");
diff --git a/core/obex/obexsend.h b/core/obex/obexsend.h
index 030e180..f9ba340 100644
--- a/core/obex/obexsend.h
+++ b/core/obex/obexsend.h
@@ -31,32 +31,33 @@ namespace OpieObex {
31 QString first()const{ return m_first; } 31 QString first()const{ return m_first; }
32 QString second()const { return m_second; } 32 QString second()const { return m_second; }
33 private: 33 private:
34 QString m_first; 34 QString m_first;
35 QString m_second; 35 QString m_second;
36 }; 36 };
37 class SendWidget : public obexSendBase { 37 class SendWidget : public obexSendBase {
38 Q_OBJECT 38 Q_OBJECT
39 public: 39 public:
40 SendWidget( QWidget* parent = 0, const char* name = 0); 40 SendWidget( QWidget* parent = 0, const char* name = 0);
41 ~SendWidget(); 41 ~SendWidget();
42 42
43 QString file()const; 43 QString file()const;
44 44
45 protected: 45 protected:
46 void closeEvent( QCloseEvent* ); 46 void closeEvent( QCloseEvent* );
47 void read_receivers();
47 48
48 public slots: 49 public slots:
49 void send( const QString& file, const QString& desc ); 50 void send( const QString& file, const QString& desc );
50 51
51 signals: 52 signals:
52 void done(); 53 void done();
53 54
54 protected slots: 55 protected slots:
55 virtual void userDone(); 56 virtual void userDone();
56 virtual void send_to_receivers(); 57 virtual void send_to_receivers();
57 virtual void scan_for_receivers(); 58 virtual void scan_for_receivers();
58 virtual void toggle_receiver(QListViewItem* item); 59 virtual void toggle_receiver(QListViewItem* item);
59 60
60 private slots: // QCOP slots 61 private slots: // QCOP slots
61 /* IrDa Names*/ 62 /* IrDa Names*/
62 void slotIrDaDevices( const QStringList& ); 63 void slotIrDaDevices( const QStringList& );
@@ -66,33 +67,33 @@ namespace OpieObex {
66 67
67 void dispatchIrda( const QCString& str, const QByteArray& ar ); 68 void dispatchIrda( const QCString& str, const QByteArray& ar );
68 69
69 void slotIrError( int ); 70 void slotIrError( int );
70 void slotIrSent(bool); 71 void slotIrSent(bool);
71 void slotIrTry(unsigned int ); 72 void slotIrTry(unsigned int );
72 void slotStartIrda(); 73 void slotStartIrda();
73 74
74 void dispatchBt( const QCString& str, const QByteArray& ar ); 75 void dispatchBt( const QCString& str, const QByteArray& ar );
75 void slotBtError( int ); 76 void slotBtError( int );
76 void slotBtSent(bool); 77 void slotBtSent(bool);
77 void slotBtTry(unsigned int ); 78 void slotBtTry(unsigned int );
78 void slotStartBt(); 79 void slotStartBt();
79 80
80 private: 81 private:
81 void initUI(); 82 void initUI();
82 int addReceiver(const char *r, const char *icon); 83 int addReceiver(const QString& str, const char *icon);
83 void setReceiverStatus( int id, const QString& status ); 84 void setReceiverStatus( int id, const QString& status );
84 bool receiverSelected(int id); 85 bool receiverSelected(int id);
85 86
86 int m_start; 87 int m_start;
87 QMap<int, QString> m_irDa; 88 QMap<int, QString> m_irDa;
88 QMap<int, QString>::Iterator m_irDaIt; 89 QMap<int, QString>::Iterator m_irDaIt;
89 QMap<int, Pair > m_bt; 90 QMap<int, Pair > m_bt;
90 QMap<int, Pair>::Iterator m_btIt; 91 QMap<int, Pair>::Iterator m_btIt;
91 QMap<int, QListViewItem *> receivers; 92 QMap<int, QListViewItem *> receivers;
92 QString m_file; 93 QString m_file;
93 Obex* m_obex; 94 Obex* m_obex;
94 BtObex* m_btobex; 95 BtObex* m_btobex;
95 }; 96 };
96} 97}
97 98
98#endif 99#endif