From 437c48c1fb906fb0e27cde4936f5653dafc72ae7 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Fri, 15 Aug 2025 17:36:00 +0200 Subject: [PATCH] Some refactoring (getting rid of an unused attribute) --- src/ant/ant/antService.cc | 64 +++++++++++++++++++-------------------- src/ant/ant/antService.h | 6 ++-- src/ant/ant/gsiDeclAnt.cc | 4 +-- src/img/img/gsiDeclImg.cc | 4 +-- src/img/img/imgService.cc | 62 ++++++++++++++++++------------------- src/img/img/imgService.h | 9 +++--- 6 files changed, 72 insertions(+), 77 deletions(-) diff --git a/src/ant/ant/antService.cc b/src/ant/ant/antService.cc index bccdb0a8d..37ead1bac 100644 --- a/src/ant/ant/antService.cc +++ b/src/ant/ant/antService.cc @@ -1410,8 +1410,8 @@ Service::begin_move (lay::Editable::MoveMode mode, const db::DPoint &p, lay::ang double dmin = std::numeric_limits ::max (); const ant::Object *robj_min = 0; - for (std::map::const_iterator r = m_selected.begin (); r != m_selected.end (); ++r) { - const ant::Object *robj = dynamic_cast ((*r->first).ptr ()); + for (auto r = m_selected.begin (); r != m_selected.end (); ++r) { + const ant::Object *robj = dynamic_cast ((*r)->ptr ()); if (robj) { double d; if (is_selected (*robj, p, l, d)) { @@ -1425,9 +1425,9 @@ Service::begin_move (lay::Editable::MoveMode mode, const db::DPoint &p, lay::ang // further investigate what part to drag - for (std::map::const_iterator r = m_selected.begin (); r != m_selected.end (); ++r) { + for (auto r = m_selected.begin (); r != m_selected.end (); ++r) { - obj_iterator ri = r->first; + obj_iterator ri = *r; const ant::Object *robj = dynamic_cast ((*ri).ptr ()); if (robj && (! robj_min || robj == robj_min)) { @@ -1435,7 +1435,7 @@ Service::begin_move (lay::Editable::MoveMode mode, const db::DPoint &p, lay::ang // found anything: make the moved ruler the selection clear_selection (); - m_selected.insert (std::make_pair (ri, 0)); + m_selected.insert (ri); m_current = *robj; m_original = m_current; m_rulers.push_back (new ant::View (this, &m_current, true)); @@ -1492,7 +1492,7 @@ Service::begin_move (lay::Editable::MoveMode mode, const db::DPoint &p, lay::ang // found anything: make the moved ruler the selection clear_selection (); - m_selected.insert (std::make_pair (mp_view->annotation_shapes ().iterator_from_pointer (&*r), 0)); + m_selected.insert (mp_view->annotation_shapes ().iterator_from_pointer (&*r)); m_current = *robj; m_original = m_current; m_rulers.push_back (new ant::View (this, &m_current, true)); @@ -1667,16 +1667,16 @@ Service::end_move (const db::DPoint &, lay::angle_constraint_type) if (m_move_mode == MoveSelected) { // replace the rulers that were moved: - for (std::map::const_iterator s = m_selected.begin (); s != m_selected.end (); ++s) { + for (auto s = m_selected.begin (); s != m_selected.end (); ++s) { - const ant::Object *robj = dynamic_cast (s->first->ptr ()); + const ant::Object *robj = dynamic_cast ((*s)->ptr ()); if (robj) { // compute moved object and replace ant::Object *rnew = new ant::Object (*robj); rnew->transform (m_trans); int new_id = rnew->id (); - mp_view->annotation_shapes ().replace (s->first, db::DUserObject (rnew)); + mp_view->annotation_shapes ().replace (*s, db::DUserObject (rnew)); annotation_changed_event (new_id); } @@ -1690,7 +1690,7 @@ Service::end_move (const db::DPoint &, lay::angle_constraint_type) // replace the ruler that was moved m_current.clean_points (); - mp_view->annotation_shapes ().replace (m_selected.begin ()->first, db::DUserObject (new ant::Object (m_current))); + mp_view->annotation_shapes ().replace (*m_selected.begin (), db::DUserObject (new ant::Object (m_current))); annotation_changed_event (m_current.id ()); // clear the selection (that was artifically created before) @@ -1717,9 +1717,8 @@ Service::selection_to_view () } m_rulers.clear (); m_rulers.reserve (m_selected.size ()); - for (std::map::iterator r = m_selected.begin (); r != m_selected.end (); ++r) { - r->second = (unsigned int) m_rulers.size (); - const ant::Object *robj = dynamic_cast (r->first->ptr ()); + for (auto r = m_selected.begin (); r != m_selected.end (); ++r) { + const ant::Object *robj = dynamic_cast ((*r)->ptr ()); m_rulers.push_back (new ant::View (this, robj, true /*selected*/)); } } @@ -1728,8 +1727,8 @@ db::DBox Service::selection_bbox () { db::DBox box; - for (std::map::iterator r = m_selected.begin (); r != m_selected.end (); ++r) { - const ant::Object *robj = dynamic_cast (r->first->ptr ()); + for (auto r = m_selected.begin (); r != m_selected.end (); ++r) { + const ant::Object *robj = dynamic_cast ((*r)->ptr ()); if (robj) { box += robj->box (); } @@ -1741,16 +1740,16 @@ void Service::transform (const db::DCplxTrans &trans) { // replace the rulers that were transformed: - for (std::map::const_iterator s = m_selected.begin (); s != m_selected.end (); ++s) { + for (auto s = m_selected.begin (); s != m_selected.end (); ++s) { - const ant::Object *robj = dynamic_cast (s->first->ptr ()); + const ant::Object *robj = dynamic_cast ((*s)->ptr ()); if (robj) { // compute transformed object and replace int id = robj->id (); ant::Object *rnew = new ant::Object (*robj); rnew->transform (trans); - mp_view->annotation_shapes ().replace (s->first, db::DUserObject (rnew)); + mp_view->annotation_shapes ().replace (*s, db::DUserObject (rnew)); annotation_changed_event (id); } @@ -2173,9 +2172,8 @@ void Service::copy_selected () { // extract all selected rulers and paste in "micron" space - for (std::map::iterator r = m_selected.begin (); r != m_selected.end (); ++r) { - r->second = (unsigned int) m_rulers.size (); - const ant::Object *robj = dynamic_cast (r->first->ptr ()); + for (auto r = m_selected.begin (); r != m_selected.end (); ++r) { + const ant::Object *robj = dynamic_cast ((*r)->ptr ()); if (robj) { db::Clipboard::instance () += new db::ClipboardValue (*robj); } @@ -2212,7 +2210,7 @@ Service::paste () if (! new_objects.empty ()) { for (auto r = new_objects.begin (); r != new_objects.end (); ++r) { - m_selected.insert (std::make_pair (mp_view->annotation_shapes ().iterator_from_pointer (*r), 0)); + m_selected.insert (mp_view->annotation_shapes ().iterator_from_pointer (*r)); } selection_to_view (); @@ -2240,8 +2238,8 @@ Service::del_selected () // positions will hold a set of iterators that are to be erased std::vector positions; positions.reserve (m_selected.size ()); - for (std::map::iterator r = m_selected.begin (); r != m_selected.end (); ++r) { - positions.push_back (r->first); + for (auto r = m_selected.begin (); r != m_selected.end (); ++r) { + positions.push_back (*r); } // clear selection @@ -2276,7 +2274,7 @@ Service::select (obj_iterator obj, lay::Editable::SelectionMode mode) if (mode == lay::Editable::Replace || mode == lay::Editable::Add) { // select if (m_selected.find (obj) == m_selected.end ()) { - m_selected.insert (std::make_pair (obj, 0)); + m_selected.insert (obj); return true; } } else if (mode == lay::Editable::Reset) { @@ -2290,7 +2288,7 @@ Service::select (obj_iterator obj, lay::Editable::SelectionMode mode) if (m_selected.find (obj) != m_selected.end ()) { m_selected.erase (obj); } else { - m_selected.insert (std::make_pair (obj, 0)); + m_selected.insert (obj); } return true; } @@ -2312,7 +2310,7 @@ Service::click_proximity (const db::DPoint &pos, lay::Editable::SelectionMode mo // for single-point selections either exclude the current selection or the // accumulated previous selection from the search. - const std::map *exclude = 0; + const std::set *exclude = 0; if (mode == lay::Editable::Replace) { exclude = &m_previous_selection; } else if (mode == lay::Editable::Add) { @@ -2493,7 +2491,7 @@ Service::transient_to_selection () for (lay::AnnotationShapes::iterator r = mp_view->annotation_shapes ().begin (); r != mp_view->annotation_shapes ().end (); ++r) { const ant::Object *robj = dynamic_cast (r->ptr ()); if (robj == mp_transient_ruler->ruler ()) { - m_selected.insert (std::make_pair (r, 0)); + m_selected.insert (r); selection_to_view (); return; } @@ -2523,7 +2521,7 @@ Service::select (const db::DBox &box, lay::Editable::SelectionMode mode) // for single-point selections either exclude the current selection or the // accumulated previous selection from the search. - const std::map *exclude = 0; + const std::set *exclude = 0; if (mode == lay::Editable::Replace) { exclude = &m_previous_selection; } else if (mode == lay::Editable::Add) { @@ -2605,7 +2603,7 @@ Service::select (const db::DBox &box, lay::Editable::SelectionMode mode) // select the one that was found if (any_selected) { select (mp_view->annotation_shapes ().iterator_from_pointer (&*rmin), mode); - m_previous_selection.insert (std::make_pair (mp_view->annotation_shapes ().iterator_from_pointer (&*rmin), mode)); + m_previous_selection.insert (mp_view->annotation_shapes ().iterator_from_pointer (&*rmin)); needs_update = true; } @@ -2667,8 +2665,8 @@ Service::get_selection (std::vector &sel) const sel.reserve (m_selected.size ()); // positions will hold a set of iterators that are to be erased - for (std::map::const_iterator r = m_selected.begin (); r != m_selected.end (); ++r) { - sel.push_back (r->first); + for (auto r = m_selected.begin (); r != m_selected.end (); ++r) { + sel.push_back (*r); } } @@ -2677,7 +2675,7 @@ Service::set_selection (const std::vector &selection) { m_selected.clear (); for (auto i = selection.begin (); i != selection.end (); ++i) { - m_selected.insert (std::make_pair (*i, 0)); + m_selected.insert (*i); } selection_to_view (); diff --git a/src/ant/ant/antService.h b/src/ant/ant/antService.h index 89fe680a2..509d00289 100644 --- a/src/ant/ant/antService.h +++ b/src/ant/ant/antService.h @@ -393,7 +393,7 @@ public: /** * @brief Direct access to the selection */ - const std::map &selection () const + const std::set &selection () const { return m_selected; } @@ -563,9 +563,9 @@ private: // and the moved rules in move mode std::vector m_rulers; // The selection - std::map m_selected; + std::set m_selected; // The previous selection - std::map m_previous_selection; + std::set m_previous_selection; // The reference point in move mode db::DPoint m_p1; // The transformation in MoveSelection mode diff --git a/src/ant/ant/gsiDeclAnt.cc b/src/ant/ant/gsiDeclAnt.cc index a86f84ae7..e5087c2e6 100644 --- a/src/ant/ant/gsiDeclAnt.cc +++ b/src/ant/ant/gsiDeclAnt.cc @@ -1263,7 +1263,7 @@ class AnnotationSelectionIterator { public: typedef AnnotationRef value_type; - typedef std::map::const_iterator iterator_type; + typedef std::set::const_iterator iterator_type; typedef void pointer; typedef value_type reference; typedef std::forward_iterator_tag iterator_category; @@ -1292,7 +1292,7 @@ public: reference operator* () const { - return value_type (*(static_cast (m_iter->first->ptr ())), m_services[m_service]->view ()); + return value_type (*(static_cast ((*m_iter)->ptr ())), m_services[m_service]->view ()); } private: diff --git a/src/img/img/gsiDeclImg.cc b/src/img/img/gsiDeclImg.cc index 3ec2e3cd8..549367b89 100644 --- a/src/img/img/gsiDeclImg.cc +++ b/src/img/img/gsiDeclImg.cc @@ -1272,7 +1272,7 @@ class SelectionIterator { public: typedef ImageRef value_type; - typedef std::map::const_iterator iterator_type; + typedef std::set::const_iterator iterator_type; typedef void pointer; typedef value_type reference; typedef std::forward_iterator_tag iterator_category; @@ -1301,7 +1301,7 @@ public: value_type operator* () const { - return value_type (*(dynamic_cast (m_iter->first->ptr ())), m_services[m_service]->view ()); + return value_type (*(dynamic_cast ((*m_iter)->ptr ())), m_services[m_service]->view ()); } private: diff --git a/src/img/img/imgService.cc b/src/img/img/imgService.cc index 9e5f6b072..5f23b5892 100644 --- a/src/img/img/imgService.cc +++ b/src/img/img/imgService.cc @@ -609,11 +609,11 @@ Service::begin_move (lay::Editable::MoveMode mode, const db::DPoint &p, lay::ang } else if (mode == lay::Editable::Partial) { // test, whether we are moving a handle of one selected object - for (std::map::const_iterator s = m_selected.begin (); s != m_selected.end (); ++s) { + for (auto s = m_selected.begin (); s != m_selected.end (); ++s) { MoveMode mm = move_none; size_t ml = 0; - obj_iterator si = s->first; + obj_iterator si = *s; const img::Object *iobj = dynamic_cast ((*si).ptr ()); if (iobj && dragging_what (iobj, search_dbox, mm, ml, m_p1) && mm != move_all) { @@ -624,7 +624,7 @@ Service::begin_move (lay::Editable::MoveMode mode, const db::DPoint &p, lay::ang // found a handle of one of the selected object: make the moved image the selection clear_selection (); - m_selected.insert (std::make_pair (si, 0)); + m_selected.insert (si); m_current = *iobj; m_initial = m_current; m_selected_image_views.push_back (new img::View (this, &m_current, img::View::mode_transient_move)); @@ -661,7 +661,7 @@ Service::begin_move (lay::Editable::MoveMode mode, const db::DPoint &p, lay::ang // found anything: make the moved image the selection clear_selection (); - m_selected.insert (std::make_pair (mp_view->annotation_shapes ().iterator_from_pointer (robj), 0)); + m_selected.insert (mp_view->annotation_shapes ().iterator_from_pointer (robj)); m_current = *iobj; m_initial = m_current; m_selected_image_views.push_back (new img::View (this, &m_current, img::View::mode_transient_move)); @@ -865,15 +865,15 @@ Service::end_move (const db::DPoint &, lay::angle_constraint_type) if (m_move_mode == move_selected) { // replace the images that were moved: - for (std::map::const_iterator s = m_selected.begin (); s != m_selected.end (); ++s) { + for (auto s = m_selected.begin (); s != m_selected.end (); ++s) { - const img::Object *iobj = dynamic_cast (s->first->ptr ()); + const img::Object *iobj = dynamic_cast ((*s)->ptr ()); // compute moved object and replace // KLUDGE: this creates a copy of the data! img::Object *inew = new img::Object (*iobj); inew->transform (m_trans); - int id = obj2id (mp_view->annotation_shapes ().replace (s->first, db::DUserObject (inew))); + int id = obj2id (mp_view->annotation_shapes ().replace (*s, db::DUserObject (inew))); image_changed_event (id); @@ -886,7 +886,7 @@ Service::end_move (const db::DPoint &, lay::angle_constraint_type) // replace the image that was moved img::Object *inew = new img::Object (m_current); - int id = obj2id (mp_view->annotation_shapes ().replace (m_selected.begin ()->first, db::DUserObject (inew))); + int id = obj2id (mp_view->annotation_shapes ().replace (*m_selected.begin (), db::DUserObject (inew))); image_changed_event (id); // clear the selection (that was artificially created before) @@ -900,7 +900,7 @@ Service::end_move (const db::DPoint &, lay::angle_constraint_type) // replace the image that was moved img::Object *inew = new img::Object (m_current); - int id = obj2id (mp_view->annotation_shapes ().replace (m_selected.begin ()->first, db::DUserObject (inew))); + int id = obj2id (mp_view->annotation_shapes ().replace (*m_selected.begin (), db::DUserObject (inew))); image_changed_event (id); // clear the selection (that was artificially created before) @@ -919,7 +919,7 @@ Service::end_move (const db::DPoint &, lay::angle_constraint_type) } const db::DUserObject * -Service::find_image (const db::DPoint &p, const db::DBox &search_box, double l, double &dmin, const std::map *exclude) +Service::find_image (const db::DPoint &p, const db::DBox &search_box, double l, double &dmin, const std::set *exclude) { if (! m_images_visible) { return 0; @@ -967,9 +967,8 @@ Service::selection_to_view (img::View::Mode mode) m_selected_image_views.clear (); m_selected_image_views.reserve (m_selected.size ()); - for (std::map::iterator r = m_selected.begin (); r != m_selected.end (); ++r) { - r->second = (unsigned int) m_selected_image_views.size (); - m_selected_image_views.push_back (new img::View (this, r->first, mode)); + for (auto r = m_selected.begin (); r != m_selected.end (); ++r) { + m_selected_image_views.push_back (new img::View (this, *r, mode)); } } @@ -977,8 +976,8 @@ db::DBox Service::selection_bbox () { db::DBox box; - for (std::map::iterator r = m_selected.begin (); r != m_selected.end (); ++r) { - const img::Object *iobj = dynamic_cast (r->first->ptr ()); + for (auto r = m_selected.begin (); r != m_selected.end (); ++r) { + const img::Object *iobj = dynamic_cast ((*r)->ptr ()); if (iobj) { box += iobj->box (); } @@ -990,14 +989,14 @@ void Service::transform (const db::DCplxTrans &trans) { // replace the images that were transformed: - for (std::map::const_iterator s = m_selected.begin (); s != m_selected.end (); ++s) { + for (auto s = m_selected.begin (); s != m_selected.end (); ++s) { - const img::Object *iobj = dynamic_cast (s->first->ptr ()); + const img::Object *iobj = dynamic_cast ((*s)->ptr ()); // compute transformed object and replace img::Object *inew = new img::Object (*iobj); inew->transform (trans); - int id = obj2id (mp_view->annotation_shapes ().replace (s->first, db::DUserObject (inew))); + int id = obj2id (mp_view->annotation_shapes ().replace (*s, db::DUserObject (inew))); image_changed_event (id); } @@ -1037,9 +1036,8 @@ void Service::copy_selected () { // extract all selected images and paste in "micron" space - for (std::map::iterator r = m_selected.begin (); r != m_selected.end (); ++r) { - r->second = (unsigned int) m_selected_image_views.size (); - const img::Object *iobj = dynamic_cast (r->first->ptr ()); + for (auto r = m_selected.begin (); r != m_selected.end (); ++r) { + const img::Object *iobj = dynamic_cast ((*r)->ptr ()); db::Clipboard::instance () += new db::ClipboardValue (*iobj); } } @@ -1077,8 +1075,8 @@ Service::del_selected () // positions will hold a set of iterators that are to be erased std::vector positions; positions.reserve (m_selected.size ()); - for (std::map::iterator r = m_selected.begin (); r != m_selected.end (); ++r) { - positions.push_back (r->first); + for (auto r = m_selected.begin (); r != m_selected.end (); ++r) { + positions.push_back (*r); } // clear selection @@ -1117,7 +1115,7 @@ void Service::transient_to_selection () { if (mp_transient_view) { - m_selected.insert (std::make_pair (mp_transient_view->image_ref (), 0)); + m_selected.insert (mp_transient_view->image_ref ()); selection_to_view (); } } @@ -1128,7 +1126,7 @@ Service::select (obj_iterator obj, lay::Editable::SelectionMode mode) if (mode == lay::Editable::Replace || mode == lay::Editable::Add) { // select if (m_selected.find (obj) == m_selected.end ()) { - m_selected.insert (std::make_pair (obj, 0)); + m_selected.insert (obj); return true; } } else if (mode == lay::Editable::Reset) { @@ -1142,7 +1140,7 @@ Service::select (obj_iterator obj, lay::Editable::SelectionMode mode) if (m_selected.find (obj) != m_selected.end ()) { m_selected.erase (obj); } else { - m_selected.insert (std::make_pair (obj, 0)); + m_selected.insert (obj); } return true; } @@ -1179,7 +1177,7 @@ Service::click_proximity (const db::DPoint &pos, lay::Editable::SelectionMode mo // for single-point selections either exclude the current selection or the // accumulated previous selection from the search. - const std::map *exclude = 0; + const std::set *exclude = 0; if (mode == lay::Editable::Replace) { exclude = &m_previous_selection; } else if (mode == lay::Editable::Add) { @@ -1273,7 +1271,7 @@ Service::select (const db::DBox &box, lay::Editable::SelectionMode mode) // for single-point selections either exclude the current selection or the // accumulated previous selection from the search. - const std::map *exclude = 0; + const std::set *exclude = 0; if (mode == lay::Editable::Replace) { exclude = &m_previous_selection; } else if (mode == lay::Editable::Add) { @@ -1339,7 +1337,7 @@ Service::select (const db::DBox &box, lay::Editable::SelectionMode mode) // select the one that was found if (robj) { select (mp_view->annotation_shapes ().iterator_from_pointer (robj), mode); - m_previous_selection.insert (std::make_pair (mp_view->annotation_shapes ().iterator_from_pointer (robj), mode)); + m_previous_selection.insert (mp_view->annotation_shapes ().iterator_from_pointer (robj)); needs_update = true; } @@ -1397,8 +1395,8 @@ Service::get_selection (std::vector &sel) const sel.reserve (m_selected.size ()); // positions will hold a set of iterators that are to be erased - for (std::map::const_iterator r = m_selected.begin (); r != m_selected.end (); ++r) { - sel.push_back (r->first); + for (auto r = m_selected.begin (); r != m_selected.end (); ++r) { + sel.push_back (*r); } } @@ -1407,7 +1405,7 @@ Service::set_selection (const std::vector &selection) { m_selected.clear (); for (auto i = selection.begin (); i != selection.end (); ++i) { - m_selected.insert (std::make_pair (*i, 0)); + m_selected.insert (*i); } selection_to_view (); diff --git a/src/img/img/imgService.h b/src/img/img/imgService.h index 4e637c987..266761f1f 100644 --- a/src/img/img/imgService.h +++ b/src/img/img/imgService.h @@ -389,7 +389,7 @@ public: /** * @brief Direct access to the selection */ - const std::map &selection () const + const std::set &selection () const { return m_selected; } @@ -491,11 +491,10 @@ private: // The view objects representing the selection and the moved images in move mode std::vector m_selected_image_views; - // The present views - only used for issueing a proper // The selection - std::map m_selected; + std::set m_selected; // The previous selection - std::map m_previous_selection; + std::set m_previous_selection; // The reference point in move mode db::DPoint m_p1; // The image object representing the image being moved as it was before it was moved @@ -546,7 +545,7 @@ private: /** * @brief Finds an image object from the given point */ - const db::DUserObject *find_image (const db::DPoint &p, const db::DBox &search_box, double l, double &dmin, const std::map *exclude = 0); + const db::DUserObject *find_image (const db::DPoint &p, const db::DBox &search_box, double l, double &dmin, const std::set *exclude = 0); /** * @brief Update m_selected_image_views to reflect the selection