diff --git a/CPP/7zip/UI/Common/ZipRegistry.cpp b/CPP/7zip/UI/Common/ZipRegistry.cpp index d2106a9e..7ad46aa8 100644 --- a/CPP/7zip/UI/Common/ZipRegistry.cpp +++ b/CPP/7zip/UI/Common/ZipRegistry.cpp @@ -8,6 +8,8 @@ #include "../../../Windows/Registry.h" #include "../../../Windows/Synchronization.h" +#include "../FileManager/RegistryUtils.h" + #include "ZipRegistry.h" using namespace NWindows; @@ -67,6 +69,7 @@ void CInfo::Save() const CS_LOCK CKey key; CreateMainKey(key, kKeyName); + UStringVector Empty; if (PathMode_Force) key.SetValue(kExtractMode, (UInt32)PathMode); @@ -80,7 +83,10 @@ void CInfo::Save() const Key_Set_BoolPair(key, kShowPassword, ShowPassword); key.RecurseDeleteKey(kPathHistory); - key.SetValue_Strings(kPathHistory, Paths); + if (WantPathHistory()) + key.SetValue_Strings(kPathHistory, Paths); + else + key.SetValue_Strings(kPathHistory, Empty); } void Save_ShowPassword(bool showPassword) @@ -198,6 +204,7 @@ static void GetRegUInt32(CKey &key, LPCTSTR name, UInt32 &value) void CInfo::Save() const { + UStringVector Empty; CS_LOCK CKey key; @@ -214,7 +221,11 @@ void CInfo::Save() const key.SetValue(kShowPassword, ShowPassword); key.SetValue(kEncryptHeaders, EncryptHeaders); key.RecurseDeleteKey(kArcHistory); - key.SetValue_Strings(kArcHistory, ArcPaths); + + if (WantArcHistory()) + key.SetValue_Strings(kArcHistory, ArcPaths); + else + key.SetValue_Strings(kArcHistory, Empty); key.RecurseDeleteKey(kOptionsKeyName); { diff --git a/CPP/7zip/UI/FileManager/MenuPage.cpp b/CPP/7zip/UI/FileManager/MenuPage.cpp index 8e80dc7a..57ec4a44 100644 --- a/CPP/7zip/UI/FileManager/MenuPage.cpp +++ b/CPP/7zip/UI/FileManager/MenuPage.cpp @@ -234,7 +234,7 @@ bool CMenuPage::OnInit() static void ShowMenuErrorMessage(const wchar_t *m, HWND hwnd) { - MessageBoxW(hwnd, m, L"7-Zip", MB_ICONERROR); + MessageBoxW(hwnd, m, L"7-Zip ZS", MB_ICONERROR); } #endif diff --git a/CPP/7zip/UI/FileManager/MenuPage2.rc b/CPP/7zip/UI/FileManager/MenuPage2.rc index bdddc2ab..574d8080 100644 --- a/CPP/7zip/UI/FileManager/MenuPage2.rc +++ b/CPP/7zip/UI/FileManager/MenuPage2.rc @@ -2,9 +2,9 @@ #define y 82 -CAPTION "7-Zip" +CAPTION "7-Zip ZS" BEGIN - CONTROL "Integrate 7-Zip to shell context menu", IDX_SYSTEM_INTEGRATE_TO_MENU, MY_CHECKBOX, m, m, xc, 10 + CONTROL "Integrate 7-Zip ZS to shell context menu", IDX_SYSTEM_INTEGRATE_TO_MENU, MY_CHECKBOX, m, m, xc, 10 CONTROL "(32-bit)", IDX_SYSTEM_INTEGRATE_TO_MENU_2, MY_CHECKBOX, m, m + 14, xc, 10 CONTROL "Cascaded context menu", IDX_SYSTEM_CASCADED_MENU, MY_CHECKBOX, m, m + 28, xc, 10 CONTROL "Icons in context menu", IDX_SYSTEM_ICON_IN_MENU, MY_CHECKBOX, m, m + 42, xc, 10 diff --git a/CPP/7zip/UI/FileManager/RegistryUtils.cpp b/CPP/7zip/UI/FileManager/RegistryUtils.cpp index 1bedaa87..896dfae7 100644 --- a/CPP/7zip/UI/FileManager/RegistryUtils.cpp +++ b/CPP/7zip/UI/FileManager/RegistryUtils.cpp @@ -36,6 +36,12 @@ static LPCTSTR const kShowSystemMenu = TEXT("ShowSystemMenu"); // static LPCTSTR const kLockMemoryAdd = TEXT("LockMemoryAdd"); static LPCTSTR const kLargePages = TEXT("LargePages"); +// they default to off (0) in 7-Zip ZS /TR +static LPCTSTR const kArcHistory = TEXT("WantArcHistory"); +static LPCTSTR const kPathHistory = TEXT("WantPathHistory"); +static LPCTSTR const kCopyHistory = TEXT("WantCopyHistory"); +static LPCTSTR const kFolderHistory = TEXT("WantFolderHistory"); + static LPCTSTR const kFlatViewName = TEXT("FlatViewArc"); // static LPCTSTR const kShowDeletedFiles = TEXT("ShowDeleted"); @@ -89,6 +95,18 @@ static bool Read7ZipOption(LPCTSTR value, bool defaultValue) return defaultValue; } +static bool ReadFMOption(LPCTSTR value) +{ + CKey key; + bool enabled = false; + if (key.Open(HKEY_CURRENT_USER, kCU_FMPath, KEY_READ) == ERROR_SUCCESS) + { + if (key.QueryValue(value, enabled) == ERROR_SUCCESS) + return enabled; + } + return enabled; +} + static void ReadOption(CKey &key, LPCTSTR value, bool &dest) { bool enabled = false; @@ -125,6 +143,10 @@ void CFmSettings::Save() const SaveOption(kShowGrid, ShowGrid); SaveOption(kSingleClick, SingleClick); SaveOption(kAlternativeSelection, AlternativeSelection); + SaveOption(kArcHistory, ArcHistory); + SaveOption(kPathHistory, PathHistory); + SaveOption(kCopyHistory, CopyHistory); + SaveOption(kFolderHistory, FolderHistory); // SaveOption(kUnderline, Underline); SaveOption(kShowSystemMenu, ShowSystemMenu); @@ -138,6 +160,10 @@ void CFmSettings::Load() ShowGrid = false; SingleClick = false; AlternativeSelection = false; + ArcHistory = false; + PathHistory = false; + CopyHistory = false; + FolderHistory = false; // Underline = false; ShowSystemMenu = false; @@ -151,6 +177,10 @@ void CFmSettings::Load() ReadOption(key, kShowGrid, ShowGrid); ReadOption(key, kSingleClick, SingleClick); ReadOption(key, kAlternativeSelection, AlternativeSelection); + ReadOption(key, kArcHistory, ArcHistory); + ReadOption(key, kPathHistory, PathHistory); + ReadOption(key, kCopyHistory, CopyHistory); + ReadOption(key, kFolderHistory, FolderHistory); // ReadOption(key, kUnderline, Underline); ReadOption(key, kShowSystemMenu, ShowSystemMenu ); @@ -164,6 +194,11 @@ void CFmSettings::Load() void SaveLockMemoryEnable(bool enable) { Save7ZipOption(kLargePages, enable); } bool ReadLockMemoryEnable() { return Read7ZipOption(kLargePages, false); } +bool WantArcHistory() { return ReadFMOption(kArcHistory); } +bool WantPathHistory() { return ReadFMOption(kPathHistory); } +bool WantCopyHistory() { return ReadFMOption(kCopyHistory); } +bool WantFolderHistory() { return ReadFMOption(kFolderHistory); } + static CSysString GetFlatViewName(UInt32 panelIndex) { TCHAR panelString[16]; diff --git a/CPP/7zip/UI/FileManager/RegistryUtils.h b/CPP/7zip/UI/FileManager/RegistryUtils.h index 43de3933..4d131f14 100644 --- a/CPP/7zip/UI/FileManager/RegistryUtils.h +++ b/CPP/7zip/UI/FileManager/RegistryUtils.h @@ -23,6 +23,10 @@ struct CFmSettings bool ShowGrid; bool SingleClick; bool AlternativeSelection; + bool ArcHistory; + bool PathHistory; + bool CopyHistory; + bool FolderHistory; // bool Underline; bool ShowSystemMenu; @@ -37,6 +41,11 @@ struct CFmSettings bool ReadLockMemoryEnable(); void SaveLockMemoryEnable(bool enable); +bool WantArcHistory(); +bool WantPathHistory(); +bool WantCopyHistory(); +bool WantFolderHistory(); + void SaveFlatView(UInt32 panelIndex, bool enable); bool ReadFlatView(UInt32 panelIndex); diff --git a/CPP/7zip/UI/FileManager/SettingsPage.cpp b/CPP/7zip/UI/FileManager/SettingsPage.cpp index 24fb0b83..efdad026 100644 --- a/CPP/7zip/UI/FileManager/SettingsPage.cpp +++ b/CPP/7zip/UI/FileManager/SettingsPage.cpp @@ -26,7 +26,11 @@ static const UInt32 kLangIDs[] = IDX_SETTINGS_SHOW_GRID, IDX_SETTINGS_SINGLE_CLICK, IDX_SETTINGS_ALTERNATIVE_SELECTION, - IDX_SETTINGS_LARGE_PAGES + IDX_SETTINGS_LARGE_PAGES, + IDX_SETTINGS_WANT_ARC_HISTORY, + IDX_SETTINGS_WANT_PATH_HISTORY, + IDX_SETTINGS_WANT_COPY_HISTORY, + IDX_SETTINGS_WANT_FOLDER_HISTORY }; #define kSettingsTopic "FM/options.htm#settings" @@ -58,6 +62,10 @@ bool CSettingsPage::OnInit() else EnableItem(IDX_SETTINGS_LARGE_PAGES, false); + CheckButton(IDX_SETTINGS_WANT_ARC_HISTORY, st.ArcHistory); + CheckButton(IDX_SETTINGS_WANT_PATH_HISTORY, st.PathHistory); + CheckButton(IDX_SETTINGS_WANT_COPY_HISTORY, st.CopyHistory); + CheckButton(IDX_SETTINGS_WANT_FOLDER_HISTORY, st.FolderHistory); // EnableSubItems(); return CPropertyPage::OnInit(); @@ -81,6 +89,10 @@ LONG CSettingsPage::OnApply() st.ShowGrid = IsButtonCheckedBool(IDX_SETTINGS_SHOW_GRID); st.SingleClick = IsButtonCheckedBool(IDX_SETTINGS_SINGLE_CLICK); st.AlternativeSelection = IsButtonCheckedBool(IDX_SETTINGS_ALTERNATIVE_SELECTION); + st.ArcHistory = IsButtonCheckedBool(IDX_SETTINGS_WANT_ARC_HISTORY); + st.PathHistory = IsButtonCheckedBool(IDX_SETTINGS_WANT_PATH_HISTORY); + st.CopyHistory = IsButtonCheckedBool(IDX_SETTINGS_WANT_COPY_HISTORY); + st.FolderHistory = IsButtonCheckedBool(IDX_SETTINGS_WANT_FOLDER_HISTORY); // st.Underline = IsButtonCheckedBool(IDX_SETTINGS_UNDERLINE); st.ShowSystemMenu = IsButtonCheckedBool(IDX_SETTINGS_SHOW_SYSTEM_MENU); @@ -126,6 +138,10 @@ bool CSettingsPage::OnButtonClicked(int buttonID, HWND buttonHWND) case IDX_SETTINGS_FULL_ROW: case IDX_SETTINGS_SHOW_GRID: case IDX_SETTINGS_ALTERNATIVE_SELECTION: + case IDX_SETTINGS_WANT_ARC_HISTORY: + case IDX_SETTINGS_WANT_PATH_HISTORY: + case IDX_SETTINGS_WANT_COPY_HISTORY: + case IDX_SETTINGS_WANT_FOLDER_HISTORY: _wasChanged = true; break; diff --git a/CPP/7zip/UI/FileManager/SettingsPage.h b/CPP/7zip/UI/FileManager/SettingsPage.h index 1ac5f389..c893f077 100644 --- a/CPP/7zip/UI/FileManager/SettingsPage.h +++ b/CPP/7zip/UI/FileManager/SettingsPage.h @@ -9,7 +9,6 @@ class CSettingsPage: public NWindows::NControl::CPropertyPage { bool _wasChanged; - bool _largePages_wasChanged; // void EnableSubItems(); diff --git a/CPP/7zip/UI/FileManager/SettingsPage2.rc b/CPP/7zip/UI/FileManager/SettingsPage2.rc index 66256c41..fc4ce227 100644 --- a/CPP/7zip/UI/FileManager/SettingsPage2.rc +++ b/CPP/7zip/UI/FileManager/SettingsPage2.rc @@ -5,9 +5,13 @@ BEGIN CONTROL "&Full row select", IDX_SETTINGS_FULL_ROW, MY_CHECKBOX, m, 36, xc, 10 CONTROL "Show &grid lines", IDX_SETTINGS_SHOW_GRID, MY_CHECKBOX, m, 50, xc, 10 CONTROL "&Single-click to open an item", IDX_SETTINGS_SINGLE_CLICK, MY_CHECKBOX, m, 64, xc, 10 - CONTROL "&Alternative selection mode", IDX_SETTINGS_ALTERNATIVE_SELECTION, MY_CHECKBOX, m, 78, xc, 10 - - CONTROL "Show system &menu", IDX_SETTINGS_SHOW_SYSTEM_MENU, MY_CHECKBOX, m, 100, xc, 10 - - CONTROL "Use &large memory pages", IDX_SETTINGS_LARGE_PAGES, MY_CHECKBOX, m, 122, xc, 10 + + CONTROL "&Alternative selection mode", IDX_SETTINGS_ALTERNATIVE_SELECTION, MY_CHECKBOX, m, 80, xc, 10 + CONTROL "Show system &menu", IDX_SETTINGS_SHOW_SYSTEM_MENU, MY_CHECKBOX, m, 96, xc, 10 + CONTROL "Use &large memory pages", IDX_SETTINGS_LARGE_PAGES, MY_CHECKBOX, m, 112, xc, 10 + + CONTROL "Want ArcHistory", IDX_SETTINGS_WANT_ARC_HISTORY, MY_CHECKBOX, m, 130, xc, 10 + CONTROL "Want PathHistory", IDX_SETTINGS_WANT_PATH_HISTORY, MY_CHECKBOX, m, 144, xc, 10 + CONTROL "Want CopyHistory", IDX_SETTINGS_WANT_COPY_HISTORY, MY_CHECKBOX, m, 158, xc, 10 + CONTROL "Want FolderHistory", IDX_SETTINGS_WANT_FOLDER_HISTORY, MY_CHECKBOX, m, 172, xc, 10 END diff --git a/CPP/7zip/UI/FileManager/SettingsPageRes.h b/CPP/7zip/UI/FileManager/SettingsPageRes.h index de8ac289..fdd5fc84 100644 --- a/CPP/7zip/UI/FileManager/SettingsPageRes.h +++ b/CPP/7zip/UI/FileManager/SettingsPageRes.h @@ -9,3 +9,7 @@ #define IDX_SETTINGS_SINGLE_CLICK 2506 #define IDX_SETTINGS_ALTERNATIVE_SELECTION 2507 #define IDX_SETTINGS_LARGE_PAGES 2508 +#define IDX_SETTINGS_WANT_ARC_HISTORY 2509 +#define IDX_SETTINGS_WANT_PATH_HISTORY 2510 +#define IDX_SETTINGS_WANT_COPY_HISTORY 2511 +#define IDX_SETTINGS_WANT_FOLDER_HISTORY 2512 diff --git a/CPP/7zip/UI/FileManager/SystemPage.cpp b/CPP/7zip/UI/FileManager/SystemPage.cpp index 6d34a868..3af62c7f 100644 --- a/CPP/7zip/UI/FileManager/SystemPage.cpp +++ b/CPP/7zip/UI/FileManager/SystemPage.cpp @@ -35,11 +35,11 @@ static const UInt32 kLangIDs[] = CSysString CModifiedExtInfo::GetString() const { if (State == kExtState_7Zip) - return TEXT("7-Zip"); + return TEXT("7-Zip ZS"); if (State == kExtState_Clear) return TEXT(""); if (Other7Zip) - return TEXT("[7-Zip]"); + return TEXT("[7-Zip ZS]"); return ProgramKey; }; @@ -319,7 +319,7 @@ LONG CSystemPage::OnApply() _needSave = false; if (res != 0) - MessageBoxW(*this, NError::MyFormatMessage(res), L"7-Zip", MB_ICONERROR); + MessageBoxW(*this, NError::MyFormatMessage(res), L"7-Zip ZS", MB_ICONERROR); return PSNRET_NOERROR; } diff --git a/CPP/7zip/UI/FileManager/SystemPage.rc b/CPP/7zip/UI/FileManager/SystemPage.rc index b767f314..da0c1ff9 100644 --- a/CPP/7zip/UI/FileManager/SystemPage.rc +++ b/CPP/7zip/UI/FileManager/SystemPage.rc @@ -7,7 +7,7 @@ IDD_SYSTEM DIALOG 0, 0, xs, ys MY_PAGE_STYLE MY_FONT CAPTION "System" BEGIN - LTEXT "Associate 7-Zip with:", IDT_SYSTEM_ASSOCIATE, m, m, xc, 8 + LTEXT "Associate 7-Zip ZS with:", IDT_SYSTEM_ASSOCIATE, m, m, xc, 8 PUSHBUTTON "+", IDB_SYSTEM_CURRENT, 80, m + 12, 40, bys PUSHBUTTON "+", IDB_SYSTEM_ALL, 166, m + 12, 40, bys CONTROL "List1", IDL_SYSTEM_ASSOCIATE, "SysListView32", @@ -28,7 +28,7 @@ END IDD_SYSTEM_2 DIALOG 0, 0, xs, ys MY_PAGE_STYLE MY_FONT CAPTION "System" BEGIN - LTEXT "Associate 7-Zip with:", IDT_SYSTEM_ASSOCIATE, m, m, xc, 8 + LTEXT "Associate 7-Zip ZS with:", IDT_SYSTEM_ASSOCIATE, m, m, xc, 8 PUSHBUTTON "+", IDB_SYSTEM_CURRENT, 60, m + 12, 40, bys CONTROL "List1", IDL_SYSTEM_ASSOCIATE, "SysListView32", LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SHAREIMAGELISTS | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP, diff --git a/CPP/7zip/UI/FileManager/ViewSettings.cpp b/CPP/7zip/UI/FileManager/ViewSettings.cpp index 53f6f746..335fdc09 100644 --- a/CPP/7zip/UI/FileManager/ViewSettings.cpp +++ b/CPP/7zip/UI/FileManager/ViewSettings.cpp @@ -10,6 +10,7 @@ #include "../../../Windows/Registry.h" #include "../../../Windows/Synchronization.h" +#include "RegistryUtils.h" #include "ViewSettings.h" using namespace NWindows; @@ -288,7 +289,15 @@ static void ReadStringList(LPCTSTR valueName, UStringVector &folders) } void SaveFolderHistory(const UStringVector &folders) - { SaveStringList(kFolderHistoryValueName, folders); } +{ + if (WantFolderHistory()) + SaveStringList(kFolderHistoryValueName, folders); + else { + UStringVector Empty; + SaveStringList(kFolderHistoryValueName, Empty); + } +} + void ReadFolderHistory(UStringVector &folders) { ReadStringList(kFolderHistoryValueName, folders); } @@ -298,7 +307,15 @@ void ReadFastFolders(UStringVector &folders) { ReadStringList(kFastFoldersValueName, folders); } void SaveCopyHistory(const UStringVector &folders) - { SaveStringList(kCopyHistoryValueName, folders); } +{ + if (WantCopyHistory()) + SaveStringList(kCopyHistoryValueName, folders); + else { + UStringVector Empty; + SaveStringList(kCopyHistoryValueName, Empty); + } +} + void ReadCopyHistory(UStringVector &folders) { ReadStringList(kCopyHistoryValueName, folders); }