summaryrefslogtreecommitdiff
authorzecke <zecke>2004-11-20 18:11:28 (UTC)
committer zecke <zecke>2004-11-20 18:11:28 (UTC)
commit244e3fd05f01859a82243347ddc11318788cefb2 (patch) (unidiff)
tree2dc49366e4cc6f704b6e7c15f579df87a7099579
parentd6ca3f9c89204880938391c0b5a70a33b6808f18 (diff)
downloadopie-244e3fd05f01859a82243347ddc11318788cefb2.zip
opie-244e3fd05f01859a82243347ddc11318788cefb2.tar.gz
opie-244e3fd05f01859a82243347ddc11318788cefb2.tar.bz2
Stop fooling the user and allow receiving of files only if
Ir::supported returns true. This is the case if our obex implementation is loaded
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/applets/irdaapplet/irda.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/core/applets/irdaapplet/irda.cpp b/core/applets/irdaapplet/irda.cpp
index 6148308..7709bed 100644
--- a/core/applets/irdaapplet/irda.cpp
+++ b/core/applets/irdaapplet/irda.cpp
@@ -1,364 +1,368 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2002 David Woodhouse <dwmw2@infradead.org> 2** Copyright (C) 2002 David Woodhouse <dwmw2@infradead.org>
3** Max Reiss <harlekin@handhelds.org> [trivial stuff] 3** Max Reiss <harlekin@handhelds.org> [trivial stuff]
4** Robert Griebl <sandman@handhelds.org> 4** Robert Griebl <sandman@handhelds.org>
5** Holger Freyther <zecke@handhelds.org> QCOP Interface 5** Holger Freyther <zecke@handhelds.org> QCOP Interface
6** 6**
7** This file may be distributed and/or modified under the terms of the 7** This file may be distributed and/or modified under the terms of the
8** GNU General Public License version 2 as published by the Free Software 8** GNU General Public License version 2 as published by the Free Software
9** Foundation and appearing in the file LICENSE.GPL included in the 9** Foundation and appearing in the file LICENSE.GPL included in the
10** packaging of this file. 10** packaging of this file.
11** 11**
12** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 12** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
13** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 13** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
14** 14**
15**********************************************************************/ 15**********************************************************************/
16 16
17#include "irda.h" 17#include "irda.h"
18 18
19/* OPIE */ 19/* OPIE */
20#include <opie2/otaskbarapplet.h> 20#include <opie2/otaskbarapplet.h>
21#include <qpe/applnk.h> 21#include <qpe/applnk.h>
22#include <qpe/resource.h> 22#include <qpe/resource.h>
23#include <qpe/qcopenvelope_qws.h> 23#include <qpe/qcopenvelope_qws.h>
24using namespace Opie::Ui; 24#include <qpe/ir.h>
25
25 26
26/* QT */ 27/* QT */
27#include <qpainter.h> 28#include <qpainter.h>
28#include <qfile.h> 29#include <qfile.h>
29#include <qtimer.h> 30#include <qtimer.h>
30#include <qtextstream.h> 31#include <qtextstream.h>
31 32
32/* STD */ 33/* STD */
33#include <unistd.h> 34#include <unistd.h>
34#include <net/if.h> 35#include <net/if.h>
35#include <netinet/in.h> 36#include <netinet/in.h>
36#include <sys/types.h> 37#include <sys/types.h>
37#include <sys/socket.h> 38#include <sys/socket.h>
38#include <sys/ioctl.h> 39#include <sys/ioctl.h>
39 40
40//=========================================================================== 41//===========================================================================
41 42
42IrdaApplet::IrdaApplet ( QWidget *parent, const char *name ) 43IrdaApplet::IrdaApplet ( QWidget *parent, const char *name )
43 : QWidget ( parent, name ) 44 : QWidget ( parent, name )
44{ 45{
45 setFixedHeight( AppLnk::smallIconSize() ); 46 setFixedHeight( AppLnk::smallIconSize() );
46 setFixedWidth( AppLnk::smallIconSize() ); 47 setFixedWidth( AppLnk::smallIconSize() );
47 48
48 m_sockfd = ::socket ( PF_INET, SOCK_DGRAM, IPPROTO_IP ); 49 m_sockfd = ::socket ( PF_INET, SOCK_DGRAM, IPPROTO_IP );
49 50
50 m_irdaOnPixmap = Resource::loadImage( "irdaapplet/irdaon" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize()); 51 m_irdaOnPixmap = Resource::loadImage( "irdaapplet/irdaon" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize());
51 m_irdaOffPixmap = Resource::loadImage( "irdaapplet/irdaoff" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize()); 52 m_irdaOffPixmap = Resource::loadImage( "irdaapplet/irdaoff" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize());
52 m_irdaDiscoveryOnPixmap = Resource::loadImage( "irdaapplet/magglass" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize()); 53 m_irdaDiscoveryOnPixmap = Resource::loadImage( "irdaapplet/magglass" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize());
53 m_receiveActivePixmap = Resource::loadImage( "irdaapplet/receive" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize()); 54 m_receiveActivePixmap = Resource::loadImage( "irdaapplet/receive" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize());
54 55
55 m_irda_active = false; 56 m_irda_active = false;
56 m_irda_discovery_active = false; 57 m_irda_discovery_active = false;
57 m_receive_active = false; 58 m_receive_active = false;
58 m_receive_state_changed = false; 59 m_receive_state_changed = false;
59 m_popup = 0; 60 m_popup = 0;
60 m_wasOn = false; 61 m_wasOn = false;
61 m_wasDiscover = false; 62 m_wasDiscover = false;
62 63
63 QCopChannel* chan = new QCopChannel("QPE/IrDaApplet", this ); 64 QCopChannel* chan = new QCopChannel("QPE/IrDaApplet", this );
64 connect(chan, SIGNAL(received(const QCString&,const QByteArray&) ), 65 connect(chan, SIGNAL(received(const QCString&,const QByteArray&) ),
65 this, SLOT(slotMessage(const QCString&,const QByteArray&) ) ); 66 this, SLOT(slotMessage(const QCString&,const QByteArray&) ) );
66} 67}
67 68
68int IrdaApplet::position() 69int IrdaApplet::position()
69{ 70{
70 return 6; 71 return 6;
71} 72}
72 73
73void IrdaApplet::show() 74void IrdaApplet::show()
74{ 75{
75 QWidget::show ( ); 76 QWidget::show ( );
76 startTimer ( 2000 ); 77 startTimer ( 2000 );
77} 78}
78 79
79IrdaApplet::~IrdaApplet() 80IrdaApplet::~IrdaApplet()
80{ 81{
81 if ( m_sockfd >= 0 ) 82 if ( m_sockfd >= 0 )
82 ::close ( m_sockfd ); 83 ::close ( m_sockfd );
83} 84}
84 85
85void IrdaApplet::popup ( QString message, QString icon ) 86void IrdaApplet::popup ( QString message, QString icon )
86{ 87{
87 if ( !m_popup ) 88 if ( !m_popup )
88 m_popup = new QPopupMenu ( this ); 89 m_popup = new QPopupMenu ( this );
89 90
90 m_popup-> clear ( ); 91 m_popup-> clear ( );
91 92
92 if ( icon. isEmpty ( )) 93 if ( icon. isEmpty ( ))
93 m_popup-> insertItem ( message, 0 ); 94 m_popup-> insertItem ( message, 0 );
94 else 95 else
95 m_popup-> insertItem ( QIconSet ( Resource::loadPixmap ( icon )), message, 0 ); 96 m_popup-> insertItem ( QIconSet ( Resource::loadPixmap ( icon )), message, 0 );
96 97
97 QPoint p = mapToGlobal ( QPoint ( 0, 0 )); 98 QPoint p = mapToGlobal ( QPoint ( 0, 0 ));
98 QSize s = m_popup-> sizeHint ( ); 99 QSize s = m_popup-> sizeHint ( );
99 m_popup-> popup ( QPoint ( p. x ( ) + ( width ( ) / 2 ) - ( s. width ( ) / 2 ), 100 m_popup-> popup ( QPoint ( p. x ( ) + ( width ( ) / 2 ) - ( s. width ( ) / 2 ),
100 p. y ( ) - s. height ( ))); 101 p. y ( ) - s. height ( )));
101 102
102 QTimer::singleShot ( 2000, this, SLOT( popupTimeout())); 103 QTimer::singleShot ( 2000, this, SLOT( popupTimeout()));
103} 104}
104 105
105void IrdaApplet::popupTimeout ( ) 106void IrdaApplet::popupTimeout ( )
106{ 107{
107 m_popup-> hide ( ); 108 m_popup-> hide ( );
108} 109}
109 110
110bool IrdaApplet::checkIrdaStatus ( ) 111bool IrdaApplet::checkIrdaStatus ( )
111{ 112{
112 struct ifreq ifr; 113 struct ifreq ifr;
113 strcpy ( ifr. ifr_name, "irda0" ); 114 strcpy ( ifr. ifr_name, "irda0" );
114 115
115 if ( ::ioctl ( m_sockfd, SIOCGIFFLAGS, &ifr ) < 0 ) 116 if ( ::ioctl ( m_sockfd, SIOCGIFFLAGS, &ifr ) < 0 )
116 return false; 117 return false;
117 118
118 return ( ifr. ifr_flags & IFF_UP ); 119 return ( ifr. ifr_flags & IFF_UP );
119} 120}
120 121
121bool IrdaApplet::setIrdaStatus ( bool b ) 122bool IrdaApplet::setIrdaStatus ( bool b )
122{ 123{
123 struct ifreq ifr; 124 struct ifreq ifr;
124 strcpy ( ifr. ifr_name, "irda0" ); 125 strcpy ( ifr. ifr_name, "irda0" );
125 126
126 if ( ::ioctl ( m_sockfd, SIOCGIFFLAGS, &ifr ) < 0 ) 127 if ( ::ioctl ( m_sockfd, SIOCGIFFLAGS, &ifr ) < 0 )
127 return false; 128 return false;
128 129
129 if ( b ) { 130 if ( b ) {
130 ifr. ifr_flags |= IFF_UP; 131 ifr. ifr_flags |= IFF_UP;
131 } 132 }
132 else { 133 else {
133 setIrdaDiscoveryStatus ( 0 ); 134 setIrdaDiscoveryStatus ( 0 );
134 setIrdaReceiveStatus ( 0 ); 135 setIrdaReceiveStatus ( 0 );
135 ifr. ifr_flags &= ~IFF_UP; 136 ifr. ifr_flags &= ~IFF_UP;
136 } 137 }
137 138
138 if ( ::ioctl ( m_sockfd, SIOCSIFFLAGS, &ifr ) < 0 ) 139 if ( ::ioctl ( m_sockfd, SIOCSIFFLAGS, &ifr ) < 0 )
139 return false; 140 return false;
140 141
141 return true; 142 return true;
142} 143}
143 144
144bool IrdaApplet::checkIrdaDiscoveryStatus ( ) 145bool IrdaApplet::checkIrdaDiscoveryStatus ( )
145{ 146{
146 QFile discovery ( "/proc/sys/net/irda/discovery" ); 147 QFile discovery ( "/proc/sys/net/irda/discovery" );
147 148
148 QString streamIn = "0"; 149 QString streamIn = "0";
149 150
150 if ( discovery. open ( IO_ReadOnly )) { 151 if ( discovery. open ( IO_ReadOnly )) {
151 QTextStream stream ( &discovery ); 152 QTextStream stream ( &discovery );
152 streamIn = stream. read ( ); 153 streamIn = stream. read ( );
153 } 154 }
154 155
155 return streamIn. toInt ( ) > 0; 156 return streamIn. toInt ( ) > 0;
156} 157}
157 158
158 159
159bool IrdaApplet::setIrdaDiscoveryStatus ( bool d ) 160bool IrdaApplet::setIrdaDiscoveryStatus ( bool d )
160{ 161{
161 QFile discovery ( "/proc/sys/net/irda/discovery" ); 162 QFile discovery ( "/proc/sys/net/irda/discovery" );
162 163
163 if ( discovery. open ( IO_WriteOnly | IO_Raw )) { 164 if ( discovery. open ( IO_WriteOnly | IO_Raw )) {
164 discovery.putch ( d ? '1' : '0' ); 165 discovery.putch ( d ? '1' : '0' );
165 return true; 166 return true;
166 } 167 }
167 return false; 168 return false;
168} 169}
169 170
170 171
171bool IrdaApplet::setIrdaReceiveStatus ( bool d ) 172bool IrdaApplet::setIrdaReceiveStatus ( bool d )
172{ 173{
173 QCopEnvelope e ( "QPE/Obex", "receive(int)" ); 174 QCopEnvelope e ( "QPE/Obex", "receive(int)" );
174 e << ( d ? 1 : 0 ); 175 e << ( d ? 1 : 0 );
175 176
176 m_receive_active = d; 177 m_receive_active = d;
177 m_receive_state_changed = true; 178 m_receive_state_changed = true;
178 179
179 return true; 180 return true;
180} 181}
181 182
182 183
183void IrdaApplet::showDiscovered ( ) 184void IrdaApplet::showDiscovered ( )
184{ 185{
185 //static Sound snd_found ( "irdaapplet/irdaon" ); 186 //static Sound snd_found ( "irdaapplet/irdaon" );
186 //static Sound snd_lost ( "irdaapplet/irdaoff" ); 187 //static Sound snd_lost ( "irdaapplet/irdaoff" );
187 188
188 QFile discovery ( "/proc/net/irda/discovery" ); 189 QFile discovery ( "/proc/net/irda/discovery" );
189 190
190 if ( discovery. open ( IO_ReadOnly )) { 191 if ( discovery. open ( IO_ReadOnly )) {
191 bool qcopsend = false; 192 bool qcopsend = false;
192 193
193 QString discoveredDevice; 194 QString discoveredDevice;
194 QString deviceAddr; 195 QString deviceAddr;
195 196
196 // since it is /proc we _must_ use QTextStream 197 // since it is /proc we _must_ use QTextStream
197 QStringList list = QStringList::split ( "\n", QTextStream ( &discovery ). read ( )); 198 QStringList list = QStringList::split ( "\n", QTextStream ( &discovery ). read ( ));
198 199
199 QMap <QString, QString>::Iterator it; 200 QMap <QString, QString>::Iterator it;
200 201
201 for ( it = m_devices. begin ( ); it != m_devices. end ( ); ++it ) 202 for ( it = m_devices. begin ( ); it != m_devices. end ( ); ++it )
202 it. data ( ). prepend ( "+++" ); 203 it. data ( ). prepend ( "+++" );
203 204
204 for ( QStringList::Iterator lit = list. begin ( ); lit != list. end ( ); ++lit ) { 205 for ( QStringList::Iterator lit = list. begin ( ); lit != list. end ( ); ++lit ) {
205 const QString &line = *lit; 206 const QString &line = *lit;
206 207
207 if ( line. startsWith ( "nickname:" )) { 208 if ( line. startsWith ( "nickname:" )) {
208 discoveredDevice = line. mid ( line. find ( ':' ) + 2, line. find ( ',' ) - line. find ( ':' ) - 2 ); 209 discoveredDevice = line. mid ( line. find ( ':' ) + 2, line. find ( ',' ) - line. find ( ':' ) - 2 );
209 deviceAddr = line. mid ( line. find ( "daddr:" ) + 9, 8 ); 210 deviceAddr = line. mid ( line. find ( "daddr:" ) + 9, 8 );
210 211
211 // odebug << discoveredDevice + "(" + deviceAddr + ")" << oendl; 212 // odebug << discoveredDevice + "(" + deviceAddr + ")" << oendl;
212 213
213 if ( !m_devices. contains ( deviceAddr )) { 214 if ( !m_devices. contains ( deviceAddr )) {
214 popup ( tr( "Found:" ) + " " + discoveredDevice ); 215 popup ( tr( "Found:" ) + " " + discoveredDevice );
215 //snd_found. play ( ); 216 //snd_found. play ( );
216 qcopsend = true; 217 qcopsend = true;
217 } 218 }
218 m_devices. replace ( deviceAddr, discoveredDevice ); 219 m_devices. replace ( deviceAddr, discoveredDevice );
219 } 220 }
220 } 221 }
221 222
222 for ( it = m_devices. begin ( ); it != m_devices. end ( ); ) { 223 for ( it = m_devices. begin ( ); it != m_devices. end ( ); ) {
223 // odebug << "IrdaMon: delete " + it.currentKey() + "=" + *devicesAvailable[it.currentKey()] + "?" << oendl; 224 // odebug << "IrdaMon: delete " + it.currentKey() + "=" + *devicesAvailable[it.currentKey()] + "?" << oendl;
224 225
225 if ( it. data ( ). left ( 3 ) == "+++" ) { 226 if ( it. data ( ). left ( 3 ) == "+++" ) {
226 popup ( tr( "Lost:" ) + " " + it. data ( ). mid ( 3 )); 227 popup ( tr( "Lost:" ) + " " + it. data ( ). mid ( 3 ));
227 //snd_lost. play ( ); 228 //snd_lost. play ( );
228 229
229 QMap <QString, QString>::Iterator tmp = it; 230 QMap <QString, QString>::Iterator tmp = it;
230 tmp++; 231 tmp++;
231 m_devices. remove ( it ); // in contrast to QValueListIterator this remove doesn't return the next Iterator 232 m_devices. remove ( it ); // in contrast to QValueListIterator this remove doesn't return the next Iterator
232 it = tmp; 233 it = tmp;
233 234
234 qcopsend = true; 235 qcopsend = true;
235 } 236 }
236 else 237 else
237 it++; 238 it++;
238 } 239 }
239 // XXX if( qcopsend ) { 240 // XXX if( qcopsend ) {
240 QCopEnvelope e ( "QPE/Network", "irdaSend(bool)" ); 241 QCopEnvelope e ( "QPE/Network", "irdaSend(bool)" );
241 e << ( m_devices. count ( ) > 0 ); 242 e << ( m_devices. count ( ) > 0 );
242 // } 243 // }
243 } 244 }
244} 245}
245 246
246void IrdaApplet::mousePressEvent ( QMouseEvent * ) 247void IrdaApplet::mousePressEvent ( QMouseEvent * )
247{ 248{
248 QPopupMenu *menu = new QPopupMenu ( this ); 249 QPopupMenu *menu = new QPopupMenu ( this );
249 QString cmd; 250 QString cmd;
250 251
251 /* Refresh active state */ 252 /* Refresh active state */
252 timerEvent ( 0 ); 253 timerEvent ( 0 );
253 254
254 //menu->insertItem( tr("More..."), 4 ); 255 //menu->insertItem( tr("More..."), 4 );
255 256
256 if ( m_irda_active && !m_devices. isEmpty ( )) { 257 if ( m_irda_active && !m_devices. isEmpty ( )) {
257 menu-> insertItem ( tr( "Discovered Device:" ), 9 ); 258 menu-> insertItem ( tr( "Discovered Device:" ), 9 );
258 259
259 for ( QMap<QString, QString>::Iterator it = m_devices. begin ( ); it != m_devices. end ( ); ++it ) 260 for ( QMap<QString, QString>::Iterator it = m_devices. begin ( ); it != m_devices. end ( ); ++it )
260 menu-> insertItem ( *it ); 261 menu-> insertItem ( *it );
261 262
262 menu-> insertSeparator ( ); 263 menu-> insertSeparator ( );
263 } 264 }
264 265
265 menu-> insertItem ( m_irda_active ? tr( "Disable IrDA" ) : tr( "Enable IrDA" ), 0 ); 266 menu-> insertItem ( m_irda_active ? tr( "Disable IrDA" ) : tr( "Enable IrDA" ), 0 );
266 267
267 if ( m_irda_active ) { 268 if ( m_irda_active ) {
268 menu-> insertItem ( m_irda_discovery_active ? tr( "Disable Discovery" ) : tr( "Enable Discovery" ), 1 ); 269 menu-> insertItem ( m_irda_discovery_active ? tr( "Disable Discovery" ) : tr( "Enable Discovery" ), 1 );
269 menu-> insertItem ( m_receive_active ? tr( "Disable Receive" ) : tr( "Enable Receive" ), 2 ); 270
271 /* Only Receive if OBEX is installed */
272 if( Ir::supported() )
273 menu-> insertItem ( m_receive_active ? tr( "Disable Receive" ) : tr( "Enable Receive" ), 2 );
270 } 274 }
271 275
272 QPoint p = mapToGlobal ( QPoint ( 0, 0 ) ); 276 QPoint p = mapToGlobal ( QPoint ( 0, 0 ) );
273 QSize s = menu-> sizeHint ( ); 277 QSize s = menu-> sizeHint ( );
274 278
275 p = QPoint ( p. x ( ) + ( width ( ) / 2 ) - ( s. width ( ) / 2 ), p. y ( ) - s. height ( )); 279 p = QPoint ( p. x ( ) + ( width ( ) / 2 ) - ( s. width ( ) / 2 ), p. y ( ) - s. height ( ));
276 280
277 switch ( menu-> exec ( p )) { 281 switch ( menu-> exec ( p )) {
278 case 0: 282 case 0:
279 setIrdaStatus ( !m_irda_active ); 283 setIrdaStatus ( !m_irda_active );
280 timerEvent ( 0 ); 284 timerEvent ( 0 );
281 break; 285 break;
282 case 1: 286 case 1:
283 setIrdaDiscoveryStatus ( !m_irda_discovery_active ); 287 setIrdaDiscoveryStatus ( !m_irda_discovery_active );
284 timerEvent ( 0 ); 288 timerEvent ( 0 );
285 break; 289 break;
286 case 2: 290 case 2:
287 setIrdaReceiveStatus ( !m_receive_active ); 291 setIrdaReceiveStatus ( !m_receive_active );
288 timerEvent( 0 ); 292 timerEvent( 0 );
289 break; 293 break;
290 } 294 }
291 295
292 delete menu; 296 delete menu;
293} 297}
294 298
295void IrdaApplet::timerEvent ( QTimerEvent * ) 299void IrdaApplet::timerEvent ( QTimerEvent * )
296{ 300{
297 bool oldactive = m_irda_active; 301 bool oldactive = m_irda_active;
298 bool olddiscovery = m_irda_discovery_active; 302 bool olddiscovery = m_irda_discovery_active;
299 bool receiveUpdate = false; 303 bool receiveUpdate = false;
300 304
301 if ( m_receive_state_changed ) { 305 if ( m_receive_state_changed ) {
302 receiveUpdate = true; 306 receiveUpdate = true;
303 m_receive_state_changed = false; 307 m_receive_state_changed = false;
304 } 308 }
305 309
306 m_irda_active = checkIrdaStatus ( ); 310 m_irda_active = checkIrdaStatus ( );
307 m_irda_discovery_active = checkIrdaDiscoveryStatus ( ); 311 m_irda_discovery_active = checkIrdaDiscoveryStatus ( );
308 312
309 if ( m_irda_discovery_active ) 313 if ( m_irda_discovery_active )
310 showDiscovered ( ); 314 showDiscovered ( );
311 315
312 if (( m_irda_active != oldactive ) || ( m_irda_discovery_active != olddiscovery ) || receiveUpdate ) 316 if (( m_irda_active != oldactive ) || ( m_irda_discovery_active != olddiscovery ) || receiveUpdate )
313 update ( ); 317 update ( );
314} 318}
315 319
316void IrdaApplet::paintEvent ( QPaintEvent * ) 320void IrdaApplet::paintEvent ( QPaintEvent * )
317{ 321{
318 QPainter p( this ); 322 QPainter p( this );
319 323
320 p.drawPixmap( 0, 1, m_irda_active ? m_irdaOnPixmap : m_irdaOffPixmap ); 324 p.drawPixmap( 0, 1, m_irda_active ? m_irdaOnPixmap : m_irdaOffPixmap );
321 325
322 if ( m_irda_discovery_active ) 326 if ( m_irda_discovery_active )
323 p.drawPixmap( 0, 1, m_irdaDiscoveryOnPixmap ); 327 p.drawPixmap( 0, 1, m_irdaDiscoveryOnPixmap );
324 328
325 if ( m_receive_active ) 329 if ( m_receive_active )
326 p.drawPixmap( 0, 1, m_receiveActivePixmap ); 330 p.drawPixmap( 0, 1, m_receiveActivePixmap );
327} 331}
328/* 332/*
329 * We know 3 calls 333 * We know 3 calls
330 * a) enable 334 * a) enable
331 * b) disable 335 * b) disable
332 * a and b will temp enable the IrDa device and disable will disable it again if it wasn't on 336 * a and b will temp enable the IrDa device and disable will disable it again if it wasn't on
333 * c) listDevices: We will return a list of known devices 337 * c) listDevices: We will return a list of known devices
334 */ 338 */
335void IrdaApplet::slotMessage( const QCString& str, const QByteArray& ) { 339void IrdaApplet::slotMessage( const QCString& str, const QByteArray& ) {
336 if ( str == "enableIrda()") { 340 if ( str == "enableIrda()") {
337 m_wasOn = checkIrdaStatus(); 341 m_wasOn = checkIrdaStatus();
338 m_wasDiscover = checkIrdaDiscoveryStatus(); 342 m_wasDiscover = checkIrdaDiscoveryStatus();
339 if (!m_wasOn) { 343 if (!m_wasOn) {
340 setIrdaStatus( true ); 344 setIrdaStatus( true );
341 } 345 }
342 if ( !m_wasDiscover ) { 346 if ( !m_wasDiscover ) {
343 setIrdaDiscoveryStatus ( true ); 347 setIrdaDiscoveryStatus ( true );
344 } 348 }
345 } else if ( str == "disableIrda()") { 349 } else if ( str == "disableIrda()") {
346 if (!m_wasOn) { 350 if (!m_wasOn) {
347 setIrdaStatus( false ); 351 setIrdaStatus( false );
348 } 352 }
349 if ( !m_wasDiscover ) { 353 if ( !m_wasDiscover ) {
350 setIrdaDiscoveryStatus ( false ); 354 setIrdaDiscoveryStatus ( false );
351 } 355 }
352 } else if ( str == "listDevices()") { 356 } else if ( str == "listDevices()") {
353 QCopEnvelope e("QPE/IrDaAppletBack", "devices(QStringList)"); 357 QCopEnvelope e("QPE/IrDaAppletBack", "devices(QStringList)");
354 358
355 QStringList list; 359 QStringList list;
356 QMap<QString, QString>::Iterator it; 360 QMap<QString, QString>::Iterator it;
357 for (it = m_devices.begin(); it != m_devices.end(); ++it ) 361 for (it = m_devices.begin(); it != m_devices.end(); ++it )
358 list << (*it); 362 list << (*it);
359 363
360 e << list; 364 e << list;
361 } 365 }
362} 366}
363 367
364EXPORT_OPIE_APPLET_v1( IrdaApplet ) 368EXPORT_OPIE_APPLET_v1( IrdaApplet )