File indexing completed on 2024-04-14 03:50:28

0001 /* This file is part of the KDE libraries
0002    SPDX-FileCopyrightText: 2000-2005 David Faure <faure@kde.org>
0003    SPDX-FileCopyrightText: 2003 Leo Savernik <l.savernik@aon.at>
0004 
0005    SPDX-License-Identifier: LGPL-2.0-or-later
0006 */
0007 
0008 #ifndef KARCHIVE_P_H
0009 #define KARCHIVE_P_H
0010 
0011 #include "karchive.h"
0012 
0013 #include <QSaveFile>
0014 
0015 class KArchivePrivate
0016 {
0017     Q_DECLARE_TR_FUNCTIONS(KArchivePrivate)
0018 
0019 public:
0020     KArchivePrivate(KArchive *parent)
0021         : q(parent)
0022     {
0023     }
0024     ~KArchivePrivate()
0025     {
0026         if (deviceOwned) {
0027             delete dev; // we created it ourselves in open()
0028             dev = nullptr;
0029         }
0030 
0031         delete saveFile;
0032         delete rootDir;
0033     }
0034 
0035     KArchivePrivate(const KArchivePrivate &) = delete;
0036     KArchivePrivate &operator=(const KArchivePrivate &) = delete;
0037 
0038     static bool hasRootDir(KArchive *archive)
0039     {
0040         return archive->d->rootDir;
0041     }
0042 
0043     void abortWriting();
0044 
0045     static QDateTime time_tToDateTime(uint time_t);
0046 
0047     KArchiveDirectory *findOrCreate(const QString &path, int recursionCounter);
0048 
0049     KArchive *q = nullptr;
0050     KArchiveDirectory *rootDir = nullptr;
0051     QSaveFile *saveFile = nullptr;
0052     QIODevice *dev = nullptr;
0053     QString fileName;
0054     QIODevice::OpenMode mode = QIODevice::NotOpen;
0055     bool deviceOwned = false; // if true, we (KArchive) own dev and must delete it
0056     QString errorStr{tr("Unknown error")};
0057 };
0058 
0059 #endif // KARCHIVE_P_H