QGIS API Documentation 3.99.0-Master (26c88405ac0)
Loading...
Searching...
No Matches
qgsarchive.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsarchive.h
3 ----------------
4
5 begin : July 07, 2017
6 copyright : (C) 2017 by Paul Blottiere
8 ***************************************************************************/
9
10/***************************************************************************
11 * *
12 * This program is free software; you can redistribute it and/or modify *
13 * it under the terms of the GNU General Public License as published by *
14 * the Free Software Foundation; either version 2 of the License, or *
15 * (at your option) any later version. *
16 * *
17 ***************************************************************************/
18
19#ifndef QGSARCHIVE_H
20#define QGSARCHIVE_H
21
22#include <memory>
23
24#include "qgis_core.h"
25
26#include <QStringList>
27#include <QTemporaryDir>
28#include <QTemporaryFile>
29
35class CORE_EXPORT QgsArchive
36{
37 public:
38
39 QgsArchive();
40
41 QgsArchive( const QgsArchive &other );
42
43 QgsArchive &operator=( const QgsArchive &other );
44
45 virtual ~QgsArchive() = default;
46
52 bool zip( const QString &zipFilename );
53
60 virtual bool unzip( const QString &zipFilename );
61
66 void clear();
67
73 void addFile( const QString &filename );
74
80 bool removeFile( const QString &filename );
81
85 QStringList files() const;
86
90 QString dir() const;
91
96 bool exists() const;
97
98 private:
99 // content of the archive
100 QStringList mFiles;
101
102 // used when unzip is performed
103 std::unique_ptr<QTemporaryDir> mDir;
104};
105
111class CORE_EXPORT QgsProjectArchive : public QgsArchive
112{
113 public:
114
122 bool unzip( const QString &zipFilename ) override;
123
127 QString projectFile() const;
128
133 bool clearProjectFile();
134
139 QString auxiliaryStorageFile() const;
140};
141
142#endif
QgsArchive & operator=(const QgsArchive &other)
virtual bool unzip(const QString &zipFilename)
Clear the current content of this archive and unzip.
bool zip(const QString &zipFilename)
Zip the content of this archive.
void clear()
Clear the current content of this archive and create a new temporary directory.
bool exists() const
Returns true if the archive exists on the filesystem, false otherwise.
void addFile(const QString &filename)
Add a new file to this archive.
bool removeFile(const QString &filename)
Remove a file from this archive and from the filesystem.
QString dir() const
Returns the current temporary directory.
QStringList files() const
Returns the list of files within this archive.
virtual ~QgsArchive()=default
Allows managing the zip/unzip actions on project files.
Definition qgsarchive.h:112
QString projectFile() const
Returns the current .qgs project file or an empty string if there's none.
QString auxiliaryStorageFile() const
Returns the current .qgd auxiliary storage file or an empty string if there's none.
bool clearProjectFile()
Remove the current .qgs project file from the temporary directory.
bool unzip(const QString &zipFilename) override
Clear the current content of this archive and unzip.