diff --git a/grepWinNP3/src/SearchDlg.cpp b/grepWinNP3/src/SearchDlg.cpp index 274a4b845..250dd42dd 100644 --- a/grepWinNP3/src/SearchDlg.cpp +++ b/grepWinNP3/src/SearchDlg.cpp @@ -438,6 +438,8 @@ LRESULT CSearchDlg::DlgFunc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPara CheckRadioButton(hwndDlg, IDC_REGEXRADIO, IDC_TEXTRADIO, (bPortable ? g_iniFile.GetLongValue(L"global", L"UseRegex", 0) : static_cast(m_regUseRegex)) ? IDC_REGEXRADIO : IDC_TEXTRADIO); CheckRadioButton(hwndDlg, IDC_ALLSIZERADIO, IDC_SIZERADIO, m_bAllSize ? IDC_ALLSIZERADIO : IDC_SIZERADIO); + DialogEnableWindow(IDC_SIZEEDIT, !m_bAllSize); + DialogEnableWindow(IDC_SIZECOMBO, !m_bAllSize); CheckRadioButton(hwndDlg, IDC_FILEPATTERNREGEX, IDC_FILEPATTERNTEXT, m_bUseRegexForPaths ? IDC_FILEPATTERNREGEX : IDC_FILEPATTERNTEXT); SendDlgItemMessage(hwndDlg, IDC_WHOLEWORDS, BM_SETCHECK, m_bWholeWords ? BST_CHECKED : BST_UNCHECKED, 0); DialogEnableWindow(IDC_WHOLEWORDS, IsDlgButtonChecked(hwndDlg, IDC_TEXTRADIO)); @@ -1336,8 +1338,8 @@ LRESULT CSearchDlg::DoCommand(int id, int msg) bool bIncludeSubfolders = (IsDlgButtonChecked(*this, IDC_INCLUDESUBFOLDERS) == BST_CHECKED); DialogEnableWindow(IDC_ALLSIZERADIO, bIsDir); DialogEnableWindow(IDC_SIZERADIO, bIsDir); - DialogEnableWindow(IDC_SIZECOMBO, bIsDir); - DialogEnableWindow(IDC_SIZEEDIT, bIsDir); + DialogEnableWindow(IDC_SIZECOMBO, bIsDir && !m_bAllSize); + DialogEnableWindow(IDC_SIZEEDIT, bIsDir && !m_bAllSize); DialogEnableWindow(IDC_INCLUDESYSTEM, bIsDir); DialogEnableWindow(IDC_INCLUDEHIDDEN, bIsDir); DialogEnableWindow(IDC_INCLUDESUBFOLDERS, bIsDir); @@ -1381,28 +1383,13 @@ LRESULT CSearchDlg::DoCommand(int id, int msg) } } break; + case IDC_ALLSIZERADIO: + case IDC_SIZERADIO: + m_bAllSize = (IsDlgButtonChecked(*this, IDC_ALLSIZERADIO) == BST_CHECKED); + DialogEnableWindow(IDC_SIZECOMBO, !m_bAllSize); + DialogEnableWindow(IDC_SIZEEDIT, !m_bAllSize); + break; case IDC_SIZEEDIT: - { - if (msg == EN_CHANGE) - { - wchar_t buf[20] = {0}; - ::GetDlgItemText(*this, IDC_SIZEEDIT, buf, _countof(buf)); - if (wcslen(buf)) - { - if (IsDlgButtonChecked(*this, IDC_ALLSIZERADIO) == BST_CHECKED) - { - CheckRadioButton(*this, IDC_ALLSIZERADIO, IDC_SIZERADIO, IDC_SIZERADIO); - } - } - else - { - if (IsDlgButtonChecked(*this, IDC_SIZERADIO) == BST_CHECKED) - { - CheckRadioButton(*this, IDC_ALLSIZERADIO, IDC_SIZERADIO, IDC_ALLSIZERADIO); - } - } - } - } break; case IDC_REGEXRADIO: case IDC_TEXTRADIO: @@ -2829,6 +2816,8 @@ bool CSearchDlg::SaveSettings() } m_bAllSize = (IsDlgButtonChecked(*this, IDC_ALLSIZERADIO) == BST_CHECKED); + DialogEnableWindow(IDC_SIZEEDIT, !m_bAllSize); + DialogEnableWindow(IDC_SIZECOMBO, !m_bAllSize); m_sizeCmp = 0; if (!m_bAllSize) diff --git a/grepWinNP3/src/SearchDlg.h b/grepWinNP3/src/SearchDlg.h index e1b194ab9..86943d937 100644 --- a/grepWinNP3/src/SearchDlg.h +++ b/grepWinNP3/src/SearchDlg.h @@ -125,7 +125,7 @@ public: inline void SetWholeWords(bool bSet) { m_bWholeWordsC = true; m_bWholeWords = bSet; } inline void SetUTF8(bool bSet) { m_bUTF8C = true; m_bUTF8 = bSet; m_bForceBinary = false; } inline void SetBinary(bool bSet) { m_bUTF8C = true; m_bForceBinary = bSet; m_bUTF8 = false; } - inline void SetSize(uint64_t size, int cmp) { m_bSizeC = true; m_lSize = size; m_sizeCmp = cmp; m_bAllSize = (size == MaxFileSize()); } + inline void SetSize(uint64_t size, int cmp) { m_bSizeC = true; m_lSize = size << 10; m_sizeCmp = cmp; m_bAllSize = (m_lSize == MaxFileSize()) ? true : m_bAllSize; } inline void SetIncludeSystem(bool bSet) { m_bIncludeSystemC = true; m_bIncludeSystem = bSet; } inline void SetIncludeHidden(bool bSet) { m_bIncludeHiddenC = true; m_bIncludeHidden = bSet; } inline void SetIncludeSubfolders(bool bSet) { m_bIncludeSubfoldersC = true; m_bIncludeSubfolders = bSet; }