ark
archivebase.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include "archivebase.h"
00027 #include "internaljobs.h"
00028
00029 #include <kdebug.h>
00030 #include <ThreadWeaver/Job>
00031 #include <ThreadWeaver/Weaver>
00032
00033 #include <QFile>
00034 #include <QDir>
00035 #include <QList>
00036 #include <QStringList>
00037 #include <QDateTime>
00038
00039 namespace Kerfuffle
00040 {
00041 ArchiveBase::ArchiveBase( ReadOnlyArchiveInterface *archive )
00042 : QObject(), Archive(), m_iface( archive )
00043 {
00044 Q_ASSERT( archive );
00045 archive->setParent( this );
00046
00047 }
00048
00049 ArchiveBase::~ArchiveBase()
00050 {
00051 delete m_iface;
00052 m_iface = 0;
00053 }
00054
00055 bool ArchiveBase::isReadOnly()
00056 {
00057 return m_iface->isReadOnly();
00058 }
00059
00060 KJob* ArchiveBase::open()
00061 {
00062 return 0;
00063 }
00064
00065 KJob* ArchiveBase::create()
00066 {
00067 return 0;
00068 }
00069
00070 ListJob* ArchiveBase::list()
00071 {
00072 return new ListJob( m_iface, this );
00073 }
00074
00075 DeleteJob* ArchiveBase::deleteFiles( const QList<QVariant> & files )
00076 {
00077 if ( m_iface->isReadOnly() )
00078 {
00079 return 0;
00080 }
00081 return new DeleteJob( files, static_cast<ReadWriteArchiveInterface*>( m_iface ), this );
00082 }
00083
00084 AddJob* ArchiveBase::addFiles( const QStringList & files )
00085 {
00086 Q_ASSERT( !m_iface->isReadOnly() );
00087 return new AddJob( files, static_cast<ReadWriteArchiveInterface*>( m_iface ), this );
00088 }
00089
00090 ExtractJob* ArchiveBase::copyFiles( const QList<QVariant> & files, const QString & destinationDir, bool preservePaths )
00091 {
00092 return new ExtractJob( files, destinationDir, preservePaths, m_iface, this );
00093 }
00094
00095 QString ArchiveBase::fileName()
00096 {
00097 return m_iface->filename();
00098 }
00099
00100 }
00101
00102 #include "archivebase.moc"