Diffstat (limited to 'core/applets/irdaapplet/irda.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | core/applets/irdaapplet/irda.cpp | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/core/applets/irdaapplet/irda.cpp b/core/applets/irdaapplet/irda.cpp index c3ddff2..84c656f 100644 --- a/core/applets/irdaapplet/irda.cpp +++ b/core/applets/irdaapplet/irda.cpp @@ -4,2 +4,3 @@ ** Robert Griebl <sandman@handhelds.org> +** Holger Freyther <zecke@handhelds.org> QCOP Interface ** @@ -15,2 +16,4 @@ +#include <qcopchannel_qws.h> + #include <qpe/qpeapplication.h> @@ -56,2 +59,7 @@ IrdaApplet::IrdaApplet ( QWidget *parent, const char *name ) m_popup = 0; + m_wasOn = false; + + QCopChannel* chan = new QCopChannel("QPE/IrDaApplet", this ); + connect(chan, SIGNAL(received(const QCString&,const QByteArray&) ), + this, SLOT(slotMessage(const QCString&, const QByteArray& ) ) ); } @@ -313 +321,27 @@ void IrdaApplet::paintEvent ( QPaintEvent * ) } +/* + * We know 3 calls + * a) enable + * b) disable + * a and b will temp enable the IrDa device and disable will disable it again if it wasn't on + * c) listDevices: We will return a list of known devices + */ +void IrdaApplet::slotMessage( const QCString& str, const QByteArray& ar ) { + if ( str == "enableIrda()") { + m_wasOn = checkIrdaStatus(); + if (!m_wasOn) + setIrdaStatus( true ); + }else if ( str == "disableIrda()") { + if (!m_wasOn) + setIrdaStatus( false ); + }else if ( str == "listDevices()") { + QCopEnvelope e("QPE/IrDaAppletBack", "devices(QStringList)"); + + QStringList list; + QMap<QString, QString>::Iterator it; + for (it = m_devices.begin(); it != m_devices.end(); ++it ) + list << (*it); + + e << list; + } +} |