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

dccprogress.cpp

Go to the documentation of this file.
00001 #include <qprogressbar.h>
00002 #include <qlabel.h>
00003 #include <qvbox.h>
00004 
00005 #include "dcctransfer.h"
00006 #include "dcctransferrecv.h"
00007 #include "dccprogress.h"
00008 
00009 DCCProgress::DCCProgress(DCCTransfer::Type type, Q_UINT32 ip4Addr, Q_UINT16 port,
00010     const QString &filename, const QString &nickname, unsigned int size, QWidget *parent, char *name, WFlags f)
00011     : QWidget(parent, name, f), m_vbox(new QVBox(this)),
00012     m_label(new QLabel(m_vbox)),
00013     m_bar(new QProgressBar(m_vbox))
00014 {
00015     
00016     if (DCCTransfer::Recv == type)
00017        m_transfer = new DCCTransferRecv(ip4Addr, port, filename, size); 
00018 
00019     
00020     connect(m_transfer, SIGNAL(progress(int)), this, SLOT(slotSetProgress(int)));
00021     connect(m_transfer, SIGNAL(finished(DCCTransfer *, DCCTransfer::EndCode)), 
00022             this, SLOT(slotFinished(DCCTransfer *, DCCTransfer::EndCode)));
00023     
00024     m_label->setText(tr("Receiving file %1 from %2...").arg(m_transfer->filename()).arg(nickname));
00025     
00026     m_label->show();
00027     m_bar->show();
00028     show();
00029     
00030 }
00031 
00032 bool DCCProgress::finished()
00033 {
00034     return ( m_transfer == 0);
00035 }
00036 
00037 void DCCProgress::cancel()
00038 {
00039     if (m_transfer)
00040         m_transfer->cancel();
00041 }
00042 
00043 void DCCProgress::slotSetProgress(int progress)
00044 {
00045     m_bar->setProgress(progress);
00046 }
00047 
00048 void DCCProgress::slotFinished(DCCTransfer *transfer, DCCTransfer::EndCode code)
00049 {
00050     if(transfer != m_transfer)
00051         // WTF!!
00052         return;
00053     
00054     QString msg;
00055     
00056     switch(code) {
00057         case DCCTransfer::Successfull:
00058             msg = tr("Successfully received %1").arg(m_transfer->filename());
00059             break;
00060         case DCCTransfer::SelfAborted:
00061             msg = tr("Aborted");
00062             break;
00063         case DCCTransfer::PeerAborted:
00064             msg = tr("Peer Aborted");
00065             break;
00066         case DCCTransfer::Timeout:
00067             msg = tr("Timeout");
00068             break;
00069     }
00070     
00071     m_label->setText(msg);
00072     delete m_transfer;
00073     m_transfer = 0;
00074 }
00075 

Generated on Sat Nov 5 16:17:40 2005 for OPIE by  doxygen 1.4.2