//
//     Copyright 2008 Jim Bublitz <jbublitz@nwinternet.com>
//     Earlier copyrights 1998 - 2007 Jim Bublitz also apply

//                 Generated by twine

// This file is part of PyKDE4.

// PyKDE4 is free software; you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation; either version 2.1 of
// the License, or (at your option) any later version.

// PyKDE4 is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.

// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.

%ModuleHeaderCode
#include <copyjob.h>
%End

namespace KIO
{

class CopyInfo
{
%TypeHeaderCode
#include <copyjob.h>
%End


public:
    KUrl uSource;
    KUrl uDest;
    QString linkDest;
    int permissions;
    time_t ctime;
    time_t mtime;
    KIO::filesize_t size;
};   // CopyInfo


class CopyJob : KIO::Job
{
%TypeHeaderCode
#include <copyjob.h>
%End


public:

    enum CopyMode
    {
        Copy,
        Move,
        Link
    };

    KIO::CopyJob::CopyMode  operationMode () const;
    KUrl::List              srcUrls () const;
    KUrl                    destUrl () const;
    void                    setDefaultPermissions (bool b);
    void                    setAutoSkip (bool autoSkip);
    void                    setWriteIntoExistingDirectories (bool overwriteAllDirs);
    virtual bool            doSuspend ();

signals:
    void                    totalFiles (KJob* job, unsigned long files);
    void                    totalDirs (KJob* job, unsigned long dirs);
    void                    aboutToCreate (KIO::Job* job, const QList<KIO::CopyInfo>& files);
    void                    processedFiles (KIO::Job* job, unsigned long files);
    void                    processedDirs (KIO::Job* job, unsigned long dirs);
    void                    copying (KIO::Job* job, const KUrl& src, const KUrl& dest);
    void                    linking (KIO::Job* job, const QString& target, const KUrl& to);
    void                    moving (KIO::Job* job, const KUrl& from, const KUrl& to);
    void                    creatingDir (KIO::Job* job, const KUrl& dir);
    void                    renamed (KIO::Job* job, const KUrl& from, const KUrl& to);
    void                    copyingDone (KIO::Job* job, const KUrl& from, const KUrl& to, time_t mtime, bool directory, bool renamed);
    void                    copyingLinkDone (KIO::Job* job, const KUrl& from, const QString& target, const KUrl& to);

protected:
    virtual void            slotResult (KJob* job);
//ig                        CopyJob (CopyJobPrivate& dd);
    void                    emitResult ();

//force

private:
                            CopyJob ();
//end

};   // CopyJob

KIO::CopyJob*           copy (const KUrl& src, const KUrl& dest, KIO::JobFlags flags = KIO::DefaultFlags);
KIO::CopyJob*           copyAs (const KUrl& src, const KUrl& dest, KIO::JobFlags flags = KIO::DefaultFlags);
KIO::CopyJob*           copy (const KUrl::List& src, const KUrl& dest, KIO::JobFlags flags = KIO::DefaultFlags);
KIO::CopyJob*           move (const KUrl& src, const KUrl& dest, KIO::JobFlags flags = KIO::DefaultFlags);
KIO::CopyJob*           moveAs (const KUrl& src, const KUrl& dest, KIO::JobFlags flags = KIO::DefaultFlags);
KIO::CopyJob*           move (const KUrl::List& src, const KUrl& dest, KIO::JobFlags flags = KIO::DefaultFlags);
KIO::CopyJob*           link (const KUrl& src, const KUrl& destDir, KIO::JobFlags flags = KIO::DefaultFlags);
KIO::CopyJob*           link (const KUrl::List& src, const KUrl& destDir, KIO::JobFlags flags = KIO::DefaultFlags);
KIO::CopyJob*           linkAs (const KUrl& src, const KUrl& dest, KIO::JobFlags flags = KIO::DefaultFlags);
KIO::CopyJob*           trash (const KUrl& src, KIO::JobFlags flags = KIO::DefaultFlags);
KIO::CopyJob*           trash (const KUrl::List& src, KIO::JobFlags flags = KIO::DefaultFlags);
};   // KIO



%ModuleHeaderCode
#include <copyjob.h>
%End

