25 #include <QStandardPaths> 29 : mDir( new QTemporaryDir() )
34 : mFiles( other.mFiles )
35 , mDir( new QTemporaryDir() )
42 mFiles = other.mFiles;
54 mDir.reset(
new QTemporaryDir() );
60 QString tempPath = QStandardPaths::standardLocations( QStandardPaths::TempLocation ).at( 0 );
61 QString uuid = QUuid::createUuid().toString();
62 QFile tmpFile( tempPath + QDir::separator() + uuid );
67 QString err = QObject::tr(
"Unable to zip content" );
73 if ( QFile::exists( filename ) )
74 QFile::remove( filename );
77 if ( ! tmpFile.rename( filename ) )
79 QString err = QObject::tr(
"Unable to save zip file '%1'" ).arg( filename );
95 mFiles.append( file );
102 if ( !file.isEmpty() && mFiles.contains( file ) && QFile::exists( file ) )
103 rc = QFile::remove( file );
105 mFiles.removeOne( file );
117 Q_FOREACH (
const QString &file,
files() )
119 QFileInfo fileInfo( file );
120 if ( fileInfo.suffix().compare( QLatin1String(
"qgs" ), Qt::CaseInsensitive ) == 0 )
130 return ! projectFile().isEmpty();
144 const QStringList fileList =
files();
145 for (
const QString &file : fileList )
147 const QFileInfo fileInfo( file );
148 if ( fileInfo.suffix().compare( extension, Qt::CaseInsensitive ) == 0 )
Class allowing to manage the zip/unzip actions.
bool unzip(const QString &zipFilename) override
Clear the current content of this archive and unzip.
void clear()
Clear the current content of this archive and create a new temporary directory.
bool removeFile(const QString &filename)
Remove a file from this archive and from the filesystem.
bool zip(const QString &zipFilename)
Zip the content of this archive.
static QString extension()
Returns the extension used for auxiliary databases.
CORE_EXPORT bool unzip(const QString &zip, const QString &dir, QStringList &files)
Unzip a zip file in an output directory.
QString projectFile() const
Returns the current .qgs project file or an empty string if there's none.
virtual bool unzip(const QString &zipFilename)
Clear the current content of this archive and unzip.
static void logMessage(const QString &message, const QString &tag=QString(), Qgis::MessageLevel level=Qgis::Warning, bool notifyUser=true)
Adds a message to the log instance (and creates it if necessary).
QgsArchive & operator=(const QgsArchive &other)
void addFile(const QString &filename)
Add a new file to this archive.
QStringList files() const
Returns the list of files within this archive.
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.
CORE_EXPORT bool zip(const QString &zip, const QStringList &files)
Zip the list of files in the zip file.
QString dir() const
Returns the current temporary directory.