Add: Clear various history tracking within registry, see issue #113

- you can re-enable this via tools->options->settings
This commit is contained in:
Tino Reichardt
2020-04-10 22:03:43 +02:00
parent 2314c89604
commit d78400f0b0
12 changed files with 114 additions and 19 deletions

View File

@@ -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);
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);
if (WantArcHistory())
key.SetValue_Strings(kArcHistory, ArcPaths);
else
key.SetValue_Strings(kArcHistory, Empty);
key.RecurseDeleteKey(kOptionsKeyName);
{

View File

@@ -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

View File

@@ -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

View File

@@ -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];

View File

@@ -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);

View File

@@ -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;

View File

@@ -9,7 +9,6 @@
class CSettingsPage: public NWindows::NControl::CPropertyPage
{
bool _wasChanged;
bool _largePages_wasChanged;
// void EnableSubItems();

View File

@@ -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 "&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 "Use &large memory pages", IDX_SETTINGS_LARGE_PAGES, MY_CHECKBOX, m, 122, 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

View File

@@ -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

View File

@@ -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;
}

View File

@@ -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,

View File

@@ -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); }