17 #include <QRegularExpression>    22   list << QObject::tr( 
"KB" ) << QObject::tr( 
"MB" ) << QObject::tr( 
"GB" ) << QObject::tr( 
"TB" );
    24   QStringListIterator i( list );
    25   QString unit = QObject::tr( 
"bytes" );
    27   while ( bytes >= 1024.0 && i.hasNext() )
    32   return QString( 
"%1 %2" ).arg( QString::number( bytes ), unit );
    37   const QRegularExpression rx( QStringLiteral( 
"\\*\\.([a-zA-Z0-9]+)" ) );
    38   QStringList extensions;
    39   QRegularExpressionMatchIterator matches = rx.globalMatch( filter );
    41   while ( matches.hasNext() )
    43     const QRegularExpressionMatch match = matches.next();
    44     if ( match.hasMatch() )
    46       QStringList newExtensions = match.capturedTexts();
    47       newExtensions.pop_front(); 
    48       extensions.append( newExtensions );
    56   if ( extensions.empty() || f.isEmpty() )
    61   for ( 
const QString &extension : qgis::as_const( extensions ) )
    63     const QString extWithDot = extension.startsWith( 
'.' ) ? extension : 
'.' + extension;
    64     if ( fileName.endsWith( extWithDot, Qt::CaseInsensitive ) )
    73     const QString extension = extensions.at( 0 );
    74     const QString extWithDot = extension.startsWith( 
'.' ) ? extension : 
'.' + extension;
    75     fileName += extWithDot;
    89   QRegularExpression rx( 
"[/\\\\\\?%\\*\\:\\|\"<>]" );
    91   s.replace( rx, QStringLiteral( 
"_" ) );
 static QString ensureFileNameHasExtension(const QString &fileName, const QStringList &extensions)
Ensures that a fileName ends with an extension from the provided list of extensions. 
 
static QString representFileSize(qint64 bytes)
Returns the human size from bytes. 
 
static QString stringToSafeFilename(const QString &string)
Converts a string to a safe filename, replacing characters which are not safe for filenames with an '...
 
static QStringList extensionsFromFilter(const QString &filter)
Returns a list of the extensions contained within a file filter string. 
 
static QString addExtensionFromFilter(const QString &fileName, const QString &filter)
Ensures that a fileName ends with an extension from the specified filter string.