From 0e37d2fc8da68812fb8f09436b7da466ae7570c1 Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Date: Sun, 4 Nov 2018 02:30:02 +0100 Subject: Fix coding stule and things comented on the MR --- src/document.cpp | 46 +++++++++++++++++++++++++--------------------- 1 file changed, 25 insertions(+), 21 deletions(-) (limited to 'src/document.cpp') diff --git a/src/document.cpp b/src/document.cpp index 450936d25..a9cf5e441 100644 --- a/src/document.cpp +++ b/src/document.cpp @@ -1388,8 +1388,8 @@ static std::vector &find_items_in_area(std::vector &s, bool take_hidden = false, bool take_insensitive = false, bool take_groups = true, - bool take_into_groups = false, - bool take_into_filtered = true) + bool enter_groups = false, + bool enter_filtered = true) { g_return_val_if_fail(SP_IS_GROUP(group), s); @@ -1397,21 +1397,20 @@ static std::vector &find_items_in_area(std::vector &s, if (SPItem *item = dynamic_cast(&o)) { if (SPGroup * childgroup = dynamic_cast(item)) { bool is_layer = childgroup->effectiveLayerMode(dkey) == SPGroup::LAYER; - if (is_layer || (take_into_groups && (!childgroup->isFiltered() || take_into_filtered))) { - s = find_items_in_area(s, childgroup, dkey, area, test, take_hidden, take_insensitive, take_groups, take_into_groups, take_into_filtered); + if (is_layer || (enter_groups && (!childgroup->isFiltered() || enter_filtered))) { + s = find_items_in_area(s, childgroup, dkey, area, test, take_hidden, take_insensitive, take_groups, enter_groups ,enter_filtered); } - if (take_groups && !is_layer) { - Geom::OptRect box = childgroup->desktopVisualBounds(); - if ( box && test(area, *box) && (!childgroup->isLocked() || take_insensitive) && (!childgroup->isHidden() || take_hidden) ) { - s.push_back(item); - } - } - } else { - Geom::OptRect box = item->desktopVisualBounds(); - if ( box && test(area, *box) && (!item->isLocked() || take_insensitive) && (!item->isHidden() || take_hidden) ) { - s.push_back(item); + if (!take_groups || is_layer) { + continue; } } + Geom::OptRect box = item->desktopVisualBounds(); + if (box && test(area, *box) + && (take_insensitive || !item->isLocked()) + && (take_hidden || !item->isHidden())) + { + s.push_back(item); + } } } return s; @@ -1569,23 +1568,28 @@ static SPItem *find_group_at_point(unsigned int dkey, SPGroup *group, Geom::Poin * Assumes box is normalized (and g_asserts it!) * */ -std::vector SPDocument::getItemsInBox(unsigned int dkey, Geom::Rect const &box, bool take_hidden, bool take_insensitive, bool take_groups, bool take_into_groups, bool take_into_filtered) const +std::vector SPDocument::getItemsInBox(unsigned int dkey, Geom::Rect const &box, bool take_hidden, bool take_insensitive, bool take_groups, bool enter_groups ,bool enter_filtered) const { std::vector x; - return find_items_in_area(x, SP_GROUP(this->root), dkey, box, is_within, take_hidden, take_insensitive, take_groups, take_into_groups, take_into_filtered); + return find_items_in_area(x, SP_GROUP(this->root), dkey, box, is_within, take_hidden, take_insensitive, take_groups, enter_groups ,enter_filtered); } /* - * Return list of items, that the parts of the item contained in box - * * Assumes box is normalized (and g_asserts it!) - * + * @param dkey desktop view in use + * @param box area to find items + * @param take_hidden get hidden items + * @param take_insensitive get insensitive items + * @param take_groups get also the groups + * @param enter_groups get items inside groups + * @param enter_filtered get items inside filtered groups + * @return Return list of items, that the parts of the item contained in box */ -std::vector SPDocument::getItemsPartiallyInBox(unsigned int dkey, Geom::Rect const &box, bool take_hidden, bool take_insensitive, bool take_groups, bool take_into_groups, bool take_into_filtered) const +std::vector SPDocument::getItemsPartiallyInBox(unsigned int dkey, Geom::Rect const &box, bool take_hidden, bool take_insensitive, bool take_groups, bool enter_groups ,bool enter_filtered) const { std::vector x; - return find_items_in_area(x, SP_GROUP(this->root), dkey, box, overlaps, take_hidden, take_insensitive, take_groups, take_into_groups, take_into_filtered); + return find_items_in_area(x, SP_GROUP(this->root), dkey, box, overlaps, take_hidden, take_insensitive, take_groups, enter_groups ,enter_filtered); } std::vector SPDocument::getItemsAtPoints(unsigned const key, std::vector points, bool all_layers, size_t limit) const -- cgit v1.2.3