Temporary .qgs files are deleted

This commit is contained in:
Blottiere Paul 2017-07-13 14:55:02 +01:00
parent a0a2f0c539
commit 1d8574e436
4 changed files with 30 additions and 5 deletions

View File

@ -136,6 +136,13 @@ class QgsProjectArchive : QgsArchive
Returns the current .qgs project file or an empty string if there's none
:rtype: str
%End
bool clearProjectFile();
%Docstring
Remove the current .qgs project file from the temporary directory.
:return: true if the file is well removed, false otherwise
:rtype: bool
%End
};
/************************************************************************

View File

@ -152,3 +152,17 @@ bool QgsProjectArchive::unzip( const QString &filename )
else
return false;
}
bool QgsProjectArchive::clearProjectFile()
{
bool rc = false;
QString file = projectFile();
if ( !file.isEmpty() && QFile::exists( file ) )
rc = QFile::remove( file );
if ( rc )
mFiles.removeOne( file );
return rc;
}

View File

@ -147,6 +147,12 @@ class CORE_EXPORT QgsProjectArchive : public QgsArchive
* Returns the current .qgs project file or an empty string if there's none
*/
QString projectFile() const;
/**
* Remove the current .qgs project file from the temporary directory.
* \returns true if the file is well removed, false otherwise
*/
bool clearProjectFile();
};
#endif

View File

@ -2110,17 +2110,18 @@ bool QgsProject::unzip( const QString &filename )
return false;
}
// keep the archive
// keep the archive and remove the temporary .qgs file
mUnzipping = false;
mPathResolverBaseName = QString();
mArchive.reset( archive.release() );
mArchive->clearProjectFile();
return true;
}
bool QgsProject::zip()
{
if ( unzipped() )
if ( !mArchive->filename().isEmpty() )
return zip( mArchive->filename() );
return false;
@ -2168,9 +2169,6 @@ bool QgsProject::zip( const QString &filename )
return false;
}
// keep the archive
mArchive.reset( archive.release() );
return true;
}