Skip to content

Commit

Permalink
Sort the list of raster format extensions displayed in Processing gen…
Browse files Browse the repository at this point in the history
…eral options
  • Loading branch information
DelazJ authored and nyalldawson committed Jan 23, 2024
1 parent cec8d87 commit 31dd35c
Showing 1 changed file with 27 additions and 3 deletions.
30 changes: 27 additions & 3 deletions src/core/raster/qgsrasterfilewriter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1206,7 +1206,7 @@ QList< QgsRasterFileWriter::FilterFormatDetails > QgsRasterFileWriter::supported
QStringList QgsRasterFileWriter::supportedFormatExtensions( const RasterFormatOptions options )
{
const auto formats = supportedFiltersAndFormats( options );
QStringList extensions;
QSet< QString > extensions;

const thread_local QRegularExpression rx( QStringLiteral( "\\*\\.([a-zA-Z0-9]*)" ) );

Expand All @@ -1218,7 +1218,31 @@ QStringList QgsRasterFileWriter::supportedFormatExtensions( const RasterFormatOp
continue;

const QString matched = match.captured( 1 );
extensions << matched;
extensions.insert( matched );
}
return extensions;

QStringList extensionList( extensions.constBegin(), extensions.constEnd() );

std::sort( extensionList.begin(), extensionList.end(), [options]( const QString & a, const QString & b ) -> bool
{
if ( options & SortRecommended )
{
if ( a == QLatin1String( "tif" ) )
return true;
else if ( b == QLatin1String( "tif" ) )
return false;
if ( a == QLatin1String( "tiff" ) )
return true;
else if ( b == QLatin1String( "tiff" ) )
return false;
if ( a == QLatin1String( "gpkg" ) )
return true;
else if ( b == QLatin1String( "gpkg" ) )
return false;
}

return a.toLower().localeAwareCompare( b.toLower() ) < 0;
} );

return extensionList;
}

0 comments on commit 31dd35c

Please sign in to comment.