Source Code (Use browser search to find items of interest.)

Class Index

krn'KDecode (./kdenetwork/krn/kdecode.h:13)

class KDecode : public QObject
{
    Q_OBJECT;
public:
    KDecode();
    ~KDecode();

    void load(const char *filenames);
    void showWindow();
    static class DwString * decodeString(const char* data, QString type);
    static const char* encodeString(const char* data, QString type);

public slots:
    void decode(int ID,const char *destName=0);
    void decode(int ID,int);

signals:
    void message();
    void busy();

private:
    decoderDlg *dialog;
    QStrList filenames;
};

krn'KDecode::KDecode() (./kdenetwork/krn/kdecode.cpp:39)

KDecode::KDecode()
{
    dialog=new decoderDlg (i18n("KRN-Decoder"));
    connect (dialog->list,SIGNAL(selected(int,int)),this,SLOT(decode(int,int)));
}


krn'KDecode::~KDecode() (./kdenetwork/krn/kdecode.cpp:45)

KDecode::~KDecode()
{
    delete dialog;
}



krn'KDecode::load() (./kdenetwork/krn/kdecode.cpp:51)

void KDecode::load(const char *filename)
{

    filenames.append (filename);
    
}


krn'KDecode::showWindow() (./kdenetwork/krn/kdecode.cpp:58)

void KDecode::showWindow()
{

    switch(UUInitialize())
    {
    case UURET_NOMEM :
        fatal("Could not allocate memory for article decoding");
        break;
    default:
        break;
    } 

    UUSetMsgCallback(NULL,MsgCallBack);
    UUSetBusyCallback(NULL,NULL,0);
    UUSetFileCallback(NULL,NULL);
    UUSetFNameFilter(NULL,NULL);

    UUSetOption (UUOPT_DESPERATE,1,NULL);

    debug ("filecount-->%d",filenames.count());
    for (char *iter=filenames.first();iter!=0;iter=filenames.next())
    {
        debug ("iter");
        UULoadFile(iter,NULL,0);
    }

    

    dialog->list->clear();
    int c=0;
    uulist *l;
    bool flag=false;
    while (1)
    {
        QString t;
        l=UUGetFileListItem(c);
        if (l)
        {
            c++;
            flag=true;
            QString formatted;
            
            if (l->state&UUFILE_MISPART || l->state&UUFILE_NOEND)
            {
                kdebug (KDEBUG_INFO,3300,"Found file with missing parts");
                formatted="{B}\n";
            }
            else if (l->state&UUFILE_OK)
            {
                kdebug (KDEBUG_INFO,3300,"Found ok file");
                formatted="{G}\n";
            }
            else if (l->state&UUFILE_NOBEGIN || l->state&UUFILE_NODATA)
            {
                kdebug (KDEBUG_INFO,3300,"Found very broken file");
                continue;
            }
            t.setNum(l->size);
            formatted+=t+"\n";
            
            formatted=formatted+l->filename+"\n";
            t.setNum(c);
            formatted=t+"\n"+formatted;
            
            dialog->list->insertItem(formatted.data());
        }
        else
            break;
    }
    qApp->setOverrideCursor(arrowCursor);
    dialog->exec();
    qApp->restoreOverrideCursor();

    UUCleanUp();
    filenames.clear();
}


krn'KDecode::decode() (./kdenetwork/krn/kdecode.cpp:135)

void KDecode::decode(int line,int)
{
    decode(line,(char *)0);
}


krn'KDecode::decode() (./kdenetwork/krn/kdecode.cpp:140)

void KDecode::decode(int line,const char *destName)
{
    uulist *l;
    int i=dialog->list->text(line,0).toInt()-1;
    l=UUGetFileListItem(i);
    QString f;
    if (!destName)
        f= KFileDialog::getSaveFileName(QString::null,QString::null,
					0,l->filename);
    else
    {
        f=destName;
        f+="/";
        f+=l->filename;
    }
    if (!f.isEmpty())
    {
        i=UUDecodeFile (l,f.data());
        switch (i)
        {
        case UURET_OK:
                kdebug (KDEBUG_INFO,3300,"decoding ok");
            break;
        case UURET_IOERR:
            warning ("IO error while decoding");
            warning(strerror(UUGetOption(UUOPT_ERRNO,NULL,NULL,0)));
            break;
        case UURET_NOMEM:
            warning ("run out of memory");
            break;
        case UURET_NODATA:
            warning ("No data in file");
            break;
                                                                                                                                            
        case UURET_NOEND:
            warning ("No end of file found");
            break;
        case UURET_EXISTS:
            warning ("File already exists");
            break;
        }
    }
}