QGIS API Documentation  3.6.0-Noosa (5873452)
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
7  email : [email protected]
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 "qgis_core.h"
23 #include <QStringList>
24 #include <QTemporaryFile>
25 #include <QTemporaryDir>
26 #include <memory>
27 
34 class CORE_EXPORT QgsArchive
35 {
36  public:
37 
41  QgsArchive();
42 
46  QgsArchive( const QgsArchive &other );
47 
48  QgsArchive &operator=( const QgsArchive &other );
49 
53  virtual ~QgsArchive() = default;
54 
60  bool zip( const QString &zipFilename );
61 
68  virtual bool unzip( const QString &zipFilename );
69 
74  void clear();
75 
81  void addFile( const QString &filename );
82 
88  bool removeFile( const QString &filename );
89 
93  QStringList files() const;
94 
98  QString dir() const;
99 
100  private:
101  // content of the archive
102  QStringList mFiles;
103 
104  // used when unzip is performed
105  std::unique_ptr<QTemporaryDir> mDir;
106 };
107 
114 class CORE_EXPORT QgsProjectArchive : public QgsArchive
115 {
116  public:
117 
125  bool unzip( const QString &zipFilename ) override;
126 
130  QString projectFile() const;
131 
136  bool clearProjectFile();
137 
142  QString auxiliaryStorageFile() const;
143 };
144 
145 #endif
Class allowing to manage the zip/unzip actions.
Definition: qgsarchive.h:34
Class allowing to manage the zip/unzip actions on project file.
Definition: qgsarchive.h:114
CORE_EXPORT bool unzip(const QString &zip, const QString &dir, QStringList &files)
Unzip a zip file in an output directory.
Definition: qgsziputils.cpp:34
virtual bool unzip(const QString &zipFilename)
Clear the current content of this archive and unzip.
Definition: qgsarchive.cpp:87
CORE_EXPORT bool zip(const QString &zip, const QStringList &files)
Zip the list of files in the zip file.