Fix #128 - format switching in archiv dialog makes options wrong

This commit is contained in:
Tino Reichardt
2020-06-01 23:06:15 +02:00
parent f348c23dae
commit 0f95a82768
+8 -9
View File
@@ -938,6 +938,7 @@ bool CCompressDialog::OnCommand(int code, int itemID, LPARAM lParam)
m_Solid.ResetContent(); m_Solid.ResetContent();
SetMethod(GetMethodID()); SetMethod(GetMethodID());
SetLevel(); SetLevel();
SetMethod(GetMethodID());
SetSolidBlockSize(); SetSolidBlockSize();
SetNumThreads(); SetNumThreads();
SetParams(); SetParams();
@@ -945,19 +946,11 @@ bool CCompressDialog::OnCommand(int code, int itemID, LPARAM lParam)
SetArchiveName2(isSFX); SetArchiveName2(isSFX);
SetEncryptionMethod(); SetEncryptionMethod();
SetMemoryUsage(); SetMemoryUsage();
SetMethod(GetMethodID());
return true; return true;
} }
case IDC_COMPRESS_LEVEL: case IDC_COMPRESS_LEVEL:
{ {
{
const CArcInfoEx &ai = (*ArcFormats)[GetFormatIndex()];
int index = FindRegistryFormatAlways(ai.Name);
NCompression::CFormatOptions &fo = m_RegistryInfo.Formats[index];
fo.ResetForLevelChange();
}
SetSolidBlockSize(); SetSolidBlockSize();
SetNumThreads(); SetNumThreads();
CheckSFXNameChange(); CheckSFXNameChange();
@@ -967,7 +960,13 @@ bool CCompressDialog::OnCommand(int code, int itemID, LPARAM lParam)
case IDC_COMPRESS_METHOD: case IDC_COMPRESS_METHOD:
{ {
SetMethod(GetMethodID()); {
const CArcInfoEx &ai = (*ArcFormats)[GetFormatIndex()];
int index = FindRegistryFormatAlways(ai.Name);
NCompression::CFormatOptions &fo = m_RegistryInfo.Formats[index];
fo.ResetForLevelChange();
}
SetDictionary(); SetDictionary();
SetOrder(); SetOrder();
SetSolidBlockSize(); SetSolidBlockSize();