Skip to content
Permalink
Browse files

Adds more explicit error message when auxiliary storage is saved

  • Loading branch information
pblottiere authored and nyalldawson committed Oct 1, 2018
1 parent 119cd8a commit 1ecc57d2a29f46d0817303eb8f4596099ce35a9d
Showing with 34 additions and 9 deletions.
  1. +23 −5 src/core/qgsauxiliarystorage.cpp
  2. +5 −2 src/core/qgsauxiliarystorage.h
  3. +6 −2 src/core/qgsproject.cpp
@@ -626,15 +626,33 @@ bool QgsAuxiliaryStorage::duplicateTable( const QgsDataSourceUri &ogrUri, const
return rc;
}

bool QgsAuxiliaryStorage::saveAs( const QString &filename ) const
QString QgsAuxiliaryStorage::errorString() const
{
if ( QFile::exists( filename ) )
QFile::remove( filename );
return mErrorString;
}

bool QgsAuxiliaryStorage::saveAs( const QString &filename )
{
mErrorString.clear();

QFile dest( filename );
if ( dest.exists() && !dest.remove() )
{
mErrorString = dest.errorString();
return false;
}

QFile origin( currentFileName() );
if ( !origin.copy( filename ) )
{
mErrorString = origin.errorString();
return false;
}

return QFile::copy( currentFileName(), filename );
return true;
}

bool QgsAuxiliaryStorage::saveAs( const QgsProject &project ) const
bool QgsAuxiliaryStorage::saveAs( const QgsProject &project )
{
return saveAs( filenameForProject( project ) );
}
@@ -319,12 +319,14 @@ class CORE_EXPORT QgsAuxiliaryStorage
*/
QString currentFileName() const;

QString errorString() const;

/**
* Saves the current database to a new path.
*
* \returns true if everything is saved, false otherwise
*/
bool saveAs( const QString &filename ) const;
bool saveAs( const QString &filename );

/**
* Saves the current database to a new path for a specific project.
@@ -333,7 +335,7 @@ class CORE_EXPORT QgsAuxiliaryStorage
*
* \returns true if everything is saved, false otherwise
*/
bool saveAs( const QgsProject &project ) const;
bool saveAs( const QgsProject &project );

/**
* Saves the current database.
@@ -408,6 +410,7 @@ class CORE_EXPORT QgsAuxiliaryStorage
QString mFileName; // original filename
QString mTmpFileName; // temporary filename used in copy mode
bool mCopy = false;
QString mErrorString;
};

#endif
@@ -1649,7 +1649,10 @@ bool QgsProject::write()

// errors raised during writing project file are more important
if ( !asOk && writeOk )
setError( tr( "Unable to save auxiliary storage" ) );
{
const QString err = mAuxiliaryStorage->errorString();
setError( tr( "Unable to save auxiliary storage ('%1')" ).arg( err ) );
}

return asOk && writeOk;
}
@@ -2614,7 +2617,8 @@ bool QgsProject::zip( const QString &filename )

if ( ! saveAuxiliaryStorage( asFileName ) )
{
setError( tr( "Unable to save auxiliary storage" ) );
const QString err = mAuxiliaryStorage->errorString();
setError( tr( "Unable to save auxiliary storage ('%1')" ).arg( err ) );
return false;
}

0 comments on commit 1ecc57d

Please sign in to comment.
You can’t perform that action at this time.