Update to 7-Zip Version 22.00

See: https://sourceforge.net/p/sevenzip/discussion/45797/thread/9c2d9061ce/
This commit is contained in:
Tino Reichardt
2022-08-07 09:59:33 +02:00
parent 6a4fe97fc3
commit 57558682a8
211 changed files with 15251 additions and 2482 deletions

View File

@@ -32,6 +32,7 @@ static const UInt32 kLangIDs[] =
IDX_SYSTEM_CASCADED_MENU,
IDX_SYSTEM_ICON_IN_MENU,
IDX_EXTRACT_ELIM_DUP,
IDT_SYSTEM_ZONE,
IDT_SYSTEM_CONTEXT_MENU_ITEMS
};
@@ -80,6 +81,16 @@ extern bool g_Is_Wow64;
#define KEY_WOW64_32KEY (0x0200)
#endif
static void LoadLang_Spec(UString &s, UInt32 id, const char *eng)
{
LangString(id, s);
if (s.IsEmpty())
s = eng;
s.RemoveChar(L'&');
}
bool CMenuPage::OnInit()
{
_initMode = true;
@@ -176,6 +187,44 @@ bool CMenuPage::OnInit()
CheckButton(IDX_EXTRACT_ELIM_DUP, ci.ElimDup.Val);
_listView.Attach(GetItem(IDL_SYSTEM_OPTIONS));
_zoneCombo.Attach(GetItem(IDC_SYSTEM_ZONE));
{
unsigned wz = ci.WriteZone;
if (wz == (UInt32)(Int32)-1)
wz = 0;
for (unsigned i = 0; i <= 3; i++)
{
unsigned val = i;
UString s;
if (i == 3)
{
if (wz < 3)
break;
val = wz;
}
else
{
#define MY_IDYES 406
#define MY_IDNO 407
if (i == 0)
LoadLang_Spec(s, MY_IDNO, "No");
else if (i == 1)
LoadLang_Spec(s, MY_IDYES, "Yes");
else
LangString(IDT_ZONE_FOR_OFFICE, s);
}
if (s.IsEmpty())
s.Add_UInt32(val);
if (i == 0)
s.Insert(0, L"* ");
const int index = (int)_zoneCombo.AddString(s);
_zoneCombo.SetItemData(index, val);
if (val == wz)
_zoneCombo.SetCurSel(index);
}
}
const UInt32 newFlags = LVS_EX_CHECKBOXES | LVS_EX_FULLROWSELECT;
_listView.SetExtendedListViewStyle(newFlags, newFlags);
@@ -266,7 +315,11 @@ LONG CMenuPage::OnApply()
#endif
if (_cascaded_Changed || _menuIcons_Changed || _elimDup_Changed || _flags_Changed)
if (_cascaded_Changed
|| _menuIcons_Changed
|| _elimDup_Changed
|| _writeZone_Changed
|| _flags_Changed)
{
CContextMenuInfo ci;
ci.Cascaded.Val = IsButtonCheckedBool(IDX_SYSTEM_CASCADED_MENU);
@@ -278,6 +331,13 @@ LONG CMenuPage::OnApply()
ci.ElimDup.Val = IsButtonCheckedBool(IDX_EXTRACT_ELIM_DUP);
ci.ElimDup.Def = _elimDup_Changed;
{
int zoneIndex = (int)_zoneCombo.GetItemData_of_CurSel();
if (zoneIndex <= 0)
zoneIndex = -1;
ci.WriteZone = (UInt32)(Int32)zoneIndex;
}
ci.Flags = 0;
for (unsigned i = 0; i < ARRAY_SIZE(kMenuItems); i++)
@@ -321,6 +381,7 @@ bool CMenuPage::OnButtonClicked(int buttonID, HWND buttonHWND)
case IDX_SYSTEM_CASCADED_MENU: _cascaded_Changed = true; break;
case IDX_SYSTEM_ICON_IN_MENU: _menuIcons_Changed = true; break;
case IDX_EXTRACT_ELIM_DUP: _elimDup_Changed = true; break;
// case IDX_EXTRACT_WRITE_ZONE: _writeZone_Changed = true; break;
default:
return CPropertyPage::OnButtonClicked(buttonID, buttonHWND);
@@ -330,6 +391,19 @@ bool CMenuPage::OnButtonClicked(int buttonID, HWND buttonHWND)
return true;
}
bool CMenuPage::OnCommand(int code, int itemID, LPARAM param)
{
if (code == CBN_SELCHANGE && itemID == IDC_SYSTEM_ZONE)
{
_writeZone_Changed = true;
Changed();
return true;
}
return CPropertyPage::OnCommand(code, itemID, param);
}
bool CMenuPage::OnNotify(UINT controlID, LPNMHDR lParam)
{
if (lParam->hwndFrom == HWND(_listView))