From 5dd50d2f59c57b58b97e091ae4ae577dcea87782 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Thu, 10 Feb 2022 23:56:08 +0100 Subject: [PATCH] Search/replace: also highlight results from data queries --- src/lay/lay/laySearchReplaceDialog.cc | 49 +++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/src/lay/lay/laySearchReplaceDialog.cc b/src/lay/lay/laySearchReplaceDialog.cc index 701c9094e..f2f46bdb2 100644 --- a/src/lay/lay/laySearchReplaceDialog.cc +++ b/src/lay/lay/laySearchReplaceDialog.cc @@ -1699,6 +1699,55 @@ SearchReplaceDialog::result_selection_changed () } + } else if (index < int (m_model.data ().size ())) { + + db::DCplxTrans as_dbu = db::DCplxTrans (layout.dbu ()).inverted (); + + const tl::Variant &dr = m_model.data () [index]; + for (tl::Variant::const_iterator v = dr.begin (); v != dr.end (); ++v) { + + lay::Marker *marker = new lay::Marker (view (), cv_index); + + if (v->is_user ()) { + marker->set (v->to_user (), as_dbu, global_trans); + } else if (v->is_user ()) { + marker->set (v->to_user (), db::ICplxTrans (), global_trans); + } else if (v->is_user ()) { + marker->set (v->to_user (), as_dbu, global_trans); + } else if (v->is_user ()) { + marker->set (v->to_user (), db::ICplxTrans (), global_trans); + } else if (v->is_user ()) { + marker->set (v->to_user (), as_dbu, global_trans); + } else if (v->is_user ()) { + marker->set (v->to_user (), db::ICplxTrans (), global_trans); + } else if (v->is_user ()) { + marker->set (v->to_user (), as_dbu, global_trans); + } else if (v->is_user ()) { + marker->set (v->to_user (), db::ICplxTrans (), global_trans); + } else if (v->is_user ()) { + db::DPoint p = v->to_user (); + marker->set (db::DBox (p, p), as_dbu, global_trans); + } else if (v->is_user ()) { + db::Point p = v->to_user (); + marker->set (db::Box (p, p), db::ICplxTrans (), global_trans); + } else if (v->is_user ()) { + db::DPoint p = db::DPoint () + v->to_user (); + marker->set (db::DBox (p, p), as_dbu, global_trans); + } else if (v->is_user ()) { + db::Point p = db::Point () + v->to_user (); + marker->set (db::Box (p, p), db::ICplxTrans (), global_trans); + } else { + delete marker; + marker = 0; + } + + if (marker) { + mp_markers.push_back (marker); + dbox += marker->bbox (); + } + + } + } }