Roll back from 2 find buttons to 1 find button

Due to 2 find buttons logic limit (lost replacing up capacity), the
direction option is added back, and 1 find button is restored (instead
of 2 find buttons).
This commit is contained in:
Don HO 2017-08-12 04:46:38 +02:00
parent f55b137cc0
commit 4d921b7ffd
4 changed files with 20 additions and 32 deletions

View File

@ -238,8 +238,6 @@ FindReplaceDlg::~FindReplaceDlg()
if (_shiftTrickUpTip) if (_shiftTrickUpTip)
::DestroyWindow(_shiftTrickUpTip); ::DestroyWindow(_shiftTrickUpTip);
if (_shiftTrickDownTip)
::DestroyWindow(_shiftTrickDownTip);
delete[] _uniFileName; delete[] _uniFileName;
} }
@ -303,9 +301,7 @@ void FindReplaceDlg::fillFindHistory()
::SendDlgItemMessage(_hSelf, IDWRAP, BM_SETCHECK, findHistory._isWrap, 0); ::SendDlgItemMessage(_hSelf, IDWRAP, BM_SETCHECK, findHistory._isWrap, 0);
::SendDlgItemMessage(_hSelf, IDWHOLEWORD, BM_SETCHECK, findHistory._isMatchWord, 0); ::SendDlgItemMessage(_hSelf, IDWHOLEWORD, BM_SETCHECK, findHistory._isMatchWord, 0);
::SendDlgItemMessage(_hSelf, IDMATCHCASE, BM_SETCHECK, findHistory._isMatchCase, 0); ::SendDlgItemMessage(_hSelf, IDMATCHCASE, BM_SETCHECK, findHistory._isMatchCase, 0);
::SendDlgItemMessage(_hSelf, IDC_BACKWARDDIRECTION, BM_SETCHECK, !findHistory._isDirectionDown, 0);
::SendDlgItemMessage(_hSelf, IDDIRECTIONUP, BM_SETCHECK, !findHistory._isDirectionDown, 0);
::SendDlgItemMessage(_hSelf, IDDIRECTIONDOWN, BM_SETCHECK, findHistory._isDirectionDown, 0);
::SendDlgItemMessage(_hSelf, IDD_FINDINFILES_INHIDDENDIR_CHECK, BM_SETCHECK, findHistory._isFifInHiddenFolder, 0); ::SendDlgItemMessage(_hSelf, IDD_FINDINFILES_INHIDDENDIR_CHECK, BM_SETCHECK, findHistory._isFifInHiddenFolder, 0);
::SendDlgItemMessage(_hSelf, IDD_FINDINFILES_RECURSIVE_CHECK, BM_SETCHECK, findHistory._isFifRecuisive, 0); ::SendDlgItemMessage(_hSelf, IDD_FINDINFILES_RECURSIVE_CHECK, BM_SETCHECK, findHistory._isFifRecuisive, 0);
@ -322,7 +318,7 @@ void FindReplaceDlg::fillFindHistory()
::EnableWindow(::GetDlgItem(_hSelf, IDWHOLEWORD), (BOOL)false); ::EnableWindow(::GetDlgItem(_hSelf, IDWHOLEWORD), (BOOL)false);
//regex upward search is disable in v6.3 due to a regression //regex upward search is disable in v6.3 due to a regression
::EnableWindow(::GetDlgItem(_hSelf, IDC_FINDPREV), (BOOL)false); //::EnableWindow(::GetDlgItem(_hSelf, IDC_FINDPREV), (BOOL)false);
// If the search mode from history is regExp then enable the checkbox (. matches newline) // If the search mode from history is regExp then enable the checkbox (. matches newline)
::EnableWindow(GetDlgItem(_hSelf, IDREDOTMATCHNL), true); ::EnableWindow(GetDlgItem(_hSelf, IDREDOTMATCHNL), true);
@ -710,7 +706,7 @@ void FindReplaceDlg::resizeDialogElements(LONG newWidth)
IDC_PERCENTAGE_SLIDER , IDC_REPLACEINSELECTION , IDC_IN_SELECTION_CHECK, IDC_PERCENTAGE_SLIDER , IDC_REPLACEINSELECTION , IDC_IN_SELECTION_CHECK,
IDD_FINDINFILES_BROWSE_BUTTON, IDCMARKALL, IDC_CLEAR_ALL, IDCCOUNTALL, IDC_FINDALL_OPENEDFILES, IDC_FINDALL_CURRENTFILE, IDD_FINDINFILES_BROWSE_BUTTON, IDCMARKALL, IDC_CLEAR_ALL, IDCCOUNTALL, IDC_FINDALL_OPENEDFILES, IDC_FINDALL_CURRENTFILE,
IDREPLACE, IDREPLACEALL,IDC_REPLACE_OPENEDFILES, IDD_FINDINFILES_FIND_BUTTON, IDD_FINDINFILES_REPLACEINFILES, IDC_FINDPREV, IDOK, IDCANCEL, IDREPLACE, IDREPLACEALL,IDC_REPLACE_OPENEDFILES, IDD_FINDINFILES_FIND_BUTTON, IDD_FINDINFILES_REPLACEINFILES, IDOK, IDCANCEL,
}; };
const UINT flags = SWP_NOZORDER | SWP_NOOWNERZORDER | SWP_NOACTIVATE | SWP_NOCOPYBITS; const UINT flags = SWP_NOZORDER | SWP_NOOWNERZORDER | SWP_NOACTIVATE | SWP_NOCOPYBITS;
@ -803,18 +799,13 @@ INT_PTR CALLBACK FindReplaceDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
tip2show = TEXT("Use Shift+Enter to search in the opposite direction."); tip2show = TEXT("Use Shift+Enter to search in the opposite direction.");
_shiftTrickUpTip = CreateToolTip(IDOK, _hSelf, _hInst, const_cast<PTSTR>(tip2show.c_str())); _shiftTrickUpTip = CreateToolTip(IDOK, _hSelf, _hInst, const_cast<PTSTR>(tip2show.c_str()));
_shiftTrickDownTip = CreateToolTip(IDC_FINDPREV, _hSelf, _hInst, const_cast<PTSTR>(tip2show.c_str()));
if (_shiftTrickUpTip && _shiftTrickDownTip) if (_shiftTrickUpTip)
{ {
SendMessage(_shiftTrickUpTip, TTM_ACTIVATE, TRUE, 0); SendMessage(_shiftTrickUpTip, TTM_ACTIVATE, TRUE, 0);
SendMessage(_shiftTrickUpTip, TTM_SETMAXTIPWIDTH, 0, 200); SendMessage(_shiftTrickUpTip, TTM_SETMAXTIPWIDTH, 0, 200);
// Make tip stay 15 seconds // Make tip stay 15 seconds
SendMessage(_shiftTrickUpTip, TTM_SETDELAYTIME, TTDT_AUTOPOP, MAKELPARAM((15000), (0))); SendMessage(_shiftTrickUpTip, TTM_SETDELAYTIME, TTDT_AUTOPOP, MAKELPARAM((15000), (0)));
SendMessage(_shiftTrickDownTip, TTM_ACTIVATE, TRUE, 0);
SendMessage(_shiftTrickDownTip, TTM_SETMAXTIPWIDTH, 0, 200);
// Make tip stay 15 seconds
SendMessage(_shiftTrickDownTip, TTM_SETDELAYTIME, TTDT_AUTOPOP, MAKELPARAM((15000), (0)));
} }
return TRUE; return TRUE;
@ -939,7 +930,7 @@ INT_PTR CALLBACK FindReplaceDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
setStatusbarMessage(generic_string(), FSNoMessage); setStatusbarMessage(generic_string(), FSNoMessage);
display(false); display(false);
break; break;
case IDC_FINDPREV:
case IDOK : // Find Next : only for FIND_DLG and REPLACE_DLG case IDOK : // Find Next : only for FIND_DLG and REPLACE_DLG
{ {
setStatusbarMessage(generic_string(), FSNoMessage); setStatusbarMessage(generic_string(), FSNoMessage);
@ -952,10 +943,7 @@ INT_PTR CALLBACK FindReplaceDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
if (isMacroRecording) if (isMacroRecording)
saveInMacro(wParam, FR_OP_FIND); saveInMacro(wParam, FR_OP_FIND);
bool direction_bak = DIR_UP; bool direction_bak = _options._whichDirection;
if (LOWORD(wParam) == IDOK)
direction_bak = DIR_DOWN;
_options._whichDirection = direction_bak;
// if shift-key is pressed, revert search direction // if shift-key is pressed, revert search direction
// if shift-key is not pressed, use the normal setting // if shift-key is not pressed, use the normal setting
@ -1288,22 +1276,22 @@ INT_PTR CALLBACK FindReplaceDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
::SendDlgItemMessage(_hSelf, IDWHOLEWORD, BM_SETCHECK, _options._isWholeWord?BST_CHECKED:BST_UNCHECKED, 0); ::SendDlgItemMessage(_hSelf, IDWHOLEWORD, BM_SETCHECK, _options._isWholeWord?BST_CHECKED:BST_UNCHECKED, 0);
//regex upward search is disable in v6.3 due to a regression //regex upward search is disable in v6.3 due to a regression
::SendDlgItemMessage(_hSelf, IDC_BACKWARDDIRECTION, BM_SETCHECK, BST_UNCHECKED, 0);
_options._whichDirection = DIR_DOWN; _options._whichDirection = DIR_DOWN;
} }
::EnableWindow(::GetDlgItem(_hSelf, IDWHOLEWORD), (BOOL)!isRegex); ::EnableWindow(::GetDlgItem(_hSelf, IDWHOLEWORD), (BOOL)!isRegex);
//regex upward search is disable in v6.3 due to a regression //regex upward search is disable in v6.3 due to a regression
::EnableWindow(::GetDlgItem(_hSelf, IDC_FINDPREV), (BOOL)!isRegex); ::EnableWindow(::GetDlgItem(_hSelf, IDC_BACKWARDDIRECTION), (BOOL)!isRegex);
return TRUE; } return TRUE; }
case IDWRAP : case IDWRAP :
findHistory._isWrap = _options._isWrapAround = isCheckedOrNot(IDWRAP); findHistory._isWrap = _options._isWrapAround = isCheckedOrNot(IDWRAP);
return TRUE; return TRUE;
case IDDIRECTIONUP : case IDC_BACKWARDDIRECTION:
case IDDIRECTIONDOWN : _options._whichDirection = isCheckedOrNot(IDC_BACKWARDDIRECTION) ? DIR_UP : DIR_DOWN;
_options._whichDirection = (BST_CHECKED == ::SendMessage(::GetDlgItem(_hSelf, IDDIRECTIONDOWN), BM_GETCHECK, BST_CHECKED, 0));
findHistory._isDirectionDown = _options._whichDirection == DIR_DOWN; findHistory._isDirectionDown = _options._whichDirection == DIR_DOWN;
return TRUE; return TRUE;
@ -2320,13 +2308,14 @@ void FindReplaceDlg::enableMarkAllControls(bool isEnable)
::ShowWindow(::GetDlgItem(_hSelf, IDC_CLEAR_ALL),hideOrShow); ::ShowWindow(::GetDlgItem(_hSelf, IDC_CLEAR_ALL),hideOrShow);
::ShowWindow(::GetDlgItem(_hSelf, IDC_IN_SELECTION_CHECK), hideOrShow); ::ShowWindow(::GetDlgItem(_hSelf, IDC_IN_SELECTION_CHECK), hideOrShow);
::ShowWindow(::GetDlgItem(_hSelf, IDC_BACKWARDDIRECTION), !hideOrShow);
::ShowWindow(::GetDlgItem(_hSelf, IDC_DIR_STATIC), !hideOrShow); ::ShowWindow(::GetDlgItem(_hSelf, IDC_DIR_STATIC), !hideOrShow);
::ShowWindow(::GetDlgItem(_hSelf, IDC_FINDPREV), !hideOrShow);
} }
void FindReplaceDlg::enableFindInFilesControls(bool isEnable) void FindReplaceDlg::enableFindInFilesControls(bool isEnable)
{ {
// Hide Items // Hide Items
::ShowWindow(::GetDlgItem(_hSelf, IDC_BACKWARDDIRECTION), isEnable?SW_HIDE:SW_SHOW);
::ShowWindow(::GetDlgItem(_hSelf, IDWRAP), isEnable?SW_HIDE:SW_SHOW); ::ShowWindow(::GetDlgItem(_hSelf, IDWRAP), isEnable?SW_HIDE:SW_SHOW);
::ShowWindow(::GetDlgItem(_hSelf, IDCCOUNTALL), isEnable?SW_HIDE:SW_SHOW); ::ShowWindow(::GetDlgItem(_hSelf, IDCCOUNTALL), isEnable?SW_HIDE:SW_SHOW);
::ShowWindow(::GetDlgItem(_hSelf, IDC_FINDALL_OPENEDFILES), isEnable?SW_HIDE:SW_SHOW); ::ShowWindow(::GetDlgItem(_hSelf, IDC_FINDALL_OPENEDFILES), isEnable?SW_HIDE:SW_SHOW);
@ -2340,7 +2329,6 @@ void FindReplaceDlg::enableFindInFilesControls(bool isEnable)
::ShowWindow(::GetDlgItem(_hSelf, IDCMARKALL), isEnable?SW_HIDE:SW_SHOW); ::ShowWindow(::GetDlgItem(_hSelf, IDCMARKALL), isEnable?SW_HIDE:SW_SHOW);
::ShowWindow(::GetDlgItem(_hSelf, IDC_DIR_STATIC), isEnable?SW_HIDE:SW_SHOW); ::ShowWindow(::GetDlgItem(_hSelf, IDC_DIR_STATIC), isEnable?SW_HIDE:SW_SHOW);
::ShowWindow(::GetDlgItem(_hSelf, IDC_FINDPREV), isEnable ? SW_HIDE : SW_SHOW);
::ShowWindow(::GetDlgItem(_hSelf, IDREPLACE), isEnable?SW_HIDE:SW_SHOW); ::ShowWindow(::GetDlgItem(_hSelf, IDREPLACE), isEnable?SW_HIDE:SW_SHOW);
::ShowWindow(::GetDlgItem(_hSelf, IDC_REPLACEINSELECTION), isEnable?SW_HIDE:SW_SHOW); ::ShowWindow(::GetDlgItem(_hSelf, IDC_REPLACEINSELECTION), isEnable?SW_HIDE:SW_SHOW);
@ -2630,7 +2618,7 @@ void FindReplaceDlg::initOptionsFromDlg()
_options._doPurge = isCheckedOrNot(IDC_PURGE_CHECK); _options._doPurge = isCheckedOrNot(IDC_PURGE_CHECK);
_options._doMarkLine = isCheckedOrNot(IDC_MARKLINE_CHECK); _options._doMarkLine = isCheckedOrNot(IDC_MARKLINE_CHECK);
_options._whichDirection = DIR_DOWN; _options._whichDirection = isCheckedOrNot(IDC_BACKWARDDIRECTION) ? DIR_UP : DIR_DOWN;
_options._isRecursive = isCheckedOrNot(IDD_FINDINFILES_RECURSIVE_CHECK); _options._isRecursive = isCheckedOrNot(IDD_FINDINFILES_RECURSIVE_CHECK);
_options._isInHiddenDir = isCheckedOrNot(IDD_FINDINFILES_INHIDDENDIR_CHECK); _options._isInHiddenDir = isCheckedOrNot(IDD_FINDINFILES_INHIDDENDIR_CHECK);

View File

@ -358,7 +358,6 @@ private :
std::vector<Finder *> _findersOfFinder; std::vector<Finder *> _findersOfFinder;
HWND _shiftTrickUpTip = nullptr; HWND _shiftTrickUpTip = nullptr;
HWND _shiftTrickDownTip = nullptr;
bool _isRTL; bool _isRTL;

View File

@ -58,6 +58,7 @@ BEGIN
GROUPBOX "",IDC_REPLACEINSELECTION,192,50,170,23 GROUPBOX "",IDC_REPLACEINSELECTION,192,50,170,23
CONTROL "In select&ion",IDC_IN_SELECTION_CHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,200,58,59,10 CONTROL "In select&ion",IDC_IN_SELECTION_CHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,200,58,59,10
PUSHBUTTON "Clear all marks",IDC_CLEAR_ALL,268,38,90,14 PUSHBUTTON "Clear all marks",IDC_CLEAR_ALL,268,38,90,14
CONTROL "Backward direction", IDC_BACKWARDDIRECTION, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 12, 76, 140, 15
CONTROL "Match &whole word only",IDWHOLEWORD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,88,140,15 CONTROL "Match &whole word only",IDWHOLEWORD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,88,140,15
CONTROL "Match &case",IDMATCHCASE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,100,140,15 CONTROL "Match &case",IDMATCHCASE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,100,140,15
CONTROL "Wra&p around",IDWRAP,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,12,112,110,15 CONTROL "Wra&p around",IDWRAP,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,12,112,110,15
@ -67,8 +68,7 @@ BEGIN
"Button",BS_AUTORADIOBUTTON,12,155,145,10 "Button",BS_AUTORADIOBUTTON,12,155,145,10
CONTROL "Re&gular expression",IDREGEXP,"Button",BS_AUTORADIOBUTTON,12,167,78,10 CONTROL "Re&gular expression",IDREGEXP,"Button",BS_AUTORADIOBUTTON,12,167,78,10
CONTROL "&. matches newline",IDREDOTMATCHNL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,93,167,68,9 CONTROL "&. matches newline",IDREDOTMATCHNL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,93,167,68,9
PUSHBUTTON "<< Find", IDC_FINDPREV, 268, 20, 45, 14, WS_GROUP | BS_MULTILINE PUSHBUTTON "Find Next",IDOK,268,20,90,14,WS_GROUP
PUSHBUTTON "Find >>", IDOK, 313, 20, 45, 14, WS_GROUP | BS_MULTILINE
PUSHBUTTON "Coun&t",IDCCOUNTALL,268,38,90,14 PUSHBUTTON "Coun&t",IDCCOUNTALL,268,38,90,14
PUSHBUTTON "Find All in All &Opened Documents",IDC_FINDALL_OPENEDFILES,268,56,90,21,BS_MULTILINE PUSHBUTTON "Find All in All &Opened Documents",IDC_FINDALL_OPENEDFILES,268,56,90,21,BS_MULTILINE
PUSHBUTTON "Find All in Current Document",IDC_FINDALL_CURRENTFILE,268,80,90,21,BS_MULTILINE PUSHBUTTON "Find All in Current Document",IDC_FINDALL_CURRENTFILE,268,80,90,21,BS_MULTILINE

View File

@ -46,8 +46,8 @@
#define IDREPLACEALL 1609 #define IDREPLACEALL 1609
#define IDREPLACEINSEL 1610 #define IDREPLACEINSEL 1610
#define ID_STATICTEXT_REPLACE 1611 #define ID_STATICTEXT_REPLACE 1611
#define IDDIRECTIONUP 1612 //#define IDDIRECTIONUP 1612
#define IDDIRECTIONDOWN 1613 //#define IDDIRECTIONDOWN 1613
#define IDF_WHICH_DIRECTION 512 #define IDF_WHICH_DIRECTION 512
#define IDCCOUNTALL 1614 #define IDCCOUNTALL 1614
#define IDCMARKALL 1615 #define IDCMARKALL 1615
@ -134,6 +134,7 @@
#define IDEXTENDED_FIFOLDER 1718 #define IDEXTENDED_FIFOLDER 1718
#define IDREGEXP_FIFOLDER 1719 #define IDREGEXP_FIFOLDER 1719
#define IDREDOTMATCHNL_FIFOLDER 1720 #define IDREDOTMATCHNL_FIFOLDER 1720
#define IDC_FINDPREV 1721 //#define IDC_FINDPREV 1721
#define IDC_BACKWARDDIRECTION 1722
#endif //FINDREPLACE_DLG_H #endif //FINDREPLACE_DLG_H