From b085993aae1914736f0c1e837595026cdac930df Mon Sep 17 00:00:00 2001 From: shunf4 Date: Sat, 20 Apr 2024 19:09:23 +0800 Subject: [PATCH] apply James Hoo 's other original mod --- C/7zVersion.h | 15 ++++ CPP/7zip/UI/Common/ZipRegistry.cpp | 74 +++++++++++++------ CPP/7zip/UI/Common/ZipRegistry.h | 3 + .../UI/FileManager/AboutEasy7ZipDialog.cpp | 2 +- CPP/7zip/UI/FileManager/AboutEasy7ZipDialog.h | 6 +- CPP/7zip/UI/FileManager/FM.mak | 1 + CPP/7zip/UI/FileManager/MyLoadMenu.cpp | 7 ++ CPP/7zip/UI/FileManager/Panel.h | 2 +- CPP/7zip/UI/FileManager/resource.h | 1 + CPP/7zip/UI/FileManager/resource.rc | 2 + 10 files changed, 86 insertions(+), 27 deletions(-) diff --git a/C/7zVersion.h b/C/7zVersion.h index 75492396..c5a544d3 100755 --- a/C/7zVersion.h +++ b/C/7zVersion.h @@ -25,3 +25,18 @@ #define MY_COPYRIGHT_DATE MY_COPYRIGHT " : " MY_DATE #define MY_VERSION_COPYRIGHT_DATE MY_VERSION_CPU " : " MY_COPYRIGHT " : " MY_DATE + +#define MY_EASY7ZIP_VER_MAJOR 0 +#define MY_EASY7ZIP_VER_MINOR 1 + +#define MY_EASY7ZIP_7ZIP "Easy 7-Zip" + +#define MY_EASY7ZIP_VERSION "0.1.6-shunf4" + +#define MY_EASY7ZIP_7ZIP_VERSION "Easy 7-Zip v0.1.6-shunf4" + +#define MY_EASY7ZIP_COPYRIGHT "Portions Copyright (C) 2013-2016 James Hoo" + +#define MY_EASY7ZIP_AUTHOR "James Hoo" +#define MY_EASY7ZIP_HOMEPAGE "e7z.org" +#define MY_EASY7ZIP_SPECIAL_BUILD MY_EASY7ZIP_7ZIP_VERSION " (www." MY_EASY7ZIP_HOMEPAGE ") made by " MY_EASY7ZIP_AUTHOR diff --git a/CPP/7zip/UI/Common/ZipRegistry.cpp b/CPP/7zip/UI/Common/ZipRegistry.cpp index 6c1b9c86..a6ad5853 100755 --- a/CPP/7zip/UI/Common/ZipRegistry.cpp +++ b/CPP/7zip/UI/Common/ZipRegistry.cpp @@ -21,8 +21,10 @@ static NSynchronization::CCriticalSection g_CS; #define CS_LOCK NSynchronization::CCriticalSectionLock lock(g_CS); static LPCTSTR const kCuPrefix = TEXT("Software") TEXT(STRING_PATH_SEPARATOR) TEXT("7-Zip") TEXT(STRING_PATH_SEPARATOR); +static LPCTSTR const kCuFMPrefix = TEXT("Software") TEXT(STRING_PATH_SEPARATOR) TEXT("7-Zip") TEXT(STRING_PATH_SEPARATOR) TEXT("FM"); static CSysString GetKeyPath(LPCTSTR path) { return kCuPrefix + (CSysString)path; } +static CSysString GetFMKeyPath() { return kCuFMPrefix; } static LONG OpenMainKey(CKey &key, LPCTSTR keyName) { @@ -34,6 +36,16 @@ static LONG CreateMainKey(CKey &key, LPCTSTR keyName) return key.Create(HKEY_CURRENT_USER, GetKeyPath(keyName)); } +static LONG OpenFMKey(CKey &key) +{ + return key.Open(HKEY_CURRENT_USER, GetFMKeyPath(), KEY_READ); +} + +static LONG CreateFMKey(CKey &key) +{ + return key.Create(HKEY_CURRENT_USER, GetFMKeyPath()); +} + static void Key_Set_UInt32(CKey &key, LPCTSTR name, UInt32 value) { if (value == (UInt32)(Int32)-1) @@ -99,6 +111,8 @@ static LPCTSTR const kElimDup = TEXT("ElimDup"); // static LPCTSTR const kAltStreams = TEXT("AltStreams"); static LPCTSTR const kNtSecur = TEXT("Security"); +static LPCTSTR const kFMCopyHistoryValueName = TEXT("CopyHistory"); + void CInfo::Save() const { CS_LOCK @@ -116,8 +130,15 @@ void CInfo::Save() const Key_Set_BoolPair(key, kNtSecur, NtSecurity); Key_Set_BoolPair(key, kShowPassword, ShowPassword); - key.RecurseDeleteKey(kPathHistory); - key.SetValue_Strings(kPathHistory, Paths); +// key.RecurseDeleteKey(kPathHistory); +// key.SetValue_Strings(kPathHistory, Paths); + key.Close(); + + if (CreateFMKey(key) == ERROR_SUCCESS) + { + key.SetValue_Strings(kFMCopyHistoryValueName, Paths); + key.Close(); + } } void Save_ShowPassword(bool showPassword) @@ -141,28 +162,37 @@ void CInfo::Load() CS_LOCK CKey key; - if (OpenMainKey(key, kKeyName) != ERROR_SUCCESS) - return; +// if (OpenMainKey(key, kKeyName) != ERROR_SUCCESS) +// return; - key.GetValue_Strings(kPathHistory, Paths); - UInt32 v; - if (key.QueryValue(kExtractMode, v) == ERROR_SUCCESS && v <= NPathMode::kAbsPaths) + if (OpenMainKey(key, kKeyName) == ERROR_SUCCESS) { - PathMode = (NPathMode::EEnum)v; - PathMode_Force = true; +// key.GetValue_Strings(kPathHistory, Paths); + UInt32 v; + if (key.QueryValue(kExtractMode, v) == ERROR_SUCCESS && v <= NPathMode::kAbsPaths) + { + PathMode = (NPathMode::EEnum)v; + PathMode_Force = true; + } + if (key.QueryValue(kOverwriteMode, v) == ERROR_SUCCESS && v <= NOverwriteMode::kRenameExisting) + { + OverwriteMode = (NOverwriteMode::EEnum)v; + OverwriteMode_Force = true; + } + + Key_Get_BoolPair_true(key, kSplitDest, SplitDest); + + Key_Get_BoolPair(key, kElimDup, ElimDup); + // Key_Get_BoolPair(key, kAltStreams, AltStreams); + Key_Get_BoolPair(key, kNtSecur, NtSecurity); + Key_Get_BoolPair(key, kShowPassword, ShowPassword); + key.Close(); } - if (key.QueryValue(kOverwriteMode, v) == ERROR_SUCCESS && v <= NOverwriteMode::kRenameExisting) + if (OpenFMKey(key) == ERROR_SUCCESS) { - OverwriteMode = (NOverwriteMode::EEnum)v; - OverwriteMode_Force = true; + key.GetValue_Strings(kFMCopyHistoryValueName, Paths); + key.Close(); } - - Key_Get_BoolPair_true(key, kSplitDest, SplitDest); - - Key_Get_BoolPair(key, kElimDup, ElimDup); - // Key_Get_BoolPair(key, kAltStreams, AltStreams); - Key_Get_BoolPair(key, kNtSecur, NtSecurity); - Key_Get_BoolPair(key, kShowPassword, ShowPassword); } bool Read_ShowPassword() @@ -542,11 +572,11 @@ void CContextMenuInfo::Save() const void CContextMenuInfo::Load() { - Cascaded.Val = true; + Cascaded.Val = false; Cascaded.Def = false; - MenuIcons.Val = false; - MenuIcons.Def = false; + MenuIcons.Val = true; + MenuIcons.Def = true; ElimDup.Val = true; ElimDup.Def = false; diff --git a/CPP/7zip/UI/Common/ZipRegistry.h b/CPP/7zip/UI/Common/ZipRegistry.h index 6bc6977b..0befa6d6 100755 --- a/CPP/7zip/UI/Common/ZipRegistry.h +++ b/CPP/7zip/UI/Common/ZipRegistry.h @@ -43,6 +43,9 @@ namespace NExtract void Save_ShowPassword(bool showPassword); bool Read_ShowPassword(); + +void SaveOptShowPassword(bool bShow); +bool ReadOptShowPassword(); } namespace NCompression diff --git a/CPP/7zip/UI/FileManager/AboutEasy7ZipDialog.cpp b/CPP/7zip/UI/FileManager/AboutEasy7ZipDialog.cpp index 1e222458..a79d6884 100644 --- a/CPP/7zip/UI/FileManager/AboutEasy7ZipDialog.cpp +++ b/CPP/7zip/UI/FileManager/AboutEasy7ZipDialog.cpp @@ -18,7 +18,7 @@ void CAboutEasy7ZipDialog::OnHelp() ShowHelpWindow(kHelpTopic); } -bool CAboutEasy7ZipDialog::OnButtonClicked(int buttonID, HWND buttonHWND) +bool CAboutEasy7ZipDialog::OnButtonClicked(unsigned buttonID, HWND buttonHWND) { LPCTSTR url; switch(buttonID) diff --git a/CPP/7zip/UI/FileManager/AboutEasy7ZipDialog.h b/CPP/7zip/UI/FileManager/AboutEasy7ZipDialog.h index 2d393599..7f47420f 100644 --- a/CPP/7zip/UI/FileManager/AboutEasy7ZipDialog.h +++ b/CPP/7zip/UI/FileManager/AboutEasy7ZipDialog.h @@ -9,9 +9,9 @@ class CAboutEasy7ZipDialog: public NWindows::NControl::CModalDialog { public: - virtual bool OnInit(); - virtual void OnHelp(); - virtual bool OnButtonClicked(int buttonID, HWND buttonHWND); + virtual bool OnInit() Z7_override; + virtual void OnHelp() Z7_override; + virtual bool OnButtonClicked(unsigned buttonID, HWND buttonHWND) Z7_override; INT_PTR Create(HWND wndParent = 0) { return CModalDialog::Create(IDD_ABOUT_EASY_7ZIP, wndParent); } }; diff --git a/CPP/7zip/UI/FileManager/FM.mak b/CPP/7zip/UI/FileManager/FM.mak index 8331285a..bdf2ebd7 100755 --- a/CPP/7zip/UI/FileManager/FM.mak +++ b/CPP/7zip/UI/FileManager/FM.mak @@ -55,6 +55,7 @@ FM_OBJS = \ $O\UpdateCallback100.obj \ $O\ViewSettings.obj \ $O\AboutDialog.obj \ + $O\AboutEasy7ZipDialog.obj \ $O\ComboDialog.obj \ $O\CopyDialog.obj \ $O\EditDialog.obj \ diff --git a/CPP/7zip/UI/FileManager/MyLoadMenu.cpp b/CPP/7zip/UI/FileManager/MyLoadMenu.cpp index 9453536a..e873e272 100755 --- a/CPP/7zip/UI/FileManager/MyLoadMenu.cpp +++ b/CPP/7zip/UI/FileManager/MyLoadMenu.cpp @@ -11,6 +11,7 @@ #include "../Common/CompressCall.h" #include "AboutDialog.h" +#include "AboutEasy7ZipDialog.h" #include "App.h" #include "HelpUtils.h" #include "LangUtils.h" @@ -894,6 +895,12 @@ bool OnMenuCommand(HWND hWnd, unsigned id) dialog.Create(hWnd); break; } + case IDM_ABOUT_EASY_7ZIP: + { + CAboutEasy7ZipDialog dialog; + dialog.Create(hWnd); + break; + } default: { if (id >= k_MenuID_OpenBookmark && id <= k_MenuID_OpenBookmark + 9) diff --git a/CPP/7zip/UI/FileManager/Panel.h b/CPP/7zip/UI/FileManager/Panel.h index b7505828..e4b6801e 100755 --- a/CPP/7zip/UI/FileManager/Panel.h +++ b/CPP/7zip/UI/FileManager/Panel.h @@ -971,7 +971,7 @@ public: void RefreshTitle(bool always = false) { _panelCallback->RefreshTitle(always); } void RefreshTitleAlways() { RefreshTitle(true); } - UString GetItemsInfoString(const CRecordVector &indices); + UString GetItemsInfoString(const CRecordVector &indices, int *soleDir); }; class CMyBuffer diff --git a/CPP/7zip/UI/FileManager/resource.h b/CPP/7zip/UI/FileManager/resource.h index 9d605c6d..0e3088fd 100755 --- a/CPP/7zip/UI/FileManager/resource.h +++ b/CPP/7zip/UI/FileManager/resource.h @@ -110,6 +110,7 @@ #define IDM_HELP_CONTENTS 960 #define IDM_ABOUT 961 +#define IDM_ABOUT_EASY_7ZIP 962 #define IDS_OPTIONS 2100 diff --git a/CPP/7zip/UI/FileManager/resource.rc b/CPP/7zip/UI/FileManager/resource.rc index 002265ae..63bf8a65 100755 --- a/CPP/7zip/UI/FileManager/resource.rc +++ b/CPP/7zip/UI/FileManager/resource.rc @@ -149,6 +149,7 @@ BEGIN #endif MY_MENUITEM_SEPARATOR MENUITEM "&About 7-Zip...", IDM_ABOUT + MENUITEM "&About Easy 7-Zip...", IDM_ABOUT_EASY_7ZIP END END @@ -262,6 +263,7 @@ BEGIN END #include "AboutDialog.rc" +#include "AboutEasy7ZipDialog.rc" #include "BrowseDialog.rc" #include "ComboDialog.rc" #include "CopyDialog.rc"