kde-extraapps/ark/plugins/karchiveplugin/karchiveplugin.h

71 lines
2.1 KiB
C
Raw Normal View History

2014-11-18 17:46:34 +00:00
/*
* ark -- archiver for the KDE project
*
* Copyright (C) 2007 Henrique Pinto <henrique.pinto@kdemail.net>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program 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, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
#ifndef KARCHIVEPLUGIN_H
#define KARCHIVEPLUGIN_H
#include "kerfuffle/archiveinterface.h"
using namespace Kerfuffle;
class KArchive;
class KArchiveEntry;
class KArchiveDirectory;
class KArchiveInterface: public ReadWriteArchiveInterface
{
Q_OBJECT
public:
explicit KArchiveInterface(QObject *parent = 0, const QVariantList &args = QVariantList());
~KArchiveInterface();
bool list();
bool copyFiles(const QList<QVariant> &files, const QString &destinationDirectory, ExtractionOptions options);
bool addFiles(const QStringList &files, const CompressionOptions &options);
bool deleteFiles(const QList<QVariant> & files);
private:
enum {
OverwriteYes,
OverwriteSkip,
OverwriteAll,
OverwriteAutoSkip,
OverwriteCancel
};
bool browseArchive(KArchive *archive);
bool processDir(const KArchiveDirectory *dir, const QString & prefix = QString());
void createEntryFor(const KArchiveEntry *aentry, const QString& prefix);
QString permissionsString(mode_t perm);
void getAllEntries(const KArchiveDirectory *dir, const QString &prefix, QList< QVariant > &list);
int handleFileExistsMessage(const QString &dir, const QString &fileName);
KArchive *archive();
KArchive *m_archive;
};
#endif // KARCHIVEPLUGIN_H