diff --git a/PowerEditor/src/ScitillaComponent/FindReplaceDlg.cpp b/PowerEditor/src/ScitillaComponent/FindReplaceDlg.cpp index eca5e872e..6432845a1 100644 --- a/PowerEditor/src/ScitillaComponent/FindReplaceDlg.cpp +++ b/PowerEditor/src/ScitillaComponent/FindReplaceDlg.cpp @@ -374,6 +374,14 @@ void FindReplaceDlg::fillComboHistory(int id, const vector & str { addText2Combo(i->c_str(), hCombo); } + + //empty string is not added to CB items, so we need to set it manually + if (!strings.empty() && strings.begin()->empty()) + { + SetWindowText(hCombo, _T("")); + return; + } + ::SendMessage(hCombo, CB_SETCURSEL, 0, 0); // select first item } @@ -383,13 +391,13 @@ void FindReplaceDlg::saveFindHistory() if (! isCreated()) return; FindHistory& findHistory = (NppParameters::getInstance())->getFindHistory(); - saveComboHistory(IDD_FINDINFILES_DIR_COMBO, findHistory._nbMaxFindHistoryPath, findHistory._findHistoryPaths); - saveComboHistory(IDD_FINDINFILES_FILTERS_COMBO, findHistory._nbMaxFindHistoryFilter, findHistory._findHistoryFilters); - saveComboHistory(IDFINDWHAT, findHistory._nbMaxFindHistoryFind, findHistory._findHistoryFinds); - saveComboHistory(IDREPLACEWITH, findHistory._nbMaxFindHistoryReplace, findHistory._findHistoryReplaces); + saveComboHistory(IDD_FINDINFILES_DIR_COMBO, findHistory._nbMaxFindHistoryPath, findHistory._findHistoryPaths, false); + saveComboHistory(IDD_FINDINFILES_FILTERS_COMBO, findHistory._nbMaxFindHistoryFilter, findHistory._findHistoryFilters, true); + saveComboHistory(IDFINDWHAT, findHistory._nbMaxFindHistoryFind, findHistory._findHistoryFinds, false); + saveComboHistory(IDREPLACEWITH, findHistory._nbMaxFindHistoryReplace, findHistory._findHistoryReplaces, true); } -int FindReplaceDlg::saveComboHistory(int id, int maxcount, vector & strings) +int FindReplaceDlg::saveComboHistory(int id, int maxcount, vector & strings, bool saveEmpty) { TCHAR text[FINDREPLACE_MAXLENGTH]; HWND hCombo = ::GetDlgItem(_hSelf, id); @@ -401,6 +409,14 @@ int FindReplaceDlg::saveComboHistory(int id, int maxcount, vector(text)); diff --git a/PowerEditor/src/ScitillaComponent/FindReplaceDlg.h b/PowerEditor/src/ScitillaComponent/FindReplaceDlg.h index f6d48fb30..2333504da 100644 --- a/PowerEditor/src/ScitillaComponent/FindReplaceDlg.h +++ b/PowerEditor/src/ScitillaComponent/FindReplaceDlg.h @@ -401,7 +401,7 @@ private : void updateCombo(int comboID); void fillFindHistory(); void fillComboHistory(int id, const std::vector & strings); - int saveComboHistory(int id, int maxcount, std::vector & strings); + int saveComboHistory(int id, int maxcount, std::vector & strings, bool saveEmpty); static const int FR_OP_FIND = 1; static const int FR_OP_REPLACE = 2; static const int FR_OP_FIF = 4;