summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAdrian Boguszewski <adrbogus1@student.pg.gda.pl>2016-07-27 10:19:03 +0000
committerAdrian Boguszewski <adrbogus1@student.pg.gda.pl>2016-07-27 10:19:03 +0000
commitff4fbbc93f67afd6cbf851691833a50d6c76b350 (patch)
tree3bea98560af71f702f0274faf35754e28e042a2d /src
parentChanged coding style (diff)
downloadinkscape-ff4fbbc93f67afd6cbf851691833a50d6c76b350.tar.gz
inkscape-ff4fbbc93f67afd6cbf851691833a50d6c76b350.zip
Renamed some functions, fixed tests
(bzr r14954.1.28)
Diffstat (limited to 'src')
-rw-r--r--src/file.cpp10
-rw-r--r--src/object-set.h10
-rw-r--r--src/selection-chemistry.cpp97
-rw-r--r--src/selection-chemistry.h39
-rw-r--r--src/seltrans.cpp2
-rw-r--r--src/sp-object.cpp3
-rw-r--r--src/ui/clipboard.cpp4
-rw-r--r--src/ui/dialog/export.cpp2
-rw-r--r--src/ui/dialog/transformation.cpp22
-rw-r--r--src/ui/interface.cpp4
-rw-r--r--src/verbs.cpp18
-rw-r--r--src/widgets/select-toolbar.cpp2
12 files changed, 109 insertions, 104 deletions
diff --git a/src/file.cpp b/src/file.cpp
index 9ba180cb4..8743e3b67 100644
--- a/src/file.cpp
+++ b/src/file.cpp
@@ -1129,14 +1129,14 @@ void sp_import_document(SPDesktop *desktop, SPDocument *clipdoc, bool in_place)
Inkscape::Selection *selection = desktop->getSelection();
selection->setReprList(pasted_objects_not);
Geom::Affine doc2parent = SP_ITEM(desktop->currentLayer())->i2doc_affine().inverse();
- sp_selection_apply_affine(selection, desktop->dt2doc() * doc2parent * desktop->doc2dt(), true, false, false);
+ sp_object_set_apply_affine(selection, desktop->dt2doc() * doc2parent * desktop->doc2dt(), true, false, false);
sp_selection_delete(desktop);
// Change the selection to the freshly pasted objects
selection->setReprList(pasted_objects);
// Apply inverse of parent transform
- sp_selection_apply_affine(selection, desktop->dt2doc() * doc2parent * desktop->doc2dt(), true, false, false);
+ sp_object_set_apply_affine(selection, desktop->dt2doc() * doc2parent * desktop->doc2dt(), true, false, false);
// Update (among other things) all curves in paths, for bounds() to work
target_document->ensureUpToDate();
@@ -1166,7 +1166,7 @@ void sp_import_document(SPDesktop *desktop, SPDocument *clipdoc, bool in_place)
m.unSetup();
}
- sp_selection_move_relative(selection, offset);
+ sp_object_set_move_relative(selection, offset);
}
}
@@ -1271,7 +1271,7 @@ file_import(SPDocument *in_doc, const Glib::ustring &uri,
// c2p is identity matrix at this point unless ensureUpToDate is called
doc->ensureUpToDate();
Geom::Affine affine = doc->getRoot()->c2p * SP_ITEM(place_to_insert)->i2doc_affine().inverse();
- sp_selection_apply_affine(selection, desktop->dt2doc() * affine * desktop->doc2dt(), true, false, false);
+ sp_object_set_apply_affine(selection, desktop->dt2doc() * affine * desktop->doc2dt(), true, false, false);
// move to mouse pointer
{
@@ -1279,7 +1279,7 @@ file_import(SPDocument *in_doc, const Glib::ustring &uri,
Geom::OptRect sel_bbox = selection->visualBounds();
if (sel_bbox) {
Geom::Point m( desktop->point() - sel_bbox->midpoint() );
- sp_selection_move_relative(selection, m, false);
+ sp_object_set_move_relative(selection, m, false);
}
}
}
diff --git a/src/object-set.h b/src/object-set.h
index 2772afbe2..fae365f70 100644
--- a/src/object-set.h
+++ b/src/object-set.h
@@ -86,7 +86,7 @@ typedef boost::multi_index_container<
boost::multi_index::hashed_unique<
boost::multi_index::tag<hashed>,
boost::multi_index::identity<SPObject*>>
- >> multi_index_container;
+ >> MultiIndexContainer;
typedef boost::any_range<
SPObject*,
@@ -97,9 +97,9 @@ typedef boost::any_range<
class ObjectSet {
public:
enum CompareSize {HORIZONTAL, VERTICAL, AREA};
- typedef decltype(multi_index_container().get<random_access>() | boost::adaptors::filtered(is_item()) | boost::adaptors::transformed(object_to_item())) SPItemRange;
- typedef decltype(multi_index_container().get<random_access>() | boost::adaptors::filtered(is_group()) | boost::adaptors::transformed(object_to_group())) SPGroupRange;
- typedef decltype(multi_index_container().get<random_access>() | boost::adaptors::filtered(is_item()) | boost::adaptors::transformed(object_to_node())) XMLNodeRange;
+ typedef decltype(MultiIndexContainer().get<random_access>() | boost::adaptors::filtered(is_item()) | boost::adaptors::transformed(object_to_item())) SPItemRange;
+ typedef decltype(MultiIndexContainer().get<random_access>() | boost::adaptors::filtered(is_group()) | boost::adaptors::transformed(object_to_group())) SPGroupRange;
+ typedef decltype(MultiIndexContainer().get<random_access>() | boost::adaptors::filtered(is_item()) | boost::adaptors::transformed(object_to_node())) XMLNodeRange;
ObjectSet(SPDesktop* desktop): _desktop(desktop) {};
ObjectSet(): _desktop(nullptr) {};
@@ -302,7 +302,7 @@ protected:
virtual void _add3DBoxesRecursively(SPObject *obj);
virtual void _remove3DBoxesRecursively(SPObject *obj);
- multi_index_container _container;
+ MultiIndexContainer _container;
GC::soft_ptr<SPDesktop> _desktop;
std::list<SPBox3D *> _3dboxes;
std::unordered_map<SPObject*, sigc::connection> _releaseConnections;
diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp
index e8c408ed8..cd0a29b05 100644
--- a/src/selection-chemistry.cpp
+++ b/src/selection-chemistry.cpp
@@ -694,7 +694,7 @@ void sp_edit_invert_in_all_layers(SPDesktop *desktop)
sp_edit_select_all_full(desktop, true, true);
}
-static Inkscape::XML::Node* sp_selection_group(ObjectSet *set) {
+static Inkscape::XML::Node* sp_object_set_group(ObjectSet *set) {
SPDocument *doc = set->desktop()->getDocument();
Inkscape::XML::Document *xml_doc = doc->getReprDoc();
Inkscape::XML::Node *group = xml_doc->createElement("svg:g");
@@ -764,14 +764,14 @@ static Inkscape::XML::Node* sp_selection_group(ObjectSet *set) {
return group;
}
-void sp_selection_group_ui(Inkscape::Selection *selection, SPDesktop *desktop)
+void sp_selection_group(Inkscape::Selection *selection, SPDesktop *desktop)
{
// Check if something is selected.
if (selection->isEmpty()) {
selection_display_message(desktop, Inkscape::WARNING_MESSAGE, _("Select <b>some objects</b> to group."));
return;
}
- Inkscape::XML::Node* group = sp_selection_group(selection);
+ Inkscape::XML::Node* group = sp_object_set_group(selection);
DocumentUndo::done(selection->layers()->getDocument(), SP_VERB_SELECTION_GROUP,
C_("Verb", "Group"));
@@ -823,7 +823,7 @@ void sp_selection_ungroup_pop_selection(Inkscape::Selection *selection, SPDeskto
}
-static void sp_selection_ungroup(ObjectSet *set)
+static void sp_object_set_ungroup(ObjectSet *set)
{
GSList *groups = NULL;
for (auto g: set->groups()) {
@@ -882,7 +882,7 @@ static void sp_selection_ungroup(ObjectSet *set)
set->setList(new_select);
}
-void sp_selection_ungroup_ui(Inkscape::Selection *selection, SPDesktop *desktop)
+void sp_selection_ungroup(Inkscape::Selection *selection, SPDesktop *desktop)
{
if (selection->isEmpty()) {
selection_display_message(desktop, Inkscape::WARNING_MESSAGE, _("Select a <b>group</b> to ungroup."));
@@ -893,7 +893,7 @@ void sp_selection_ungroup_ui(Inkscape::Selection *selection, SPDesktop *desktop)
return;
}
- sp_selection_ungroup(selection);
+ sp_object_set_ungroup(selection);
DocumentUndo::done(selection->layers()->getDocument(), SP_VERB_SELECTION_UNGROUP,
_("Ungroup"));
@@ -978,7 +978,7 @@ bool sp_item_repr_compare_position_bool(SPObject const *first, SPObject const *s
((SPItem*)second)->getRepr())<0;
}
-void sp_selection_raise(ObjectSet* set) {
+void sp_object_set_raise(ObjectSet *set) {
std::vector<SPItem*> items(set->items().begin(), set->items().end());
Inkscape::XML::Node *grepr = const_cast<Inkscape::XML::Node *>(items.front()->parent->getRepr());
@@ -1013,7 +1013,7 @@ void sp_selection_raise(ObjectSet* set) {
}
}
-void sp_selection_raise_ui(Inkscape::Selection *selection, SPDesktop *desktop)
+void sp_selection_raise(Inkscape::Selection *selection, SPDesktop *desktop)
{
if (selection->items().empty()) {
selection_display_message(desktop, Inkscape::WARNING_MESSAGE, _("Select <b>object(s)</b> to raise."));
@@ -1025,14 +1025,14 @@ void sp_selection_raise_ui(Inkscape::Selection *selection, SPDesktop *desktop)
selection_display_message(desktop, Inkscape::ERROR_MESSAGE, _("You cannot raise/lower objects from <b>different groups</b> or <b>layers</b>."));
return;
}
- sp_selection_raise(selection);
+ sp_object_set_raise(selection);
DocumentUndo::done(selection->layers()->getDocument(), SP_VERB_SELECTION_RAISE,
//TRANSLATORS: "Raise" means "to raise an object" in the undo history
C_("Undo action", "Raise"));
}
-void sp_selection_raise_to_top(ObjectSet* set) {
+void sp_object_set_raise_to_top(ObjectSet *set) {
std::vector<Inkscape::XML::Node*> rl(set->xmlNodes().begin(), set->xmlNodes().end());
sort(rl.begin(),rl.end(),sp_repr_compare_position_bool);
@@ -1042,7 +1042,7 @@ void sp_selection_raise_to_top(ObjectSet* set) {
}
}
-void sp_selection_raise_to_top_ui(Inkscape::Selection *selection, SPDesktop *desktop)
+void sp_selection_raise_to_top(Inkscape::Selection *selection, SPDesktop *desktop)
{
SPDocument *document = selection->layers()->getDocument();
@@ -1057,13 +1057,13 @@ void sp_selection_raise_to_top_ui(Inkscape::Selection *selection, SPDesktop *des
return;
}
- sp_selection_raise_to_top(selection);
+ sp_object_set_raise_to_top(selection);
DocumentUndo::done(document, SP_VERB_SELECTION_TO_FRONT,
_("Raise to top"));
}
-void sp_selection_lower(ObjectSet *set) {
+void sp_object_set_lower(ObjectSet *set) {
std::vector<SPItem*> items(set->items().begin(), set->items().end());
Inkscape::XML::Node *grepr = const_cast<Inkscape::XML::Node *>(items.front()->parent->getRepr());
@@ -1102,7 +1102,7 @@ void sp_selection_lower(ObjectSet *set) {
}
}
-void sp_selection_lower_ui(Inkscape::Selection *selection, SPDesktop *desktop)
+void sp_selection_lower(Inkscape::Selection *selection, SPDesktop *desktop)
{
if (selection->items().empty()) {
selection_display_message(desktop, Inkscape::WARNING_MESSAGE, _("Select <b>object(s)</b> to lower."));
@@ -1115,14 +1115,14 @@ void sp_selection_lower_ui(Inkscape::Selection *selection, SPDesktop *desktop)
return;
}
- sp_selection_lower(selection);
+ sp_object_set_lower(selection);
DocumentUndo::done(selection->layers()->getDocument(), SP_VERB_SELECTION_LOWER,
//TRANSLATORS: "Lower" means "to lower an object" in the undo history
C_("Undo action", "Lower"));
}
-void sp_selection_lower_to_bottom(ObjectSet *set) {
+void sp_object_set_lower_to_bottom(ObjectSet *set) {
std::vector<Inkscape::XML::Node*> rl(set->xmlNodes().begin(), set->xmlNodes().end());
sort(rl.begin(),rl.end(),sp_repr_compare_position_bool);
@@ -1143,7 +1143,7 @@ void sp_selection_lower_to_bottom(ObjectSet *set) {
}
}
-void sp_selection_lower_to_bottom_ui(Inkscape::Selection *selection, SPDesktop *desktop)
+void sp_selection_lower_to_bottom(Inkscape::Selection *selection, SPDesktop *desktop)
{
if (selection->isEmpty()) {
selection_display_message(desktop, Inkscape::WARNING_MESSAGE, _("Select <b>object(s)</b> to lower to bottom."));
@@ -1156,7 +1156,7 @@ void sp_selection_lower_to_bottom_ui(Inkscape::Selection *selection, SPDesktop *
return;
}
- sp_selection_lower_to_bottom(selection);
+ sp_object_set_lower_to_bottom(selection);
DocumentUndo::done(selection->layers()->getDocument(), SP_VERB_SELECTION_TO_BACK,
_("Lower to bottom"));
@@ -1484,7 +1484,7 @@ void sp_selection_to_layer(SPDesktop *dt, SPObject *moveto, bool suppressDone)
}
static bool
-selection_contains_original(SPItem *item, ObjectSet* set)
+object_set_contains_original(SPItem *item, ObjectSet *set)
{
bool contains_original = false;
@@ -1512,14 +1512,14 @@ selection_contains_original(SPItem *item, ObjectSet* set)
static bool
-selection_contains_both_clone_and_original(ObjectSet *set)
+object_set_contains_both_clone_and_original(ObjectSet *set)
{
bool clone_with_original = false;
auto items = set->items();
for (auto l=items.begin();l!=items.end() ;++l) {
SPItem *item = *l;
if (item) {
- clone_with_original |= selection_contains_original(item, set);
+ clone_with_original |= object_set_contains_original(item, set);
if (clone_with_original)
break;
}
@@ -1533,7 +1533,8 @@ value of set_i2d==false is only used by seltrans when it's dragging objects live
that case, items are already in the new position, but the repr is in the old, and this function
then simply updates the repr from item->transform.
*/
-void sp_selection_apply_affine(ObjectSet *set, Geom::Affine const &affine, bool set_i2d, bool compensate, bool adjust_transf_center)
+void sp_object_set_apply_affine(ObjectSet *set, Geom::Affine const &affine, bool set_i2d, bool compensate,
+ bool adjust_transf_center)
{
if (set->isEmpty())
return;
@@ -1581,7 +1582,7 @@ void sp_selection_apply_affine(ObjectSet *set, Geom::Affine const &affine, bool
#endif
// we're moving both a clone and its original or any ancestor in clone chain?
- bool transform_clone_with_original = selection_contains_original(item, set);
+ bool transform_clone_with_original = object_set_contains_original(item, set);
// ...both a text-on-path and its path?
bool transform_textpath_with_path = ((dynamic_cast<SPText *>(item) && item->firstChild() && dynamic_cast<SPTextPath *>(item->firstChild()))
@@ -1724,7 +1725,7 @@ void sp_selection_apply_affine(ObjectSet *set, Geom::Affine const &affine, bool
}
}
-void sp_selection_remove_transform(SPDesktop *desktop)
+void sp_object_set_remove_transform(SPDesktop *desktop)
{
if (desktop == NULL)
return;
@@ -1741,9 +1742,9 @@ void sp_selection_remove_transform(SPDesktop *desktop)
}
void
-sp_selection_scale_absolute(ObjectSet *set,
- double const x0, double const x1,
- double const y0, double const y1)
+sp_object_set_scale_absolute(ObjectSet *set,
+ double x0, double x1,
+ double y0, double y1)
{
if (set->isEmpty())
return;
@@ -1761,11 +1762,11 @@ sp_selection_scale_absolute(ObjectSet *set,
Geom::Translate const o2n(x0, y0);
Geom::Affine const final( p2o * scale * o2n );
- sp_selection_apply_affine(set, final);
+ sp_object_set_apply_affine(set, final);
}
-void sp_selection_scale_relative(ObjectSet *set, Geom::Point const &align, Geom::Scale const &scale)
+void sp_object_set_scale_relative(ObjectSet *set, Geom::Point const &align, Geom::Scale const &scale)
{
if (set->isEmpty())
return;
@@ -1786,21 +1787,21 @@ void sp_selection_scale_relative(ObjectSet *set, Geom::Point const &align, Geom:
Geom::Translate const n2d(-align);
Geom::Translate const d2n(align);
Geom::Affine const final( n2d * scale * d2n );
- sp_selection_apply_affine(set, final);
+ sp_object_set_apply_affine(set, final);
}
void
-sp_selection_rotate_relative(ObjectSet *set, Geom::Point const &center, gdouble const angle_degrees)
+sp_object_set_rotate_relative(ObjectSet *set, Geom::Point const &center, double angle_degrees)
{
Geom::Translate const d2n(center);
Geom::Translate const n2d(-center);
Geom::Rotate const rotate(Geom::Rotate::from_degrees(angle_degrees));
Geom::Affine const final( Geom::Affine(n2d) * rotate * d2n );
- sp_selection_apply_affine(set, final);
+ sp_object_set_apply_affine(set, final);
}
void
-sp_selection_skew_relative(ObjectSet *set, Geom::Point const &align, double dx, double dy)
+sp_object_set_skew_relative(ObjectSet *set, Geom::Point const &align, double dx, double dy)
{
Geom::Translate const d2n(align);
Geom::Translate const n2d(-align);
@@ -1808,17 +1809,17 @@ sp_selection_skew_relative(ObjectSet *set, Geom::Point const &align, double dx,
dx, 1,
0, 0);
Geom::Affine const final( n2d * skew * d2n );
- sp_selection_apply_affine(set, final);
+ sp_object_set_apply_affine(set, final);
}
-void sp_selection_move_relative(ObjectSet *set, Geom::Point const &move, bool compensate)
+void sp_object_set_move_relative(ObjectSet *set, Geom::Point const &move, bool compensate)
{
- sp_selection_apply_affine(set, Geom::Affine(Geom::Translate(move)), true, compensate);
+ sp_object_set_apply_affine(set, Geom::Affine(Geom::Translate(move)), true, compensate);
}
-void sp_selection_move_relative(ObjectSet *set, double dx, double dy)
+void sp_object_set_move_relative(ObjectSet *set, double dx, double dy)
{
- sp_selection_apply_affine(set, Geom::Affine(Geom::Translate(dx, dy)));
+ sp_object_set_apply_affine(set, Geom::Affine(Geom::Translate(dx, dy)));
}
/**
@@ -1858,7 +1859,7 @@ sp_selection_rotate(Inkscape::Selection *selection, gdouble const angle_degrees)
return;
}
- sp_selection_rotate_relative(selection, *center, angle_degrees);
+ sp_object_set_rotate_relative(selection, *center, angle_degrees);
DocumentUndo::maybeDone(selection->desktop()->getDocument(),
( ( angle_degrees > 0 )
@@ -2207,7 +2208,7 @@ sp_selection_rotate_screen(Inkscape::Selection *selection, gdouble angle)
gdouble const zangle = 180 * atan2(zmove, r) / M_PI;
- sp_selection_rotate_relative(selection, *center, zangle);
+ sp_object_set_rotate_relative(selection, *center, zangle);
DocumentUndo::maybeDone(selection->desktop()->getDocument(),
( (angle > 0)
@@ -2237,7 +2238,7 @@ sp_selection_scale(Inkscape::Selection *selection, gdouble grow)
}
double const times = 1.0 + grow / max_len;
- sp_selection_scale_relative(selection, center, Geom::Scale(times, times));
+ sp_object_set_scale_relative(selection, center, Geom::Scale(times, times));
DocumentUndo::maybeDone(selection->desktop()->getDocument(),
( (grow > 0)
@@ -2266,7 +2267,7 @@ sp_selection_scale_times(Inkscape::Selection *selection, gdouble times)
}
Geom::Point const center(sel_bbox->midpoint());
- sp_selection_scale_relative(selection, center, Geom::Scale(times, times));
+ sp_object_set_scale_relative(selection, center, Geom::Scale(times, times));
DocumentUndo::done(selection->desktop()->getDocument(), SP_VERB_CONTEXT_SELECT,
_("Scale by whole factor"));
}
@@ -2278,7 +2279,7 @@ sp_selection_move(Inkscape::Selection *selection, gdouble dx, gdouble dy)
return;
}
- sp_selection_move_relative(selection, dx, dy);
+ sp_object_set_move_relative(selection, dx, dy);
SPDocument *doc = selection->layers()->getDocument();
if (dx == 0) {
@@ -2304,7 +2305,7 @@ sp_selection_move_screen(Inkscape::Selection *selection, gdouble dx, gdouble dy)
gdouble const zoom = selection->desktop()->current_zoom();
gdouble const zdx = dx / zoom;
gdouble const zdy = dy / zoom;
- sp_selection_move_relative(selection, zdx, zdy);
+ sp_object_set_move_relative(selection, zdx, zdy);
SPDocument *doc = selection->layers()->getDocument();
if (dx == 0) {
@@ -3476,7 +3477,7 @@ void sp_selection_untile(SPDesktop *desktop)
}
}
-void sp_selection_get_export_hints(ObjectSet *set, Glib::ustring &filename, float *xdpi, float *ydpi)
+void sp_object_set_get_export_hints(ObjectSet *set, Glib::ustring &filename, float *xdpi, float *ydpi)
{
if (set->isEmpty()) {
return;
@@ -3627,7 +3628,7 @@ void sp_selection_create_bitmap_copy(SPDesktop *desktop)
float hint_xdpi = 0, hint_ydpi = 0;
Glib::ustring hint_filename;
// take resolution hint from the selected objects
- sp_selection_get_export_hints(selection, hint_filename, &hint_xdpi, &hint_ydpi);
+ sp_object_set_get_export_hints(selection, hint_filename, &hint_xdpi, &hint_ydpi);
if (hint_xdpi != 0) {
res = hint_xdpi;
} else {
@@ -3892,7 +3893,7 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_
// FIXME: temporary patch to prevent crash!
// Remove this when bboxes are fixed to not blow up on an item clipped/masked with its own clone
- bool clone_with_original = selection_contains_both_clone_and_original(selection);
+ bool clone_with_original = object_set_contains_both_clone_and_original(selection);
if (clone_with_original) {
return; // in this version, you cannot clip/mask an object with its own clone
}
@@ -3957,7 +3958,7 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_
items_to_select.clear();
- Inkscape::XML::Node *group = sp_selection_group(set);
+ Inkscape::XML::Node *group = sp_object_set_group(set);
group->setAttribute("inkscape:groupmode", "maskhelper");
// apply clip/mask only to newly created group
diff --git a/src/selection-chemistry.h b/src/selection-chemistry.h
index f6cd4829a..ca9062320 100644
--- a/src/selection-chemistry.h
+++ b/src/selection-chemistry.h
@@ -75,19 +75,19 @@ void sp_selection_unsymbol(SPDesktop *desktop);
void sp_selection_tile(SPDesktop *desktop, bool apply = true);
void sp_selection_untile(SPDesktop *desktop);
-void sp_selection_group_ui(Inkscape::Selection *selection, SPDesktop *desktop);
-void sp_selection_ungroup_ui(Inkscape::Selection *selection, SPDesktop *desktop);
+void sp_selection_group(Inkscape::Selection *selection, SPDesktop *desktop);
+void sp_selection_ungroup(Inkscape::Selection *selection, SPDesktop *desktop);
void sp_selection_ungroup_pop_selection(Inkscape::Selection *selection, SPDesktop *desktop);
-void sp_selection_raise(Inkscape::ObjectSet* set);
-void sp_selection_raise_to_top(Inkscape::ObjectSet* set);
-void sp_selection_lower(Inkscape::ObjectSet *set);
-void sp_selection_lower_to_bottom(Inkscape::ObjectSet *set);
+void sp_object_set_raise(Inkscape::ObjectSet *set);
+void sp_object_set_raise_to_top(Inkscape::ObjectSet *set);
+void sp_object_set_lower(Inkscape::ObjectSet *set);
+void sp_object_set_lower_to_bottom(Inkscape::ObjectSet *set);
-void sp_selection_raise_ui(Inkscape::Selection *selection, SPDesktop *desktop);
-void sp_selection_raise_to_top_ui(Inkscape::Selection *selection, SPDesktop *desktop);
-void sp_selection_lower_ui(Inkscape::Selection *selection, SPDesktop *desktop);
-void sp_selection_lower_to_bottom_ui(Inkscape::Selection *selection, SPDesktop *desktop);
+void sp_selection_raise(Inkscape::Selection *selection, SPDesktop *desktop);
+void sp_selection_raise_to_top(Inkscape::Selection *selection, SPDesktop *desktop);
+void sp_selection_lower(Inkscape::Selection *selection, SPDesktop *desktop);
+void sp_selection_lower_to_bottom(Inkscape::Selection *selection, SPDesktop *desktop);
SPCSSAttr *take_style_from_item (SPObject *object);
@@ -109,14 +109,15 @@ void sp_selection_to_next_layer( SPDesktop *desktop, bool suppressDone = false )
void sp_selection_to_prev_layer( SPDesktop *desktop, bool suppressDone = false );
void sp_selection_to_layer( SPDesktop *desktop, SPObject *layer, bool suppressDone = false );
-void sp_selection_apply_affine(Inkscape::ObjectSet *set, Geom::Affine const &affine, bool set_i2d = true, bool compensate = true, bool adjust_transf_center = true);
-void sp_selection_remove_transform (SPDesktop *desktop);
-void sp_selection_scale_absolute (Inkscape::ObjectSet *set, double x0, double x1, double y0, double y1);
-void sp_selection_scale_relative(Inkscape::ObjectSet *set, Geom::Point const &align, Geom::Scale const &scale);
-void sp_selection_rotate_relative (Inkscape::ObjectSet *set, Geom::Point const &center, double angle);
-void sp_selection_skew_relative (Inkscape::ObjectSet *set, Geom::Point const &align, double dx, double dy);
-void sp_selection_move_relative (Inkscape::ObjectSet *set, Geom::Point const &move, bool compensate = true);
-void sp_selection_move_relative (Inkscape::ObjectSet *set, double dx, double dy);
+void sp_object_set_apply_affine(Inkscape::ObjectSet *set, Geom::Affine const &affine, bool set_i2d = true,
+ bool compensate = true, bool adjust_transf_center = true);
+void sp_object_set_remove_transform(SPDesktop *desktop);
+void sp_object_set_scale_absolute(Inkscape::ObjectSet *set, double x0, double x1, double y0, double y1);
+void sp_object_set_scale_relative(Inkscape::ObjectSet *set, Geom::Point const &align, Geom::Scale const &scale);
+void sp_object_set_rotate_relative(Inkscape::ObjectSet *set, Geom::Point const &center, double angle);
+void sp_object_set_skew_relative(Inkscape::ObjectSet *set, Geom::Point const &align, double dx, double dy);
+void sp_object_set_move_relative(Inkscape::ObjectSet *set, Geom::Point const &move, bool compensate = true);
+void sp_object_set_move_relative(Inkscape::ObjectSet *set, double dx, double dy);
void sp_selection_rotate_90 (SPDesktop *desktop, bool ccw);
void sp_selection_rotate (Inkscape::Selection *selection, double angle);
@@ -157,7 +158,7 @@ void scroll_to_show_item(SPDesktop *desktop, SPItem *item);
void sp_undo (SPDesktop *desktop, SPDocument *doc);
void sp_redo (SPDesktop *desktop, SPDocument *doc);
-void sp_selection_get_export_hints (Inkscape::ObjectSet* set, Glib::ustring &filename, float *xdpi, float *ydpi);
+void sp_object_set_get_export_hints(Inkscape::ObjectSet *set, Glib::ustring &filename, float *xdpi, float *ydpi);
void sp_document_get_export_hints (SPDocument * doc, Glib::ustring &filename, float *xdpi, float *ydpi);
void sp_selection_create_bitmap_copy (SPDesktop *desktop);
diff --git a/src/seltrans.cpp b/src/seltrans.cpp
index f6cb9166c..3054913b6 100644
--- a/src/seltrans.cpp
+++ b/src/seltrans.cpp
@@ -445,7 +445,7 @@ void Inkscape::SelTrans::ungrab()
if (!_current_relative_affine.isIdentity()) { // we can have a identity affine
// when trying to stretch a perfectly vertical line in horizontal direction, which will not be allowed by the handles;
- sp_selection_apply_affine(selection, _current_relative_affine, (_show == SHOW_OUTLINE)? true : false);
+ sp_object_set_apply_affine(selection, _current_relative_affine, (_show == SHOW_OUTLINE) ? true : false);
if (_center) {
*_center *= _current_relative_affine;
_center_is_set = true;
diff --git a/src/sp-object.cpp b/src/sp-object.cpp
index ccd70f4cb..27c788d75 100644
--- a/src/sp-object.cpp
+++ b/src/sp-object.cpp
@@ -151,6 +151,9 @@ SPObject::~SPObject() {
sp_object_unref(this->_successor, NULL);
this->_successor = NULL;
}
+ if (parent) {
+ parent->children.erase(parent->children.iterator_to(*this));
+ }
if( style == NULL ) {
// style pointer could be NULL if unreffed too many times.
diff --git a/src/ui/clipboard.cpp b/src/ui/clipboard.cpp
index b25a70b15..504a5e2ce 100644
--- a/src/ui/clipboard.cpp
+++ b/src/ui/clipboard.cpp
@@ -539,8 +539,8 @@ bool ClipboardManagerImpl::pasteSize(SPDesktop *desktop, bool separately, bool a
else {
Geom::OptRect sel_size = selection->visualBounds();
if ( sel_size ) {
- sp_selection_scale_relative(selection, sel_size->midpoint(),
- _getScale(desktop, min, max, *sel_size, apply_x, apply_y));
+ sp_object_set_scale_relative(selection, sel_size->midpoint(),
+ _getScale(desktop, min, max, *sel_size, apply_x, apply_y));
}
}
pasted = true;
diff --git a/src/ui/dialog/export.cpp b/src/ui/dialog/export.cpp
index 4ab007408..08fc25464 100644
--- a/src/ui/dialog/export.cpp
+++ b/src/ui/dialog/export.cpp
@@ -814,7 +814,7 @@ void Export::onAreaToggled ()
case SELECTION_SELECTION:
if ((SP_ACTIVE_DESKTOP->getSelection())->isEmpty() == false) {
- sp_selection_get_export_hints (SP_ACTIVE_DESKTOP->getSelection(), filename, &xdpi, &ydpi);
+ sp_object_set_get_export_hints(SP_ACTIVE_DESKTOP->getSelection(), filename, &xdpi, &ydpi);
/* If we still don't have a filename -- let's build
one that's nice */
diff --git a/src/ui/dialog/transformation.cpp b/src/ui/dialog/transformation.cpp
index d4a0ffd68..d82b5ded3 100644
--- a/src/ui/dialog/transformation.cpp
+++ b/src/ui/dialog/transformation.cpp
@@ -723,12 +723,12 @@ void Transformation::applyPageMove(Inkscape::Selection *selection)
if (!prefs->getBool("/dialogs/transformation/applyseparately")) {
// move selection as a whole
if (_check_move_relative.get_active()) {
- sp_selection_move_relative(selection, x, y);
+ sp_object_set_move_relative(selection, x, y);
} else {
Geom::OptRect bbox = selection->preferredBounds();
if (bbox) {
- sp_selection_move_relative(selection,
- x - bbox->min()[Geom::X], y - bbox->min()[Geom::Y]);
+ sp_object_set_move_relative(selection,
+ x - bbox->min()[Geom::X], y - bbox->min()[Geom::Y]);
}
}
} else {
@@ -791,8 +791,8 @@ void Transformation::applyPageMove(Inkscape::Selection *selection)
} else {
Geom::OptRect bbox = selection->preferredBounds();
if (bbox) {
- sp_selection_move_relative(selection,
- x - bbox->min()[Geom::X], y - bbox->min()[Geom::Y]);
+ sp_object_set_move_relative(selection,
+ x - bbox->min()[Geom::X], y - bbox->min()[Geom::Y]);
}
}
}
@@ -856,7 +856,7 @@ void Transformation::applyPageScale(Inkscape::Selection *selection)
double y1 = bbox_pref->midpoint()[Geom::Y] + new_height/2;
Geom::Affine scaler = get_scale_transform_for_variable_stroke (*bbox_pref, *bbox_geom, transform_stroke, preserve, x0, y0, x1, y1);
- sp_selection_apply_affine(selection, scaler);
+ sp_object_set_apply_affine(selection, scaler);
}
}
@@ -882,7 +882,7 @@ void Transformation::applyPageRotate(Inkscape::Selection *selection)
} else {
boost::optional<Geom::Point> center = selection->center();
if (center) {
- sp_selection_rotate_relative(selection, *center, angle);
+ sp_object_set_rotate_relative(selection, *center, angle);
}
}
@@ -949,7 +949,7 @@ void Transformation::applyPageSkew(Inkscape::Selection *selection)
getDesktop()->getMessageStack()->flash(Inkscape::WARNING_MESSAGE, _("Transform matrix is singular, <b>not used</b>."));
return;
}
- sp_selection_skew_relative(selection, *center, 0.01*skewX, 0.01*skewY);
+ sp_object_set_skew_relative(selection, *center, 0.01 * skewX, 0.01 * skewY);
} else if (_units_skew.isRadial()) { //deg or rad
double angleX = _scalar_skew_horizontal.getValue("rad");
double angleY = _scalar_skew_vertical.getValue("rad");
@@ -962,7 +962,7 @@ void Transformation::applyPageSkew(Inkscape::Selection *selection)
}
double skewX = tan(-angleX);
double skewY = tan(angleY);
- sp_selection_skew_relative(selection, *center, skewX, skewY);
+ sp_object_set_skew_relative(selection, *center, skewX, skewY);
} else { // absolute displacement
double skewX = _scalar_skew_horizontal.getValue("px");
double skewY = _scalar_skew_vertical.getValue("px");
@@ -970,7 +970,7 @@ void Transformation::applyPageSkew(Inkscape::Selection *selection)
getDesktop()->getMessageStack()->flash(Inkscape::WARNING_MESSAGE, _("Transform matrix is singular, <b>not used</b>."));
return;
}
- sp_selection_skew_relative(selection, *center, skewX/height, skewY/width);
+ sp_object_set_skew_relative(selection, *center, skewX / height, skewY / width);
}
}
}
@@ -1003,7 +1003,7 @@ void Transformation::applyPageTransform(Inkscape::Selection *selection)
item->updateRepr();
}
} else {
- sp_selection_apply_affine(selection, displayed); // post-multiply each object's transform
+ sp_object_set_apply_affine(selection, displayed); // post-multiply each object's transform
}
DocumentUndo::done(selection->desktop()->getDocument(), SP_VERB_DIALOG_TRANSFORM,
diff --git a/src/ui/interface.cpp b/src/ui/interface.cpp
index d19526105..eb3034ca3 100644
--- a/src/ui/interface.cpp
+++ b/src/ui/interface.cpp
@@ -1250,7 +1250,7 @@ sp_ui_drag_data_received(GtkWidget *widget,
Geom::OptRect sel_bbox = selection->visualBounds();
if (sel_bbox) {
Geom::Point m( desktop->point() - sel_bbox->midpoint() );
- sp_selection_move_relative(selection, m, false);
+ sp_object_set_move_relative(selection, m, false);
}
}
@@ -1916,7 +1916,7 @@ void ContextMenu::MakeGroupMenu(void)
void ContextMenu::ActivateGroup(void)
{
- sp_selection_group_ui(_desktop->selection, _desktop);
+ sp_selection_group(_desktop->selection, _desktop);
}
void ContextMenu::ActivateUngroup(void)
diff --git a/src/verbs.cpp b/src/verbs.cpp
index 8255ea1ea..d6c239e86 100644
--- a/src/verbs.cpp
+++ b/src/verbs.cpp
@@ -1133,22 +1133,22 @@ void SelectionVerb::perform(SPAction *action, void *data)
sp_selected_path_slice(selection, dt);
break;
case SP_VERB_SELECTION_TO_FRONT:
- sp_selection_raise_to_top_ui(selection, dt);
+ sp_selection_raise_to_top(selection, dt);
break;
case SP_VERB_SELECTION_TO_BACK:
- sp_selection_lower_to_bottom_ui(selection, dt);
+ sp_selection_lower_to_bottom(selection, dt);
break;
case SP_VERB_SELECTION_RAISE:
- sp_selection_raise_ui(selection, dt);
+ sp_selection_raise(selection, dt);
break;
case SP_VERB_SELECTION_LOWER:
- sp_selection_lower_ui(selection, dt);
+ sp_selection_lower(selection, dt);
break;
case SP_VERB_SELECTION_GROUP:
- sp_selection_group_ui(selection, dt);
+ sp_selection_group(selection, dt);
break;
case SP_VERB_SELECTION_UNGROUP:
- sp_selection_ungroup_ui(selection, dt);
+ sp_selection_ungroup(selection, dt);
break;
case SP_VERB_SELECTION_UNGROUP_POP_SELECTION:
sp_selection_ungroup_pop_selection(selection, dt);
@@ -1520,7 +1520,7 @@ void ObjectVerb::perform( SPAction *action, void *data)
sp_selection_rotate_90(dt, true);
break;
case SP_VERB_OBJECT_FLATTEN:
- sp_selection_remove_transform(dt);
+ sp_object_set_remove_transform(dt);
break;
case SP_VERB_OBJECT_FLOW_TEXT:
text_flow_into_shape();
@@ -1532,12 +1532,12 @@ void ObjectVerb::perform( SPAction *action, void *data)
flowtext_to_text();
break;
case SP_VERB_OBJECT_FLIP_HORIZONTAL:
- sp_selection_scale_relative(sel, center, Geom::Scale(-1.0, 1.0));
+ sp_object_set_scale_relative(sel, center, Geom::Scale(-1.0, 1.0));
DocumentUndo::done(dt->getDocument(), SP_VERB_OBJECT_FLIP_HORIZONTAL,
_("Flip horizontally"));
break;
case SP_VERB_OBJECT_FLIP_VERTICAL:
- sp_selection_scale_relative(sel, center, Geom::Scale(1.0, -1.0));
+ sp_object_set_scale_relative(sel, center, Geom::Scale(1.0, -1.0));
DocumentUndo::done(dt->getDocument(), SP_VERB_OBJECT_FLIP_VERTICAL,
_("Flip vertically"));
break;
diff --git a/src/widgets/select-toolbar.cpp b/src/widgets/select-toolbar.cpp
index 9851b0606..322c33cc3 100644
--- a/src/widgets/select-toolbar.cpp
+++ b/src/widgets/select-toolbar.cpp
@@ -257,7 +257,7 @@ sp_object_layout_any_value_changed(GtkAdjustment *adj, GObject *tbl)
scaler = get_scale_transform_for_uniform_stroke (*bbox_geom, 0, 0, false, false, x0, y0, x1, y1);
}
- sp_selection_apply_affine(selection, scaler);
+ sp_object_set_apply_affine(selection, scaler);
DocumentUndo::maybeDone(document, actionkey, SP_VERB_CONTEXT_SELECT,
_("Transform by toolbar"));