Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

obexhandler.cpp

Go to the documentation of this file.
00001 
00002 #include <qpe/qcopenvelope_qws.h>
00003 #include <qpe/qpeapplication.h>
00004 
00005 #include "obexsend.h"
00006 #include "receiver.h"
00007 #include "obexhandler.h"
00008 
00009 using namespace OpieObex;
00010 
00011 /* TRANSLATOR OpieObex::ObexHandler */
00012 
00013 ObexHandler::ObexHandler() {
00014     m_wasRec = false;
00015     m_sender = 0l;
00016     m_receiver = 0l;
00017     QCopChannel* chan = new QCopChannel("QPE/Obex");
00018     connect(chan, SIGNAL(received(const QCString&,const QByteArray&) ),
00019             this, SLOT(irdaMessage(const QCString&,const QByteArray&) ) );
00020 }
00021 ObexHandler::~ObexHandler() {
00022     delete m_sender;
00023     delete m_receiver;
00024 }
00025 void ObexHandler::doSend(const QString& str, const QString& desc) {
00026     delete m_sender;
00027     m_sender = new SendWidget;
00028     m_sender->raise();
00029     QPEApplication::showWidget( m_sender );
00030     connect(m_sender, SIGNAL(done() ),
00031             this, SLOT(slotSent() ) );
00032     m_sender->send( str, desc );
00033 }
00034 void ObexHandler::doReceive(bool b) {
00035     if (m_receiver && b ) return; // we should enable receiver and it is on
00036     else if (!m_receiver && !b ) return; // we should disbale receiver and it is off
00037     else if (m_receiver && !b ) {
00038         delete m_receiver;
00039         m_receiver=0;
00040     }else if (!m_receiver && b ) {
00041         m_receiver= new Receiver;
00042     }
00043 }
00044 void ObexHandler::slotSent() {
00045     QString file = m_sender->file();
00046     delete m_sender;
00047     m_sender = 0;
00048     QCopEnvelope e ("QPE/Obex", "done(QString)" );
00049     e << file;
00050     doReceive(m_wasRec );
00051     m_wasRec = false;
00052 }
00053 void ObexHandler::irdaMessage( const QCString& msg, const QByteArray& data) {
00054     QDataStream stream( data, IO_ReadOnly );
00055     if ( msg == "send(QString,QString,QString)" ) {
00056         QString name,  desc;
00057         stream >> desc;
00058         stream >> name;
00059         m_wasRec = (m_receiver != 0 );
00060         doReceive( false );
00061         doSend(name, desc);
00062     }else if (msg == "receive(int)") {
00063         int rec;
00064         stream >> rec;
00065         doReceive(rec);
00066     }
00067 }

Generated on Sat Nov 5 16:15:45 2005 for OPIE by  doxygen 1.4.2