1 /* 2 SPDX-FileCopyrightText: 2012-2021 Laurent Montel <montel@kde.org> 3 4 SPDX-License-Identifier: GPL-2.0-or-later 5 */ 6 7 #include "archivestorage.h" 8 #include <KLocalizedString> 9 #include <KZip> 10 ArchiveStorage(const QString & filename,QObject * parent)11ArchiveStorage::ArchiveStorage(const QString &filename, QObject *parent) 12 : QObject(parent) 13 , mArchive(new KZip(filename)) 14 { 15 } 16 ~ArchiveStorage()17ArchiveStorage::~ArchiveStorage() 18 { 19 closeArchive(); 20 delete mArchive; 21 } 22 closeArchive()23void ArchiveStorage::closeArchive() 24 { 25 if (mArchive && mArchive->isOpen()) { 26 mArchive->close(); 27 } 28 } 29 filename() const30QString ArchiveStorage::filename() const 31 { 32 if (mArchive) { 33 return mArchive->fileName(); 34 } 35 return QString(); 36 } 37 openArchive(bool write)38bool ArchiveStorage::openArchive(bool write) 39 { 40 const bool result = mArchive->open(write ? QIODevice::WriteOnly : QIODevice::ReadOnly); 41 if (!result) { 42 if (write) { 43 Q_EMIT error(i18n("Archive cannot be opened in write mode.")); 44 } else { 45 Q_EMIT error(i18n("Archive cannot be opened in read mode.")); 46 } 47 } 48 return result; 49 } 50 archive() const51KZip *ArchiveStorage::archive() const 52 { 53 return mArchive; 54 } 55