diff --git a/uppsrc/CodeEditor/CodeEditor.h b/uppsrc/CodeEditor/CodeEditor.h index 806493412..c6ec08e91 100644 --- a/uppsrc/CodeEditor/CodeEditor.h +++ b/uppsrc/CodeEditor/CodeEditor.h @@ -491,10 +491,11 @@ public: struct FindReplaceData { String find, replace; + String find_list, replace_list; bool wholeword, wildcards, ignorecase, samecase, regexp; }; - FindReplaceData GetFindReplaceData() const; + FindReplaceData GetFindReplaceData(); void SetFindReplaceData(const FindReplaceData& d); typedef CodeEditor CLASSNAME; @@ -505,6 +506,9 @@ public: static void InitKeywords(); }; +String ReadList(WithDropChoice& e); +void WriteList(WithDropChoice& e, const String& data); + END_UPP_NAMESPACE #endif diff --git a/uppsrc/CodeEditor/FindReplace.cpp b/uppsrc/CodeEditor/FindReplace.cpp index 4c3e696df..7ca7c0dbf 100644 --- a/uppsrc/CodeEditor/FindReplace.cpp +++ b/uppsrc/CodeEditor/FindReplace.cpp @@ -817,7 +817,20 @@ void CodeEditor::SerializeFind(Stream& s) findreplace.replace.SerializeList(s); } -CodeEditor::FindReplaceData CodeEditor::GetFindReplaceData() const +String ReadList(WithDropChoice& e) +{ + StringStream ss; + e.SerializeList(ss); + return ss; +} + +void WriteList(WithDropChoice& e, const String& data) +{ + StringStream ss(data); + e.SerializeList(ss); +} + +CodeEditor::FindReplaceData CodeEditor::GetFindReplaceData() { FindReplaceData r; r.find = ~findreplace.find; @@ -827,6 +840,8 @@ CodeEditor::FindReplaceData CodeEditor::GetFindReplaceData() const r.wildcards = ~findreplace.wildcards; r.samecase = ~findreplace.samecase; r.regexp = ~findreplace.regexp; + r.find_list = ReadList(findreplace.find); + r.replace_list = ReadList(findreplace.replace); return r; } @@ -840,6 +855,8 @@ void CodeEditor::SetFindReplaceData(const FindReplaceData& r) findreplace.samecase <<= r.samecase; findreplace.regexp <<= r.regexp; findreplace.mode <<= 0; + WriteList(findreplace.find, r.find_list); + WriteList(findreplace.replace, r.replace_list); } void CodeEditor::FindPrevNext(bool prev) diff --git a/uppsrc/ide/FindInFiles.cpp b/uppsrc/ide/FindInFiles.cpp index 43eec4cb5..7764955f2 100644 --- a/uppsrc/ide/FindInFiles.cpp +++ b/uppsrc/ide/FindInFiles.cpp @@ -243,20 +243,26 @@ void Ide::FindInFiles(bool replace) { (ff.wildcards, d.wildcards) (ff.regexp, d.regexp) ; + WriteList(ff.find, d.find_list); + WriteList(ff.replace, d.replace_list); ff.Sync(); if(String(ff.folder).IsEmpty()) ff.folder <<= GetUppDir(); ff.style <<= STYLE_NO_REPLACE; ff.Sync(); ff.itext = editor.GetI(); - ff.Setup(replace); + ff.Setup(replace); int c = ff.Execute(); + ff.find.AddHistory(); + ff.replace.AddHistory(); + rf.Retrieve(); + d.find_list = ReadList(ff.find); + d.replace_list = ReadList(ff.replace); editor.SetFindReplaceData(d); - if(c == IDOK) { ffound.HeaderTab(2).SetText("Source line"); Renumber(); diff --git a/uppsrc/ide/Swaps.cpp b/uppsrc/ide/Swaps.cpp index 31df4c64d..a0455d9a9 100644 --- a/uppsrc/ide/Swaps.cpp +++ b/uppsrc/ide/Swaps.cpp @@ -1,6 +1,6 @@ #include "ide.h" -#define LLOG(x) DLOG(x) +#define LLOG(x) // DLOG(x) void AssistEditor::SwapSContext(Parser& p) {