diff --git a/frm/frmEditGrid.cpp b/frm/frmEditGrid.cpp index 81767bf..edc8339 100644 --- a/frm/frmEditGrid.cpp +++ b/frm/frmEditGrid.cpp @@ -1332,8 +1332,21 @@ void frmEditGrid::ShowForm(bool filter) if (relkind == 'r' || relkind == 'v' || relkind == 'x' || relkind == 'f') { + wxJSONValue def(wxJSONType::wxJSONTYPE_OBJECT); + wxJSONValue opt(wxJSONType::wxJSONTYPE_OBJECT); if (filter) { + // load save filter + settings->ReloadJsonFileIfNeed(); + settings->ReadJsonObect(dlgName, opt, def); + if (!opt.IsNull()) { + + } + else opt = def; + + if (opt[tableName].AsString() != "null") { + SetFilter(opt[tableName].AsString()); + } dlgEditGridOptions *winOptions = new dlgEditGridOptions(this, connection, tableName, sqlGrid); abort = !(winOptions->ShowModal()); } @@ -1347,6 +1360,16 @@ void frmEditGrid::ShowForm(bool filter) } else { + if (filter) { + //save filter + wxString f = GetFilter(); + if (f.IsEmpty()) + opt.Remove(tableName); + else + opt[tableName] = f; + settings->WriteJsonObect(dlgName, opt); + + }; Show(true); Go(); } diff --git a/include/utils/dlgTransformText.h b/include/utils/dlgTransformText.h index c84a177..9dc1eb4 100644 --- a/include/utils/dlgTransformText.h +++ b/include/utils/dlgTransformText.h @@ -83,6 +83,8 @@ private: int limitChar; wxString strResult; // UI + int toplineTrg=0; + int toplineSrc=0; bool inizialize; bool isChange = false; bool isNeedTransform = false; diff --git a/utils/dlgTransformText.cpp b/utils/dlgTransformText.cpp index 9f3ceb4..80b27de 100644 --- a/utils/dlgTransformText.cpp +++ b/utils/dlgTransformText.cpp @@ -510,6 +510,9 @@ void dlgTransformText::OnIdle(wxIdleEvent& ev) { wxLogNull logNo; fieldexp = regfld.Compile(v, wxRE_NEWLINE); if (!fieldexp) { + if (trgText->GetTextLength() > 0) + toplineTrg = trgText->GetFirstVisibleLine(); + trgText->ClearAll(); m_msg->SetLabelText(wxString::Format("Error regexp compile!!!")); } @@ -623,7 +626,7 @@ wxString dlgTransformText::ReplaceFormatting( if (ci >= maxsizeintervalarray) break; if (s.length() > 0) isEmptyGroup = false; // verify flags - if (j.flags && 1) { + if (j.flags & 1) { // no print group s = wxEmptyString; } @@ -663,8 +666,10 @@ void dlgTransformText::TransformText(const wxRegEx ®fld) { // Check params interval m[100]; wxRegEx RegNewLine(srcRowSep, wxRE_NEWLINE); - int toplineSrc = srcText->GetFirstVisibleLine(); - int toplineTrg = trgText->GetFirstVisibleLine(); + if (trgText->GetTextLength()>0) + toplineTrg=trgText->GetFirstVisibleLine(); + if (srcText->GetTextLength()>0) + toplineSrc = srcText->GetFirstVisibleLine(); srcText->StyleClearAll(); //srcText->SetText(src); srcText->ClearAll(); @@ -943,8 +948,9 @@ void dlgTransformText::TransformText(const wxRegEx ®fld) { srcText->SetText(src.Mid(0, limitChar)); } if (srcText->GetTextLength()>= limitChar) srcText->AppendText("\n..."); - srcText->SetFirstVisibleLine(toplineSrc); - trgText->SetFirstVisibleLine(toplineTrg); + if (srcText->GetTextLength() > 0) srcText->SetFirstVisibleLine(toplineSrc); + if (trgText->GetTextLength() > 0) trgText->SetFirstVisibleLine(toplineTrg); + srcText->Update(); txtField->Refresh(); trgField->Update();