mirror of https://github.com/KLayout/klayout.git
Search/replace: also highlight results from data queries
This commit is contained in:
parent
3f2ca1dfbe
commit
5dd50d2f59
|
|
@ -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<db::DBox> ()) {
|
||||
marker->set (v->to_user<db::DBox> (), as_dbu, global_trans);
|
||||
} else if (v->is_user<db::Box> ()) {
|
||||
marker->set (v->to_user<db::Box> (), db::ICplxTrans (), global_trans);
|
||||
} else if (v->is_user<db::DEdge> ()) {
|
||||
marker->set (v->to_user<db::DEdge> (), as_dbu, global_trans);
|
||||
} else if (v->is_user<db::Edge> ()) {
|
||||
marker->set (v->to_user<db::Edge> (), db::ICplxTrans (), global_trans);
|
||||
} else if (v->is_user<db::DPolygon> ()) {
|
||||
marker->set (v->to_user<db::DPolygon> (), as_dbu, global_trans);
|
||||
} else if (v->is_user<db::Polygon> ()) {
|
||||
marker->set (v->to_user<db::Polygon> (), db::ICplxTrans (), global_trans);
|
||||
} else if (v->is_user<db::DPath> ()) {
|
||||
marker->set (v->to_user<db::DPath> (), as_dbu, global_trans);
|
||||
} else if (v->is_user<db::Path> ()) {
|
||||
marker->set (v->to_user<db::Path> (), db::ICplxTrans (), global_trans);
|
||||
} else if (v->is_user<db::DPoint> ()) {
|
||||
db::DPoint p = v->to_user<db::DPoint> ();
|
||||
marker->set (db::DBox (p, p), as_dbu, global_trans);
|
||||
} else if (v->is_user<db::Point> ()) {
|
||||
db::Point p = v->to_user<db::Point> ();
|
||||
marker->set (db::Box (p, p), db::ICplxTrans (), global_trans);
|
||||
} else if (v->is_user<db::DVector> ()) {
|
||||
db::DPoint p = db::DPoint () + v->to_user<db::DVector> ();
|
||||
marker->set (db::DBox (p, p), as_dbu, global_trans);
|
||||
} else if (v->is_user<db::Vector> ()) {
|
||||
db::Point p = db::Point () + v->to_user<db::Vector> ();
|
||||
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 ();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue