+ chg: save changed "Stay On Top" settings on exit

This commit is contained in:
Rainer Kottenhoff 2020-09-20 08:03:50 +02:00
parent 78461e0d69
commit 57e884ecef
3 changed files with 36 additions and 26 deletions

View File

@ -169,6 +169,7 @@ CSearchDlg::CSearchDlg(HWND hParent)
, m_regDate2High(L"Software\\grepWinNP3\\Date2High", 0)
, m_regShowContent(L"Software\\grepWinNP3\\ShowContent", 0)
, m_regOpacityNoFocus(L"Software\\grepWinNP3\\OpacityNoFocus", 100)
, m_regStayOnTop(L"Software\\grepWinNP3\\StayOnTop", 0)
, m_AutoCompleteFilePatterns(bPortable ? &g_iniFile : nullptr)
, m_AutoCompleteExcludeDirsPatterns(bPortable ? &g_iniFile : nullptr)
, m_AutoCompleteSearchPatterns(bPortable ? &g_iniFile : nullptr)
@ -177,8 +178,8 @@ CSearchDlg::CSearchDlg(HWND hParent)
, m_pBookmarksDlg(nullptr)
, m_showContent(false)
, m_showContentSet(false)
, m_stayOnTop(false)
, m_OpacityNoFocus(100)
, m_bStayOnTop(false)
, m_themeCallbackId(0)
{
}
@ -404,6 +405,8 @@ LRESULT CSearchDlg::DlgFunc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPara
m_bUseRegex = (bPortable ? g_iniFile.GetBoolValue(L"global", L"UseRegex", false) : DWORD(m_regUseRegex));
m_bStayOnTop = (BYTE)(bPortable ? g_iniFile.GetBoolValue(L"global", L"StayOnTop", false) : DWORD(m_regStayOnTop));
m_OpacityNoFocus = (BYTE)(bPortable ? g_iniFile.GetLongValue(L"global", L"OpacityNoFocus", 100) : DWORD(m_regOpacityNoFocus));
m_OpacityNoFocus = (m_OpacityNoFocus > 100) ? 100 : m_OpacityNoFocus;
@ -558,6 +561,10 @@ LRESULT CSearchDlg::DlgFunc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPara
else
ShowWindow(*this, SW_SHOW);
}
SetWindowPos(*this, m_bStayOnTop ? HWND_TOPMOST : HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
CheckMenuItem(GetSystemMenu(*this, FALSE), ID_STAY_ON_TOP, m_bStayOnTop ? MF_BYCOMMAND | MF_CHECKED : MF_BYCOMMAND | MF_UNCHECKED);
InitResultList();
#ifdef NP3_ALLOW_UPDATE
@ -809,9 +816,9 @@ LRESULT CSearchDlg::DlgFunc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPara
break;
case ID_STAY_ON_TOP:
{
m_stayOnTop = !m_stayOnTop; // toggle
SetWindowPos(*this, m_stayOnTop ? HWND_TOPMOST : HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
CheckMenuItem(GetSystemMenu(*this, FALSE), ID_STAY_ON_TOP, m_stayOnTop ? MF_BYCOMMAND | MF_CHECKED : MF_BYCOMMAND | MF_UNCHECKED);
m_bStayOnTop = !m_bStayOnTop; // toggle
SetWindowPos(*this, m_bStayOnTop ? HWND_TOPMOST : HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
CheckMenuItem(GetSystemMenu(*this, FALSE), ID_STAY_ON_TOP, m_bStayOnTop ? MF_BYCOMMAND | MF_CHECKED : MF_BYCOMMAND | MF_UNCHECKED);
}
break;
}
@ -2789,6 +2796,7 @@ bool CSearchDlg::SaveSettings()
g_iniFile.SetBoolValue(L"global", L"IncludeBinary", m_bIncludeBinary);
g_iniFile.SetBoolValue(L"global", L"CreateBackup", m_bCreateBackup);
g_iniFile.SetBoolValue(L"global", L"UTF8", m_bUTF8);
g_iniFile.SetBoolValue(L"global", L"StayOnTop", m_bStayOnTop);
g_iniFile.SetBoolValue(L"global", L"Binary", m_bForceBinary);
g_iniFile.SetBoolValue(L"global", L"CaseSensitive", m_bCaseSensitive);
g_iniFile.SetBoolValue(L"global", L"DotMatchesNewline", m_bDotMatchesNewline);
@ -2804,22 +2812,23 @@ bool CSearchDlg::SaveSettings()
}
else
{
m_regIncludeSystem = (DWORD)m_bIncludeSystem;
m_regIncludeHidden = (DWORD)m_bIncludeHidden;
m_regIncludeSubfolders = (DWORD)m_bIncludeSubfolders;
m_regIncludeBinary = (DWORD)m_bIncludeBinary;
m_regCreateBackup = (DWORD)m_bCreateBackup;
m_regUTF8 = (DWORD)m_bUTF8;
m_regBinary = (DWORD)m_bForceBinary;
m_regCaseSensitive = (DWORD)m_bCaseSensitive;
m_regDotMatchesNewline = (DWORD)m_bDotMatchesNewline;
m_regPattern = m_patternregex;
m_regIncludeSystem = (DWORD)m_bIncludeSystem;
m_regIncludeHidden = (DWORD)m_bIncludeHidden;
m_regIncludeSubfolders = (DWORD)m_bIncludeSubfolders;
m_regIncludeBinary = (DWORD)m_bIncludeBinary;
m_regCreateBackup = (DWORD)m_bCreateBackup;
m_regUTF8 = (DWORD)m_bUTF8;
m_regStayOnTop = (DWORD)m_bStayOnTop;
m_regBinary = (DWORD)m_bForceBinary;
m_regCaseSensitive = (DWORD)m_bCaseSensitive;
m_regDotMatchesNewline = (DWORD)m_bDotMatchesNewline;
m_regPattern = m_patternregex;
m_regExcludeDirsPattern = m_excludedirspatternregex;
m_regDateLimit = m_DateLimit;
m_regDate1Low = m_Date1.dwLowDateTime;
m_regDate1High = m_Date1.dwHighDateTime;
m_regDate2Low = m_Date2.dwLowDateTime;
m_regDate2High = m_Date2.dwHighDateTime;
m_regDateLimit = m_DateLimit;
m_regDate1Low = m_Date1.dwLowDateTime;
m_regDate1High = m_Date1.dwHighDateTime;
m_regDate2Low = m_Date2.dwLowDateTime;
m_regDate2High = m_Date2.dwHighDateTime;
if (!m_showContentSet)
m_regShowContent = m_showContent;
}

View File

@ -207,7 +207,7 @@ private:
bool m_bConfirmationOnReplace;
bool m_showContent;
bool m_showContentSet;
bool m_stayOnTop;
bool m_bStayOnTop;
BYTE m_OpacityNoFocus;
std::vector<CSearchInfo> m_items;
@ -268,4 +268,5 @@ private:
CRegStdDWORD m_regDate2High;
CRegStdDWORD m_regShowContent;
CRegStdDWORD m_regOpacityNoFocus;
CRegStdDWORD m_regStayOnTop;
};

View File

@ -6,13 +6,13 @@
//#pragma message(__LOC__"Run the NAnt script to get proper version info")
#define FILEVER 2, 1, 3, 29
#define PRODUCTVER 2, 1, 3, 29
#define STRFILEVER "2.1.3.29\0"
#define STRPRODUCTVER "2.1.3.29\0"
#define FILEVER 2, 1, 3, 30
#define PRODUCTVER 2, 1, 3, 30
#define STRFILEVER "2.1.3.30\0"
#define STRPRODUCTVER "2.1.3.30\0"
#define GREPWIN_VERMAJOR 2
#define GREPWIN_VERMINOR 1
#define GREPWIN_VERMICRO 3
#define GREPWIN_VERBUILD 29
#define GREPWIN_VERDATE "2020-09-19"
#define GREPWIN_VERBUILD 30
#define GREPWIN_VERDATE "2020-09-20"