author | mickeyl <mickeyl> | 2004-04-05 12:48:49 (UTC) |
---|---|---|
committer | mickeyl <mickeyl> | 2004-04-05 12:48:49 (UTC) |
commit | f1708be741dfb73ceaffb633b44093f2cb2b3d57 (patch) (side-by-side diff) | |
tree | 0bdcab2ac6c5f0e5cac67eb58807a50bb79d82e0 /core/obex | |
parent | 0b481957a2eebf28b05d9803780d05ad4232aa00 (diff) | |
download | opie-f1708be741dfb73ceaffb633b44093f2cb2b3d57.zip opie-f1708be741dfb73ceaffb633b44093f2cb2b3d57.tar.gz opie-f1708be741dfb73ceaffb633b44093f2cb2b3d57.tar.bz2 |
convert core/applets/* to Opie debug framework
-rw-r--r-- | core/obex/obexsend.cpp | 29 | ||||
-rw-r--r-- | core/obex/receiver.cpp | 41 |
2 files changed, 37 insertions, 33 deletions
diff --git a/core/obex/obexsend.cpp b/core/obex/obexsend.cpp index cd8d58e..f3dd11c 100644 --- a/core/obex/obexsend.cpp +++ b/core/obex/obexsend.cpp @@ -1,255 +1,256 @@ +#include "obex.h" +#include "obexsend.h" +using namespace OpieObex; + +/* OPIE */ +#include <opie2/odebug.h> +#include <qpe/qcopenvelope_qws.h> +using namespace Opie::Core; + +/* QT */ #include <qpushbutton.h> #include <qlabel.h> #include <qlayout.h> #include <qtimer.h> - -#include <qpe/qcopenvelope_qws.h> - -#include "obex.h" -#include "obexsend.h" - -using namespace OpieObex; - /* TRANSLATOR OpieObex::SendWidget */ - SendWidget::SendWidget( QWidget* parent, const char* name ) : QWidget( parent, name ) { initUI(); } SendWidget::~SendWidget() { } void SendWidget::initUI() { m_obex = new Obex(this, "obex"); connect(m_obex, SIGNAL(error(int) ), this, SLOT(slotIrError(int) ) ); connect(m_obex, SIGNAL(sent(bool) ), this, SLOT(slotIrSent(bool) ) ); connect(m_obex, SIGNAL(currentTry(unsigned int) ), this, SLOT(slotIrTry(unsigned int) ) ); QCopChannel* chan = new QCopChannel("QPE/IrDaAppletBack", this ); connect(chan, SIGNAL(received(const QCString&,const QByteArray&) ), this, SLOT(dispatchIrda(const QCString&,const QByteArray&) ) ); chan = new QCopChannel("QPE/BluetoothBack", this ); connect(chan, SIGNAL(received(const QCString&,const QByteArray&) ), this, SLOT(dispatchBt(const QCString&,const QByteArray&) ) ); QVBoxLayout* lay = new QVBoxLayout(this); QHBox* nameBox = new QHBox(this); QLabel* name = new QLabel(nameBox); name->setText( tr("<qt><h1>Sending:</h1></qt>") ); name->setAlignment( AlignLeft | AlignTop ); m_lblFile = new QLabel(nameBox); lay->addWidget(nameBox, 0); QFrame* frame = new QFrame(this); frame->setFrameShape( QFrame::HLine ); frame->setFrameShadow( QFrame::Sunken ); lay->addWidget(frame, 10); QLabel* devices = new QLabel(this); devices->setText("<qt><b>Devices:</b></qt>"); devices->setAlignment( AlignLeft | AlignTop ); lay->addWidget( devices,10 ); m_devBox = new DeviceBox(this); lay->addWidget( m_devBox, 50 ); connect(m_devBox, SIGNAL(selectedDevice(int,int) ), this, SLOT(slotSelectedDevice(int,int) ) ); QPushButton *but = new QPushButton(this); but->setText(tr("Done") ); connect(but, SIGNAL(clicked() ), this, SLOT(slotDone() ) ); lay->addWidget( but ); m_lay = lay; // QT does not like if you add items to an layout which already exits.... // and was layouted invalidate() does not help too // so we use RichText.... } /* * in send we'll first set everything up * and then wait for a list of devices. */ void SendWidget::send( const QString& file, const QString& desc ) { m_file = file; m_irDa.clear(); m_start = 0; m_lblFile->setText(desc.isEmpty() ? file : desc ); if ( !QCopChannel::isRegistered("QPE/IrDaApplet") ) { m_irDeSearch = m_devBox->addDevice( tr("IrDa is not enabled!"), DeviceBox::Error ); m_start++; }else m_irDeSearch = m_devBox->addDevice( tr("Searching for IrDa Devices."), DeviceBox::Search ); if ( !QCopChannel::isRegistered("QPE/Bluetooth") ) { m_btDeSearch = m_devBox->addDevice( tr("Bluetooth is not available"), DeviceBox::Error ); m_start++; }else m_btDeSearch = m_devBox->addDevice( tr("Searching for bluetooth Devices."), DeviceBox::Search ); if (m_start != 2 ) { QCopEnvelope e0("QPE/IrDaApplet", "enableIrda()"); QCopEnvelope e1("QPE/Bluetooth", "enableBluetooth()"); QCopEnvelope e2("QPE/IrDaApplet", "listDevices()"); QCopEnvelope e3("QPE/Bluetooth", "listDevices()"); } } void SendWidget::slotIrDaDevices( const QStringList& list) { - qWarning("slot it irda devices "); + owarn << "slot it irda devices " << oendl; for (QStringList::ConstIterator it = list.begin(); it != list.end(); ++it ) { int id = m_devBox->addDevice( (*it), DeviceBox::IrDa, tr("Scheduling for beam.") ); m_irDa.insert( id, (*it) ); } m_devBox->removeDevice( m_irDeSearch ); m_irDaIt = m_irDa.begin(); slotStartIrda(); } void SendWidget::slotBTDevices( const QMap<QString, QString>& str ) { for(QMap<QString, QString>::ConstIterator it = str.begin(); it != str.end(); ++it ) { int id = m_devBox->addDevice( it.key(), DeviceBox::BT, tr("Click to beam") ); m_bt.insert( id, Pair( it.key(), it.data() ) ); } m_devBox->removeDevice( m_btDeSearch ); } void SendWidget::slotSelectedDevice( int name, int dev ) { - qWarning("Start beam? %d %d", name, dev ); + owarn << "Start beam? " << name << " " << dev << "" << oendl; if ( name == m_irDeSearch ) { for (QMap<int, QString>::Iterator it= m_irDa.begin(); it != m_irDa.end(); ++it ) m_devBox->removeDevice( it.key() ); QCopEnvelope e2("QPE/IrDaApplet", "listDevices()"); } } void SendWidget::dispatchIrda( const QCString& str, const QByteArray& ar ) { - qWarning("dispatch irda %s", str.data() ); + owarn << "dispatch irda " << str.data() << "" << oendl; if ( str == "devices(QStringList)" ) { QDataStream stream( ar, IO_ReadOnly ); QStringList list; stream >> list; slotIrDaDevices( list ); } } void SendWidget::dispatchBt( const QCString&, const QByteArray& ) { } void SendWidget::slotIrError( int ) { } void SendWidget::slotIrSent( bool b) { - qWarning("irda sent!!"); + owarn << "irda sent!!" << oendl; QString text = b ? tr("Sent") : tr("Failure"); m_devBox->setStatus( m_irDaIt.key(), text ); ++m_irDaIt; slotStartIrda(); } void SendWidget::slotIrTry(unsigned int trI) { m_devBox->setStatus( m_irDaIt.key(), tr("Try %1").arg( QString::number( trI ) ) ); } void SendWidget::slotStartIrda() { if (m_irDaIt == m_irDa.end() ) { m_irDeSearch = m_devBox->addDevice(tr("Search again for IrDa."), DeviceBox::Search ); return; } m_devBox->setStatus( m_irDaIt.key(), tr("Start sending") ); m_obex->send( m_file ); } void SendWidget::closeEvent( QCloseEvent* e) { e->accept(); // make sure QTimer::singleShot(0, this, SLOT(slotDone() ) ); } void SendWidget::slotDone() { QCopEnvelope e0("QPE/IrDaApplet", "disableIrda()"); QCopEnvelope e1("QPE/Bluetooth", "disableBluetooth()"); emit done(); } QString SendWidget::file()const { return m_file; } DeviceBox::DeviceBox( QWidget* parent ) : QTextBrowser( parent ) { } DeviceBox::~DeviceBox() { } int DeviceBox::addDevice( const QString& name, int dev, const QString& status ) { /* return a id for a range of devices */ int id = idFor ( dev ); DeviceItem item( name, status, dev,id ); m_dev.insert( id, item ); setText( allText() ); return id; } void DeviceBox::removeDevice( int id ) { if (!m_dev.contains(id) ) return; m_dev.remove( id ); setText( allText() ); } void DeviceBox::setStatus( int id, const QString& status ) { if ( !m_dev.contains(id) ) return; m_dev[id].setStatus(status ); setText( allText() ); } void DeviceBox::setSource( const QString& str ) { - qWarning("SetSource:%d", str.toInt() ); + owarn << "SetSource:" << str.toInt() << "" << oendl; int id = str.toInt(); emit selectedDevice( id, m_dev[id].device() ); } int DeviceBox::idFor ( int id ) { static int irId = 1501; static int irBT = 1001; static int irSr = 501; static int irEr = 0; int ret = -1; switch(id ) { case IrDa: ret = irId; irId++; break; case BT: ret = irBT; irBT++; break; case Search: ret = irSr; irSr++; break; case Error: ret = irEr; irEr++; break; } return ret; } QString DeviceBox::allText() { QString str; typedef QMap<int, DeviceItem> DeviceMap; for (QMap<int, DeviceItem>::Iterator it = m_dev.begin(); it != m_dev.end(); ++it ) { str += it.data().toString() + "<br>"; } return str; } DeviceItem::DeviceItem( const QString& name, const QString& status, int dev, int id) { m_name = name; m_status = status; m_dev = dev; m_id = id; } diff --git a/core/obex/receiver.cpp b/core/obex/receiver.cpp index ee2668b..8885256 100644 --- a/core/obex/receiver.cpp +++ b/core/obex/receiver.cpp @@ -1,199 +1,202 @@ -#include <sys/types.h> -#include <sys/stat.h> -#include <sys/mman.h> -#include <stdlib.h> // int system -#include <unistd.h> +#include "obex.h" +#include "receiver.h" +using namespace OpieObex; -#include <fcntl.h> +/* OPIE */ +#include <opie2/odebug.h> +#include <qpe/applnk.h> +#include <qpe/qpeapplication.h> +#include <qpe/qcopenvelope_qws.h> +using namespace Opie::Core; +/* QT */ #include <qfileinfo.h> #include <qlabel.h> #include <qtextview.h> #include <qpushbutton.h> -#include <qpe/applnk.h> -#include <qpe/qpeapplication.h> -#include <qpe/qcopenvelope_qws.h> - -#include "obex.h" -#include "receiver.h" - -using namespace OpieObex; +/* STD */ +#include <sys/types.h> +#include <sys/stat.h> +#include <sys/mman.h> +#include <stdlib.h> // int system +#include <unistd.h> +#include <fcntl.h> /* TRANSLATOR OpieObex::Receiver */ Receiver::Receiver() { m_obex = new Obex(this, "Receiver"); connect(m_obex, SIGNAL(receivedFile(const QString&) ), this, SLOT(slotReceived(const QString&) ) ); m_obex->receive(); } Receiver::~Receiver() { m_obex->setReceiveEnabled( false ); delete m_obex; } void Receiver::slotReceived( const QString& _file ) { QString file = _file; int check = checkFile(file); if ( check == AddressBook ) handleAddr( file ); else if ( check == Datebook ) handleDateTodo( file ); else handleOther( file ); } void Receiver::handleAddr( const QString& str ) { QCopEnvelope e("QPE/Application/addressbook", "setDocument(QString)" ); e << str; } /* we can not say for sure if it's a VEevent ot VTodo */ void Receiver::handleDateTodo( const QString& str ) { QCopEnvelope e0("QPE/Application/todolist", "setDocument(QString)"); e0 << str; QCopEnvelope e1("QPE/Application/datebook", "setDocument(QString)" ); e1 << str; } /* * Handle other asks if it should accept the * beamed object and creates a DocLnk */ void Receiver::handleOther( const QString& other ) { OtherHandler* hand = new OtherHandler(); hand->handle( other ); } void Receiver::tidyUp( QString& _file, const QString& ending) { /* libversit fails on BASE64 encoding we try to sed it away */ QString file = _file; char foo[24]; // big enough (void)::strcpy(foo, "/tmp/opie-XXXXXX"); int fd = ::mkstemp(foo); if ( fd == -1 ) return; (void)::strncat( foo, ending.latin1(), 4 ); _file = QString::fromLatin1( foo ); QString cmd = QString("sed -e \"s/^\\(X-MICROSOFT-BODYINK\\)\\;/\\1:/;\" < %2 > %2 ").arg( Global::shellQuote(file)).arg( Global::shellQuote(_file) ); - qWarning("Executing: %s", cmd.latin1() ); + owarn << "Executing: " << cmd << "" << oendl; (void)::system( cmd.latin1() ); cmd = QString("rm %1").arg( Global::shellQuote(file) ); (void)::system( cmd.latin1() ); } int Receiver::checkFile( QString& file ) { - qWarning("check file!! %s", file.latin1() ); + owarn << "check file!! " << file << "" << oendl; int ret; QString ending; if (file.right(4) == ".vcs" ) { ret = Datebook; ending = QString::fromLatin1(".vcs"); }else if ( file.right(4) == ".vcf") { ret = AddressBook; ending = QString::fromLatin1(".vcf"); }else ret = Other; if (ending.isEmpty() ) return ret; /** * currently the parser is broken in regard of BASE64 encoding * and M$ likes to send that. So we will executed a small * tidy up system sed script * At this point we can also remove umlaute from the filename */ tidyUp( file, ending ); - qWarning("check it now %d", ret ); + owarn << "check it now " << ret << "" << oendl; return ret; } /* TRANSLATOR OpieObex::OtherHandler */ OtherHandler::OtherHandler() : QVBox() { QHBox* box = new QHBox(this); QLabel* lbl = new QLabel(box); lbl->setText(tr("<qt><b>Received:</b></qt>")); m_na = new QLabel(box); QFrame* frame = new QFrame(this); frame->setFrameShape( QFrame::HLine ); frame->setFrameShadow( QFrame::Sunken ); m_view = new QTextView(this); box = new QHBox(this); QPushButton *but = new QPushButton(box); but->setText(tr("Accept") ); connect(but, SIGNAL(clicked() ), this, SLOT(accept()) ); but = new QPushButton(box); but->setText(tr("Deny") ); connect(but, SIGNAL(clicked() ), this, SLOT(deny() ) ); raise(); showMaximized(); } OtherHandler::~OtherHandler() { } void OtherHandler::handle( const QString& file ) { m_file = file; m_na->setText(file); DocLnk lnk(file); - qWarning(" %s %s", lnk.type().latin1(), lnk.icon().latin1() ); + owarn << " " << lnk.type() << " " << lnk.icon() << "" << oendl; QString str = tr("<p>You received a file of type %1 (<img src=\"%2\"> )What do you want to do?").arg(lnk.type() ).arg(lnk.icon() ); m_view->setText( str ); } /* * hehe evil evil mmap ahead :) * we quickly copy the file and then we'll create a DocLnk for it */ void OtherHandler::accept() { QString na = targetName( m_file ); copy(m_file, na ); DocLnk lnk(na); lnk.writeLink(); QFile::remove(m_file); delete this; } void OtherHandler::deny() { QFile::remove( m_file ); delete this; } QString OtherHandler::targetName( const QString& file ) { QFileInfo info( file ); /* $HOME needs to be set!!!! */ Global::createDocDir(); QString newFile = QPEApplication::documentDir()+ "/"+ info.baseName(); QString newFileBase = newFile; int trie = 0; while (QFile::exists(newFile + "."+info.extension() ) ) { newFile = newFileBase + "_"+QString::number(trie) ; trie++; } newFile += "." + info.extension(); return newFile; } /* fast cpy */ void OtherHandler::copy(const QString& src, const QString& file) { - qWarning("src %s, dest %s", src.latin1(),file.latin1() ); + owarn << "src " << src << ", dest " << file << "" << oendl; QString cmd = QString("mv %1 %2").arg( Global::shellQuote( src )). arg( Global::shellQuote( file ) ); ::system( cmd.latin1() ); // done } |