@ -18,6 +18,27 @@
namespace ImageProcessingAtomEditor
namespace ImageProcessingAtomEditor
{
{
using namespace ImageProcessingAtom ;
using namespace ImageProcessingAtom ;
AZStd : : string GetImageFileMask ( const AZStd : : string & imageFilePath )
{
const char FileMaskDelimiter = ' _ ' ;
//get file name
AZStd : : string fileName ;
QString lowerFileName = imageFilePath . data ( ) ;
lowerFileName = lowerFileName . toLower ( ) ;
AzFramework : : StringFunc : : Path : : GetFileName ( lowerFileName . toUtf8 ( ) . constData ( ) , fileName ) ;
//get the substring from last '_'
size_t lastUnderScore = fileName . find_last_of ( FileMaskDelimiter ) ;
if ( lastUnderScore ! = AZStd : : string : : npos )
{
return fileName . substr ( lastUnderScore ) ;
}
return AZStd : : string ( ) ;
}
TexturePresetSelectionWidget : : TexturePresetSelectionWidget ( EditorTextureSetting & textureSetting , QWidget * parent /*= nullptr*/ )
TexturePresetSelectionWidget : : TexturePresetSelectionWidget ( EditorTextureSetting & textureSetting , QWidget * parent /*= nullptr*/ )
: QWidget ( parent )
: QWidget ( parent )
, m_ui ( new Ui : : TexturePresetSelectionWidget )
, m_ui ( new Ui : : TexturePresetSelectionWidget )
@ -29,33 +50,31 @@ namespace ImageProcessingAtomEditor
m_presetList . clear ( ) ;
m_presetList . clear ( ) ;
auto & presetFilterMap = BuilderSettingManager : : Instance ( ) - > GetPresetFilterMap ( ) ;
auto & presetFilterMap = BuilderSettingManager : : Instance ( ) - > GetPresetFilterMap ( ) ;
AZStd : : unordered_set < ImageProcessingAtom : : PresetName > noFilterPresetList ;
if ( m_listAllPresets )
{
// Check if there is any filtered preset list first
m_presetList = BuilderSettingManager : : Instance ( ) - > GetFullPresetList ( ) ;
for ( auto & presetFilter : presetFilterMap )
}
else
{
{
if ( presetFilter . first . empty ( ) )
auto fileMask = GetImageFileMask ( m_textureSetting - > m_textureName ) ;
auto itr = presetFilterMap . find ( fileMask ) ;
if ( itr ! = presetFilterMap . end ( ) )
{
{
noFilterPresetList = presetFilter . second ;
m_presetList = itr - > second ;
}
}
else if ( IsMatchingWithFileMask ( m_textureSetting - > m_textureName , presetFilter . first ) )
else
{
{
for ( const auto & presetName : presetFilter . second )
m_presetList = BuilderSettingManager : : Instance ( ) - > GetFullPresetList ( ) ;
{
m_presetList . insert ( presetName ) ;
}
}
}
}
}
// If no filtered preset list available or should list all presets, use non-filter list
if ( m_presetList . size ( ) = = 0 | | m_listAllPresets )
{
m_presetList = noFilterPresetList ;
}
QStringList stringList ;
foreach ( const auto & presetName , m_presetList )
foreach ( const auto & presetName , m_presetList )
{
{
m_ui- > presetComboBox - > addItem ( QString ( presetName . GetCStr ( ) ) ) ;
stringList . append ( QString ( presetName . GetCStr ( ) ) ) ;
}
}
stringList . sort ( ) ;
m_ui - > presetComboBox - > addItems ( stringList ) ;
// Set current preset
// Set current preset
const auto & currPreset = m_textureSetting - > GetMultiplatformTextureSetting ( ) . m_preset ;
const auto & currPreset = m_textureSetting - > GetMultiplatformTextureSetting ( ) . m_preset ;
@ -173,8 +192,9 @@ namespace ImageProcessingAtomEditor
AZStd : : string conventionText = " " ;
AZStd : : string conventionText = " " ;
if ( presetSettings )
if ( presetSettings )
{
{
auto fileMasks = BuilderSettingManager : : Instance ( ) - > GetFileMasksForPreset ( presetSettings - > m_name ) ;
int i = 0 ;
int i = 0 ;
for ( const PlatformName & filemask : presetSettings - > m_ fileMasks)
for ( const auto & filemask : fileMasks)
{
{
conventionText + = i > 0 ? " " + filemask : filemask ;
conventionText + = i > 0 ? " " + filemask : filemask ;
i + + ;
i + + ;