From 8867de5daf309e4cdd3fce177b408618490be4f3 Mon Sep 17 00:00:00 2001 From: Abhishek Sharma Public Date: Tue, 29 Jun 2010 23:35:42 +0530 Subject: This is the first c++ification commit from me. It handles sp-line, sp-polyline, sp-item and marks the onset of document c++ification as well. Users can check performace increase with [/usr/bin/time -v inkscape_binary_with_commandline_options]. (bzr r9546.1.1) --- src/document.cpp | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) (limited to 'src/document.cpp') diff --git a/src/document.cpp b/src/document.cpp index eff6d6e81..0479569f6 100644 --- a/src/document.cpp +++ b/src/document.cpp @@ -439,7 +439,7 @@ sp_document_create(Inkscape::XML::Document *rdoc, * appears in document list. */ SPDocument * -sp_document_new(gchar const *uri, unsigned int keepalive, bool make_new) +SPDocument::createDoc(gchar const *uri, unsigned int keepalive, bool make_new) { SPDocument *doc; Inkscape::XML::Document *rdoc; @@ -490,7 +490,7 @@ sp_document_new(gchar const *uri, unsigned int keepalive, bool make_new) } SPDocument * -sp_document_new_from_mem(gchar const *buffer, gint length, unsigned int keepalive) +SPDocument::createDocFromMem(gchar const *buffer, gint length, unsigned int keepalive) { SPDocument *doc; Inkscape::XML::Document *rdoc; @@ -515,18 +515,18 @@ sp_document_new_from_mem(gchar const *buffer, gint length, unsigned int keepaliv } SPDocument * -sp_document_ref(SPDocument *doc) +SPDocument::doRef() { - g_return_val_if_fail(doc != NULL, NULL); - Inkscape::GC::anchor(doc); - return doc; + //g_return_val_if_fail(doc != NULL, NULL); + Inkscape::GC::anchor(this); + return this; } SPDocument * -sp_document_unref(SPDocument *doc) +SPDocument::doUnref() { - g_return_val_if_fail(doc != NULL, NULL); - Inkscape::GC::release(doc); + //g_return_val_if_fail(doc != NULL, NULL); + Inkscape::GC::release(this); return NULL; } @@ -1126,7 +1126,7 @@ static GSList *find_items_in_area(GSList *s, SPGroup *group, unsigned int dkey, s = find_items_in_area(s, SP_GROUP(o), dkey, area, test); } else { SPItem *child = SP_ITEM(o); - Geom::OptRect box = sp_item_bbox_desktop(child); + Geom::OptRect box = child->getBboxDesktop(); if ( box && test(area, *box) && (take_insensitive || child->isVisibleAndUnlocked(dkey))) { s = g_slist_append(s, child); } @@ -1168,7 +1168,7 @@ sp_document_item_from_list_at_point_bottom(unsigned int dkey, SPGroup *group, GS if (!SP_IS_ITEM(o)) continue; SPItem *item = SP_ITEM(o); - NRArenaItem *arenaitem = sp_item_get_arenaitem(item, dkey); + NRArenaItem *arenaitem = item->get_arenaitem(dkey); if (arenaitem && nr_arena_item_invoke_pick(arenaitem, p, delta, 1) != NULL && (take_insensitive || item->isVisibleAndUnlocked(dkey))) { if (g_slist_find((GSList *) list, item) != NULL) @@ -1219,7 +1219,7 @@ find_item_at_point(unsigned int dkey, SPGroup *group, Geom::Point const p, gbool } else { SPItem *child = SP_ITEM(o); - NRArenaItem *arenaitem = sp_item_get_arenaitem(child, dkey); + NRArenaItem *arenaitem = child->get_arenaitem(dkey); // seen remembers the last (topmost) of items pickable at this point if (arenaitem && nr_arena_item_invoke_pick(arenaitem, p, delta, 1) != NULL @@ -1252,7 +1252,7 @@ find_group_at_point(unsigned int dkey, SPGroup *group, Geom::Point const p) } if (SP_IS_GROUP(o) && SP_GROUP(o)->effectiveLayerMode(dkey) != SPGroup::LAYER ) { SPItem *child = SP_ITEM(o); - NRArenaItem *arenaitem = sp_item_get_arenaitem(child, dkey); + NRArenaItem *arenaitem = child->get_arenaitem(dkey); // seen remembers the last (topmost) of groups pickable at this point if (arenaitem && nr_arena_item_invoke_pick(arenaitem, p, delta, 1) != NULL) { -- cgit v1.2.3 From 121815791be2d24cb745663520b111ee914fbc09 Mon Sep 17 00:00:00 2001 From: Abhishek Sharma Public Date: Thu, 1 Jul 2010 15:36:56 +0530 Subject: C++fied SPDocument added (bzr r9546.1.2) --- src/document.cpp | 186 +++++++++++++++++++++++++++---------------------------- 1 file changed, 92 insertions(+), 94 deletions(-) (limited to 'src/document.cpp') diff --git a/src/document.cpp b/src/document.cpp index 0479569f6..147c22b3c 100644 --- a/src/document.cpp +++ b/src/document.cpp @@ -292,7 +292,7 @@ void SPDocument::reset_key (void */*dummy*/) } SPDocument * -sp_document_create(Inkscape::XML::Document *rdoc, +SPDocument::createDoc(Inkscape::XML::Document *rdoc, gchar const *uri, gchar const *base, gchar const *name, @@ -439,7 +439,7 @@ sp_document_create(Inkscape::XML::Document *rdoc, * appears in document list. */ SPDocument * -SPDocument::createDoc(gchar const *uri, unsigned int keepalive, bool make_new) +SPDocument::createNewDoc(gchar const *uri, unsigned int keepalive, bool make_new) { SPDocument *doc; Inkscape::XML::Document *rdoc; @@ -481,7 +481,7 @@ SPDocument::createDoc(gchar const *uri, unsigned int keepalive, bool make_new) //# These should be set by now g_assert(name); - doc = sp_document_create(rdoc, uri, base, name, keepalive); + doc = createDoc(rdoc, uri, base, name, keepalive); g_free(base); g_free(name); @@ -490,7 +490,7 @@ SPDocument::createDoc(gchar const *uri, unsigned int keepalive, bool make_new) } SPDocument * -SPDocument::createDocFromMem(gchar const *buffer, gint length, unsigned int keepalive) +SPDocument::createNewDocFromMem(gchar const *buffer, gint length, unsigned int keepalive) { SPDocument *doc; Inkscape::XML::Document *rdoc; @@ -509,7 +509,7 @@ SPDocument::createDocFromMem(gchar const *buffer, gint length, unsigned int keep name = g_strdup_printf(_("Memory document %d"), ++doc_count); - doc = sp_document_create(rdoc, NULL, NULL, name, keepalive); + doc = createDoc(rdoc, NULL, NULL, name, keepalive); return doc; } @@ -517,7 +517,7 @@ SPDocument::createDocFromMem(gchar const *buffer, gint length, unsigned int keep SPDocument * SPDocument::doRef() { - //g_return_val_if_fail(doc != NULL, NULL); + g_return_val_if_fail(this != NULL, NULL); Inkscape::GC::anchor(this); return this; } @@ -525,18 +525,18 @@ SPDocument::doRef() SPDocument * SPDocument::doUnref() { - //g_return_val_if_fail(doc != NULL, NULL); + g_return_val_if_fail(this != NULL, NULL); Inkscape::GC::release(this); return NULL; } -gdouble sp_document_width(SPDocument *document) +gdouble SPDocument::getWidth() { - g_return_val_if_fail(document != NULL, 0.0); - g_return_val_if_fail(document->priv != NULL, 0.0); - g_return_val_if_fail(document->root != NULL, 0.0); + g_return_val_if_fail(this != NULL, 0.0); + g_return_val_if_fail(this->priv != NULL, 0.0); + g_return_val_if_fail(this->root != NULL, 0.0); - SPRoot *root = SP_ROOT(document->root); + SPRoot *root = SP_ROOT(this->root); if (root->width.unit == SVGLength::PERCENT && root->viewBox_set) return root->viewBox.x1 - root->viewBox.x0; @@ -544,9 +544,9 @@ gdouble sp_document_width(SPDocument *document) } void -sp_document_set_width (SPDocument *document, gdouble width, const SPUnit *unit) +SPDocument::setWidth (gdouble width, const SPUnit *unit) { - SPRoot *root = SP_ROOT(document->root); + SPRoot *root = SP_ROOT(this->root); if (root->width.unit == SVGLength::PERCENT && root->viewBox_set) { // set to viewBox= root->viewBox.x1 = root->viewBox.x0 + sp_units_get_pixels (width, *unit); @@ -570,9 +570,9 @@ sp_document_set_width (SPDocument *document, gdouble width, const SPUnit *unit) SP_OBJECT (root)->updateRepr(); } -void sp_document_set_height (SPDocument * document, gdouble height, const SPUnit *unit) +void SPDocument::setHeight (gdouble height, const SPUnit *unit) { - SPRoot *root = SP_ROOT(document->root); + SPRoot *root = SP_ROOT(this->root); if (root->height.unit == SVGLength::PERCENT && root->viewBox_set) { // set to viewBox= root->viewBox.y1 = root->viewBox.y0 + sp_units_get_pixels (height, *unit); @@ -596,22 +596,22 @@ void sp_document_set_height (SPDocument * document, gdouble height, const SPUnit SP_OBJECT (root)->updateRepr(); } -gdouble sp_document_height(SPDocument *document) +gdouble SPDocument::getHeight() { - g_return_val_if_fail(document != NULL, 0.0); - g_return_val_if_fail(document->priv != NULL, 0.0); - g_return_val_if_fail(document->root != NULL, 0.0); + g_return_val_if_fail(this != NULL, 0.0); + g_return_val_if_fail(this->priv != NULL, 0.0); + g_return_val_if_fail(this->root != NULL, 0.0); - SPRoot *root = SP_ROOT(document->root); + SPRoot *root = SP_ROOT(this->root); if (root->height.unit == SVGLength::PERCENT && root->viewBox_set) return root->viewBox.y1 - root->viewBox.y0; return root->height.computed; } -Geom::Point sp_document_dimensions(SPDocument *doc) +Geom::Point SPDocument::getDimensions() { - return Geom::Point(sp_document_width(doc), sp_document_height(doc)); + return Geom::Point(getWidth(), getHeight()); } /** @@ -662,7 +662,7 @@ void SPDocument::fitToRect(Geom::Rect const &rect, bool with_margins) double const w = rect.width(); double const h = rect.height(); - double const old_height = sp_document_height(this); + double const old_height = getHeight(); SPUnit const &px(sp_unit_get_by_id(SP_UNIT_PX)); /* in px */ @@ -700,8 +700,8 @@ void SPDocument::fitToRect(Geom::Rect const &rect, bool with_margins) rect.max() + Geom::Point(margin_right, margin_top)); - sp_document_set_width(this, rect_with_margins.width(), &px); - sp_document_set_height(this, rect_with_margins.height(), &px); + setWidth(rect_with_margins.width(), &px); + setHeight(rect_with_margins.height(), &px); Geom::Translate const tr( Geom::Point(0, old_height - rect_with_margins.height()) @@ -774,11 +774,11 @@ do_change_uri(SPDocument *const document, gchar const *const filename, bool cons * * \see sp_document_change_uri_and_hrefs */ -void sp_document_set_uri(SPDocument *document, gchar const *filename) +void SPDocument::setUri(gchar const *filename) { - g_return_if_fail(document != NULL); + g_return_if_fail(this != NULL); - do_change_uri(document, filename, false); + do_change_uri(this, filename, false); } /** @@ -787,19 +787,19 @@ void sp_document_set_uri(SPDocument *document, gchar const *filename) * * \see sp_document_set_uri */ -void sp_document_change_uri_and_hrefs(SPDocument *document, gchar const *filename) +void SPDocument::change_uri_and_hrefs(gchar const *filename) { - g_return_if_fail(document != NULL); + g_return_if_fail(this != NULL); - do_change_uri(document, filename, true); + do_change_uri(this, filename, true); } void -sp_document_resized_signal_emit(SPDocument *doc, gdouble width, gdouble height) +SPDocument::resized_signal_emit(gdouble width, gdouble height) { - g_return_if_fail(doc != NULL); + g_return_if_fail(this != NULL); - doc->priv->resized_signal.emit(width, height); + this->priv->resized_signal.emit(width, height); } sigc::connection SPDocument::connectModified(SPDocument::ModifiedSignal::slot_type slot) @@ -959,15 +959,15 @@ Glib::ustring SPDocument::getLanguage() { /* Object modification root handler */ void -sp_document_request_modified(SPDocument *doc) +SPDocument::request_modified() { - if (!doc->modified_id) { - doc->modified_id = g_idle_add_full(SP_DOCUMENT_UPDATE_PRIORITY, - sp_document_idle_handler, doc, NULL); + if (!modified_id) { + modified_id = g_idle_add_full(SP_DOCUMENT_UPDATE_PRIORITY, + sp_document_idle_handler, this, NULL); } - if (!doc->rerouting_handler_id) { - doc->rerouting_handler_id = g_idle_add_full(SP_DOCUMENT_REROUTING_PRIORITY, - sp_document_rerouting_handler, doc, NULL); + if (!rerouting_handler_id) { + rerouting_handler_id = g_idle_add_full(SP_DOCUMENT_REROUTING_PRIORITY, + sp_document_rerouting_handler, this, NULL); } } @@ -1027,7 +1027,7 @@ SPDocument::_updateDocument() * since this typically indicates we're stuck in an update loop. */ gint -sp_document_ensure_up_to_date(SPDocument *doc) +SPDocument::ensure_up_to_date() { // Bring the document up-to-date, specifically via the following: // 1a) Process all document updates. @@ -1036,9 +1036,9 @@ sp_document_ensure_up_to_date(SPDocument *doc) int counter = 32; for (unsigned int pass = 1; pass <= 2; ++pass) { // Process document updates. - while (!doc->_updateDocument()) { + while (!_updateDocument()) { if (counter == 0) { - g_warning("More than 32 iteration while updating document '%s'", doc->uri); + g_warning("More than 32 iteration while updating document '%s'", uri); break; } counter--; @@ -1052,19 +1052,19 @@ sp_document_ensure_up_to_date(SPDocument *doc) // changed objects and provide new routings. This may cause some objects // to be modified, hence the second update pass. if (pass == 1) { - doc->router->processTransaction(); + router->processTransaction(); } } - if (doc->modified_id) { + if (modified_id) { /* Remove handler */ - g_source_remove(doc->modified_id); - doc->modified_id = 0; + g_source_remove(modified_id); + modified_id = 0; } - if (doc->rerouting_handler_id) { + if (rerouting_handler_id) { /* Remove handler */ - g_source_remove(doc->rerouting_handler_id); - doc->rerouting_handler_id = 0; + g_source_remove(rerouting_handler_id); + rerouting_handler_id = 0; } return counter>0; } @@ -1156,8 +1156,7 @@ bool item_is_in_group(SPItem *item, SPGroup *group) Returns the bottommost item from the list which is at the point, or NULL if none. */ SPItem* -sp_document_item_from_list_at_point_bottom(unsigned int dkey, SPGroup *group, GSList const *list, - Geom::Point const p, bool take_insensitive) +SPDocument::item_from_list_at_point_bottom(unsigned int dkey, SPGroup *group, GSList const *list,Geom::Point const p, bool take_insensitive) { g_return_val_if_fail(group, NULL); Inkscape::Preferences *prefs = Inkscape::Preferences::get(); @@ -1176,7 +1175,7 @@ sp_document_item_from_list_at_point_bottom(unsigned int dkey, SPGroup *group, GS } if (SP_IS_GROUP(o)) { - SPItem *found = sp_document_item_from_list_at_point_bottom(dkey, SP_GROUP(o), list, p, take_insensitive); + SPItem *found = item_from_list_at_point_bottom(dkey, SP_GROUP(o), list, p, take_insensitive); if (found) return found; } @@ -1270,12 +1269,12 @@ find_group_at_point(unsigned int dkey, SPGroup *group, Geom::Point const p) * */ -GSList *sp_document_items_in_box(SPDocument *document, unsigned int dkey, Geom::Rect const &box) +GSList *SPDocument::items_in_box(unsigned int dkey, Geom::Rect const &box) { - g_return_val_if_fail(document != NULL, NULL); - g_return_val_if_fail(document->priv != NULL, NULL); + g_return_val_if_fail(this != NULL, NULL); + g_return_val_if_fail(this->priv != NULL, NULL); - return find_items_in_area(NULL, SP_GROUP(document->root), dkey, box, is_within); + return find_items_in_area(NULL, SP_GROUP(this->root), dkey, box, is_within); } /* @@ -1285,16 +1284,16 @@ GSList *sp_document_items_in_box(SPDocument *document, unsigned int dkey, Geom:: * */ -GSList *sp_document_partial_items_in_box(SPDocument *document, unsigned int dkey, Geom::Rect const &box) +GSList *SPDocument::partial_items_in_box(unsigned int dkey, Geom::Rect const &box) { - g_return_val_if_fail(document != NULL, NULL); - g_return_val_if_fail(document->priv != NULL, NULL); + g_return_val_if_fail(this != NULL, NULL); + g_return_val_if_fail(this->priv != NULL, NULL); - return find_items_in_area(NULL, SP_GROUP(document->root), dkey, box, overlaps); + return find_items_in_area(NULL, SP_GROUP(this->root), dkey, box, overlaps); } GSList * -sp_document_items_at_points(SPDocument *document, unsigned const key, std::vector points) +SPDocument::items_at_points(unsigned const key, std::vector points) { GSList *items = NULL; Inkscape::Preferences *prefs = Inkscape::Preferences::get(); @@ -1306,7 +1305,7 @@ sp_document_items_at_points(SPDocument *document, unsigned const key, std::vecto prefs->setDouble("/options/cursortolerance/value", 0.25); for(unsigned int i = 0; i < points.size(); i++) { - SPItem *item = sp_document_item_at_point(document, key, points[i], + SPItem *item = item_at_point(key, points[i], false, NULL); if (item && !g_slist_find(items, item)) items = g_slist_prepend (items, item); @@ -1319,34 +1318,34 @@ sp_document_items_at_points(SPDocument *document, unsigned const key, std::vecto } SPItem * -sp_document_item_at_point(SPDocument *document, unsigned const key, Geom::Point const p, +SPDocument::item_at_point( unsigned const key, Geom::Point const p, gboolean const into_groups, SPItem *upto) { - g_return_val_if_fail(document != NULL, NULL); - g_return_val_if_fail(document->priv != NULL, NULL); + g_return_val_if_fail(this != NULL, NULL); + g_return_val_if_fail(this->priv != NULL, NULL); - return find_item_at_point(key, SP_GROUP(document->root), p, into_groups, false, upto); + return find_item_at_point(key, SP_GROUP(this->root), p, into_groups, false, upto); } SPItem* -sp_document_group_at_point(SPDocument *document, unsigned int key, Geom::Point const p) +SPDocument::group_at_point(unsigned int key, Geom::Point const p) { - g_return_val_if_fail(document != NULL, NULL); - g_return_val_if_fail(document->priv != NULL, NULL); + g_return_val_if_fail(this != NULL, NULL); + g_return_val_if_fail(this->priv != NULL, NULL); - return find_group_at_point(key, SP_GROUP(document->root), p); + return find_group_at_point(key, SP_GROUP(this->root), p); } /* Resource management */ gboolean -sp_document_add_resource(SPDocument *document, gchar const *key, SPObject *object) +SPDocument::add_resource(gchar const *key, SPObject *object) { GSList *rlist; GQuark q = g_quark_from_string(key); - g_return_val_if_fail(document != NULL, FALSE); + g_return_val_if_fail(this != NULL, FALSE); g_return_val_if_fail(key != NULL, FALSE); g_return_val_if_fail(*key != '\0', FALSE); g_return_val_if_fail(object != NULL, FALSE); @@ -1355,23 +1354,23 @@ sp_document_add_resource(SPDocument *document, gchar const *key, SPObject *objec if (SP_OBJECT_IS_CLONED(object)) return FALSE; - rlist = (GSList*)g_hash_table_lookup(document->priv->resources, key); + rlist = (GSList*)g_hash_table_lookup(this->priv->resources, key); g_return_val_if_fail(!g_slist_find(rlist, object), FALSE); rlist = g_slist_prepend(rlist, object); - g_hash_table_insert(document->priv->resources, (gpointer) key, rlist); + g_hash_table_insert(this->priv->resources, (gpointer) key, rlist); - document->priv->resources_changed_signals[q].emit(); + this->priv->resources_changed_signals[q].emit(); return TRUE; } gboolean -sp_document_remove_resource(SPDocument *document, gchar const *key, SPObject *object) +SPDocument::remove_resource(gchar const *key, SPObject *object) { GSList *rlist; GQuark q = g_quark_from_string(key); - g_return_val_if_fail(document != NULL, FALSE); + g_return_val_if_fail(this != NULL, FALSE); g_return_val_if_fail(key != NULL, FALSE); g_return_val_if_fail(*key != '\0', FALSE); g_return_val_if_fail(object != NULL, FALSE); @@ -1380,33 +1379,32 @@ sp_document_remove_resource(SPDocument *document, gchar const *key, SPObject *ob if (SP_OBJECT_IS_CLONED(object)) return FALSE; - rlist = (GSList*)g_hash_table_lookup(document->priv->resources, key); + rlist = (GSList*)g_hash_table_lookup(this->priv->resources, key); g_return_val_if_fail(rlist != NULL, FALSE); g_return_val_if_fail(g_slist_find(rlist, object), FALSE); rlist = g_slist_remove(rlist, object); - g_hash_table_insert(document->priv->resources, (gpointer) key, rlist); + g_hash_table_insert(this->priv->resources, (gpointer) key, rlist); - document->priv->resources_changed_signals[q].emit(); + this->priv->resources_changed_signals[q].emit(); return TRUE; } GSList const * -sp_document_get_resource_list(SPDocument *document, gchar const *key) +SPDocument::get_resource_list(gchar const *key) { - g_return_val_if_fail(document != NULL, NULL); + g_return_val_if_fail(this != NULL, NULL); g_return_val_if_fail(key != NULL, NULL); g_return_val_if_fail(*key != '\0', NULL); - return (GSList*)g_hash_table_lookup(document->priv->resources, key); + return (GSList*)g_hash_table_lookup(this->priv->resources, key); } -sigc::connection sp_document_resources_changed_connect(SPDocument *document, - gchar const *key, +sigc::connection SPDocument::resources_changed_connect(gchar const *key, SPDocument::ResourcesChangedSignal::slot_type slot) { GQuark q = g_quark_from_string(key); - return document->priv->resources_changed_signals[q].connect(slot); + return this->priv->resources_changed_signals[q].connect(slot); } /* Helpers */ @@ -1452,9 +1450,9 @@ vacuum_document_recursive(SPObject *obj) } unsigned int -vacuum_document(SPDocument *document) +SPDocument::vacuum_document() { - unsigned int start = objects_in_document(document); + unsigned int start = objects_in_document(this); unsigned int end; unsigned int newend = start; @@ -1463,11 +1461,11 @@ vacuum_document(SPDocument *document) do { end = newend; - vacuum_document_recursive(SP_DOCUMENT_ROOT(document)); - document->collectOrphans(); + vacuum_document_recursive(SP_DOCUMENT_ROOT(this)); + this->collectOrphans(); iterations++; - newend = objects_in_document(document); + newend = objects_in_document(this); } while (iterations < 100 && newend < end); -- cgit v1.2.3 From d25a9a072143eafa4a9823b84e977c4b85d45efe Mon Sep 17 00:00:00 2001 From: Abhishek Sharma Public Date: Fri, 2 Jul 2010 18:05:42 +0530 Subject: New Class SPDocumentUndo created which takes care of c++fying some non SPDocument based methods (bzr r9546.1.3) --- src/document.cpp | 76 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 38 insertions(+), 38 deletions(-) (limited to 'src/document.cpp') diff --git a/src/document.cpp b/src/document.cpp index 147c22b3c..e68bc1f94 100644 --- a/src/document.cpp +++ b/src/document.cpp @@ -150,8 +150,8 @@ SPDocument::~SPDocument() { priv->partial = NULL; } - sp_document_clear_redo(this); - sp_document_clear_undo(this); + SPDocumentUndo::clear_redo(this); + SPDocumentUndo::clear_undo(this); if (root) { root->releaseReferences(); @@ -200,7 +200,7 @@ SPDocument::~SPDocument() { if (oldSignalsConnected) { g_signal_handlers_disconnect_by_func(G_OBJECT(INKSCAPE), - reinterpret_cast(sp_document_reset_key), + reinterpret_cast(SPDocumentUndo::reset_key), static_cast(this)); } else { _selection_changed_connection.disconnect(); @@ -416,14 +416,14 @@ SPDocument::createDoc(Inkscape::XML::Document *rdoc, document->setCurrentPersp3DImpl(persp_impl); } - sp_document_set_undo_sensitive(document, true); + SPDocumentUndo::set_undo_sensitive(document, true); // reset undo key when selection changes, so that same-key actions on different objects are not coalesced if (!Inkscape::NSApplication::Application::getNewGui()) { g_signal_connect(G_OBJECT(INKSCAPE), "change_selection", - G_CALLBACK(sp_document_reset_key), document); + G_CALLBACK(SPDocumentUndo::reset_key), document); g_signal_connect(G_OBJECT(INKSCAPE), "activate_desktop", - G_CALLBACK(sp_document_reset_key), document); + G_CALLBACK(SPDocumentUndo::reset_key), document); document->oldSignalsConnected = true; } else { document->_selection_changed_connection = Inkscape::NSApplication::Editor::connectSelectionChanged (sigc::mem_fun (*document, &SPDocument::reset_key)); @@ -717,10 +717,10 @@ void SPDocument::fitToRect(Geom::Rect const &rect, bool with_margins) } } -static void -do_change_uri(SPDocument *const document, gchar const *const filename, bool const rebase) +void +SPDocument::do_change_uri(gchar const *const filename, bool const rebase) { - g_return_if_fail(document != NULL); + //g_return_if_fail(this != NULL); gchar *new_base; gchar *new_name; @@ -739,32 +739,32 @@ do_change_uri(SPDocument *const document, gchar const *const filename, bool cons } else { new_uri = g_strdup_printf(_("Unnamed document %d"), ++doc_count); new_base = NULL; - new_name = g_strdup(document->uri); + new_name = g_strdup(this->uri); } // Update saveable repr attributes. - Inkscape::XML::Node *repr = sp_document_repr_root(document); + Inkscape::XML::Node *repr = sp_document_repr_root(this); // Changing uri in the document repr must not be not undoable. - bool const saved = sp_document_get_undo_sensitive(document); - sp_document_set_undo_sensitive(document, false); + bool const saved = SPDocumentUndo::get_undo_sensitive(this); + SPDocumentUndo::set_undo_sensitive(this, false); if (rebase) { - Inkscape::XML::rebase_hrefs(document, new_base, true); + Inkscape::XML::rebase_hrefs(this, new_base, true); } - repr->setAttribute("sodipodi:docname", document->name); - sp_document_set_undo_sensitive(document, saved); + repr->setAttribute("sodipodi:docname", this->name); + SPDocumentUndo::set_undo_sensitive(this, saved); - g_free(document->name); - g_free(document->base); - g_free(document->uri); - document->name = new_name; - document->base = new_base; - document->uri = new_uri; + g_free(this->name); + g_free(this->base); + g_free(this->uri); + this->name = new_name; + this->base = new_base; + this->uri = new_uri; - document->priv->uri_set_signal.emit(document->uri); + this->priv->uri_set_signal.emit(this->uri); } /** @@ -776,9 +776,9 @@ do_change_uri(SPDocument *const document, gchar const *const filename, bool cons */ void SPDocument::setUri(gchar const *filename) { - g_return_if_fail(this != NULL); + //g_return_if_fail(this != NULL); - do_change_uri(this, filename, false); + do_change_uri(filename, false); } /** @@ -789,15 +789,15 @@ void SPDocument::setUri(gchar const *filename) */ void SPDocument::change_uri_and_hrefs(gchar const *filename) { - g_return_if_fail(this != NULL); + //g_return_if_fail(this != NULL); - do_change_uri(this, filename, true); + do_change_uri(filename, true); } void SPDocument::resized_signal_emit(gdouble width, gdouble height) { - g_return_if_fail(this != NULL); + //g_return_if_fail(this != NULL); this->priv->resized_signal.emit(width, height); } @@ -1005,12 +1005,12 @@ SPDocument::_updateDocument() SPItemCtx ctx; sp_document_setup_viewport (this, &ctx); - bool saved = sp_document_get_undo_sensitive(this); - sp_document_set_undo_sensitive(this, false); + bool saved = SPDocumentUndo::get_undo_sensitive(this); + SPDocumentUndo::set_undo_sensitive(this, false); this->root->updateDisplay((SPCtx *)&ctx, 0); - sp_document_set_undo_sensitive(this, saved); + SPDocumentUndo::set_undo_sensitive(this, saved); } this->_emitModified(); } @@ -1271,7 +1271,7 @@ find_group_at_point(unsigned int dkey, SPGroup *group, Geom::Point const p) GSList *SPDocument::items_in_box(unsigned int dkey, Geom::Rect const &box) { - g_return_val_if_fail(this != NULL, NULL); + //g_return_val_if_fail(this != NULL, NULL); g_return_val_if_fail(this->priv != NULL, NULL); return find_items_in_area(NULL, SP_GROUP(this->root), dkey, box, is_within); @@ -1286,7 +1286,7 @@ GSList *SPDocument::items_in_box(unsigned int dkey, Geom::Rect const &box) GSList *SPDocument::partial_items_in_box(unsigned int dkey, Geom::Rect const &box) { - g_return_val_if_fail(this != NULL, NULL); + //g_return_val_if_fail(this != NULL, NULL); g_return_val_if_fail(this->priv != NULL, NULL); return find_items_in_area(NULL, SP_GROUP(this->root), dkey, box, overlaps); @@ -1321,7 +1321,7 @@ SPItem * SPDocument::item_at_point( unsigned const key, Geom::Point const p, gboolean const into_groups, SPItem *upto) { - g_return_val_if_fail(this != NULL, NULL); + //g_return_val_if_fail(this != NULL, NULL); g_return_val_if_fail(this->priv != NULL, NULL); return find_item_at_point(key, SP_GROUP(this->root), p, into_groups, false, upto); @@ -1330,7 +1330,7 @@ SPDocument::item_at_point( unsigned const key, Geom::Point const p, SPItem* SPDocument::group_at_point(unsigned int key, Geom::Point const p) { - g_return_val_if_fail(this != NULL, NULL); + //g_return_val_if_fail(this != NULL, NULL); g_return_val_if_fail(this->priv != NULL, NULL); return find_group_at_point(key, SP_GROUP(this->root), p); @@ -1345,7 +1345,7 @@ SPDocument::add_resource(gchar const *key, SPObject *object) GSList *rlist; GQuark q = g_quark_from_string(key); - g_return_val_if_fail(this != NULL, FALSE); + //g_return_val_if_fail(this != NULL, FALSE); g_return_val_if_fail(key != NULL, FALSE); g_return_val_if_fail(*key != '\0', FALSE); g_return_val_if_fail(object != NULL, FALSE); @@ -1370,7 +1370,7 @@ SPDocument::remove_resource(gchar const *key, SPObject *object) GSList *rlist; GQuark q = g_quark_from_string(key); - g_return_val_if_fail(this != NULL, FALSE); + //g_return_val_if_fail(this != NULL, FALSE); g_return_val_if_fail(key != NULL, FALSE); g_return_val_if_fail(*key != '\0', FALSE); g_return_val_if_fail(object != NULL, FALSE); @@ -1393,7 +1393,7 @@ SPDocument::remove_resource(gchar const *key, SPObject *object) GSList const * SPDocument::get_resource_list(gchar const *key) { - g_return_val_if_fail(this != NULL, NULL); + //g_return_val_if_fail(this != NULL, NULL); g_return_val_if_fail(key != NULL, NULL); g_return_val_if_fail(*key != '\0', NULL); -- cgit v1.2.3 From 1aad26aea24f62b63c992118f36b12483f9a5414 Mon Sep 17 00:00:00 2001 From: Abhishek Sharma Public Date: Sat, 3 Jul 2010 22:50:36 +0530 Subject: another c++ification for sp-object.h/cpp and still in progress... (bzr r9546.1.4) --- src/document.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'src/document.cpp') diff --git a/src/document.cpp b/src/document.cpp index e68bc1f94..6b72f0bb8 100644 --- a/src/document.cpp +++ b/src/document.cpp @@ -245,7 +245,7 @@ SPDocument::setCurrentPersp3D(Persp3D * const persp) { void SPDocument::getPerspectivesInDefs(std::vector &list) { SPDefs *defs = SP_ROOT(this->root)->defs; - for (SPObject *i = sp_object_first_child(SP_OBJECT(defs)); i != NULL; i = SP_OBJECT_NEXT(i) ) { + for (SPObject *i = SP_OBJECT(defs)->first_child(); i != NULL; i = SP_OBJECT_NEXT(i) ) { if (SP_IS_PERSP3D(i)) list.push_back(SP_PERSP3D(i)); } @@ -1118,7 +1118,7 @@ static GSList *find_items_in_area(GSList *s, SPGroup *group, unsigned int dkey, { g_return_val_if_fail(SP_IS_GROUP(group), s); - for (SPObject *o = sp_object_first_child(SP_OBJECT(group)) ; o != NULL ; o = SP_OBJECT_NEXT(o) ) { + for (SPObject *o = SP_OBJECT(group)->first_child() ; o != NULL ; o = SP_OBJECT_NEXT(o) ) { if (!SP_IS_ITEM(o)) { continue; } @@ -1141,7 +1141,7 @@ Returns true if an item is among the descendants of group (recursively). */ bool item_is_in_group(SPItem *item, SPGroup *group) { - for (SPObject *o = sp_object_first_child(SP_OBJECT(group)) ; o != NULL ; o = SP_OBJECT_NEXT(o) ) { + for (SPObject *o = SP_OBJECT(group)->first_child() ; o != NULL ; o = SP_OBJECT_NEXT(o) ) { if (!SP_IS_ITEM(o)) continue; if (SP_ITEM(o) == item) return true; @@ -1162,7 +1162,7 @@ SPDocument::item_from_list_at_point_bottom(unsigned int dkey, SPGroup *group, GS Inkscape::Preferences *prefs = Inkscape::Preferences::get(); gdouble delta = prefs->getDouble("/options/cursortolerance/value", 1.0); - for (SPObject *o = sp_object_first_child(SP_OBJECT(group)) ; o != NULL ; o = SP_OBJECT_NEXT(o) ) { + for (SPObject *o = SP_OBJECT(group)->first_child() ; o != NULL ; o = SP_OBJECT_NEXT(o) ) { if (!SP_IS_ITEM(o)) continue; @@ -1199,7 +1199,7 @@ find_item_at_point(unsigned int dkey, SPGroup *group, Geom::Point const p, gbool Inkscape::Preferences *prefs = Inkscape::Preferences::get(); gdouble delta = prefs->getDouble("/options/cursortolerance/value", 1.0); - for (SPObject *o = sp_object_first_child(SP_OBJECT(group)) ; o != NULL ; o = SP_OBJECT_NEXT(o) ) { + for (SPObject *o = SP_OBJECT(group)->first_child() ; o != NULL ; o = SP_OBJECT_NEXT(o) ) { if (!SP_IS_ITEM(o)) continue; if (upto && SP_ITEM(o) == upto) @@ -1241,7 +1241,7 @@ find_group_at_point(unsigned int dkey, SPGroup *group, Geom::Point const p) Inkscape::Preferences *prefs = Inkscape::Preferences::get(); gdouble delta = prefs->getDouble("/options/cursortolerance/value", 1.0); - for (SPObject *o = sp_object_first_child(SP_OBJECT(group)) ; o != NULL ; o = SP_OBJECT_NEXT(o) ) { + for (SPObject *o = SP_OBJECT(group)->first_child() ; o != NULL ; o = SP_OBJECT_NEXT(o) ) { if (!SP_IS_ITEM(o)) continue; if (SP_IS_GROUP(o) && SP_GROUP(o)->effectiveLayerMode(dkey) == SPGroup::LAYER) { SPItem *newseen = find_group_at_point(dkey, SP_GROUP(o), p); @@ -1421,7 +1421,7 @@ count_objects_recursive(SPObject *obj, unsigned int count) { count++; // obj itself - for (SPObject *i = sp_object_first_child(obj); i != NULL; i = SP_OBJECT_NEXT(i)) { + for (SPObject *i = obj->first_child(); i != NULL; i = SP_OBJECT_NEXT(i)) { count = count_objects_recursive(i, count); } @@ -1443,7 +1443,7 @@ vacuum_document_recursive(SPObject *obj) def->requestOrphanCollection(); } } else { - for (SPObject *i = sp_object_first_child(obj); i != NULL; i = SP_OBJECT_NEXT(i)) { + for (SPObject *i = obj->first_child(); i != NULL; i = SP_OBJECT_NEXT(i)) { vacuum_document_recursive(i); } } -- cgit v1.2.3 From e5dec7d5f087114818646072164234aa999e6d72 Mon Sep 17 00:00:00 2001 From: Abhishek Sharma public Date: Wed, 11 Aug 2010 20:19:55 +0530 Subject: XML Privatisation Stuff after a long time (bzr r9546.1.12) --- src/document.cpp | 35 +++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 12 deletions(-) (limited to 'src/document.cpp') diff --git a/src/document.cpp b/src/document.cpp index 6b72f0bb8..702c58d5d 100644 --- a/src/document.cpp +++ b/src/document.cpp @@ -627,18 +627,21 @@ Geom::Point SPDocument::getDimensions() * otherwise. Used for percentage margins. * \return the margin size in px, else 0.0 if anything is invalid. */ -static double getMarginLength(Inkscape::XML::Node * const nv_repr, - gchar const * const key, +//static double getMarginLength(/*Inkscape::XML::Node * const nv_repr*/ +/* gchar const * const key, SPUnit const * const margin_units, SPUnit const * const return_units, double const width, double const height, - bool const use_width) -{ - double value; - if (!sp_repr_get_double (nv_repr, key, &value)) { + bool const use_width)*/ +//{ + // double value; + /*if (!sp_repr_get_double (nv_repr, key, &value)) { return 0.0; - } + }*/ +/* if(!this->storeAsDouble(key,&value)) { + return 0.0; + } if (margin_units == &sp_unit_get_by_id (SP_UNIT_PERCENT)) { return (use_width)? width * value : height * value; } @@ -646,7 +649,7 @@ static double getMarginLength(Inkscape::XML::Node * const nv_repr, return 0.0; } return value; -} +}*/ /** * Given a Geom::Rect that may, for example, correspond to the bbox of an object, @@ -674,9 +677,10 @@ void SPDocument::fitToRect(Geom::Rect const &rect, bool with_margins) SPNamedView *nv = sp_document_namedview(this, 0); if (with_margins && nv) { - Inkscape::XML::Node *nv_repr = SP_OBJECT_REPR (nv); - if (nv_repr != NULL) { - gchar const * const units_abbr = nv_repr->attribute("units"); + //Inkscape::XML::Node *nv_repr = SP_OBJECT_REPR (nv); + if (nv != NULL) { + //gchar const * const units_abbr = nv_repr->attribute("units"); + gchar const * const units_abbr = nv->getAttribute("units"); SPUnit const *margin_units = NULL; if (units_abbr != NULL) { margin_units = sp_unit_get_by_abbreviation(units_abbr); @@ -684,6 +688,7 @@ void SPDocument::fitToRect(Geom::Rect const &rect, bool with_margins) if (margin_units == NULL) { margin_units = &px; } + /* margin_top = getMarginLength(nv_repr, "fit-margin-top", margin_units, &px, w, h, false); margin_left = getMarginLength(nv_repr, "fit-margin-left", @@ -691,7 +696,13 @@ void SPDocument::fitToRect(Geom::Rect const &rect, bool with_margins) margin_right = getMarginLength(nv_repr, "fit-margin-right", margin_units, &px, w, h, true); margin_bottom = getMarginLength(nv_repr, "fit-margin-bottom", - margin_units, &px, w, h, false); + margin_units, &px, w, h, false);*/ + margin_top = nv->getMarginLength("fit-margin-top",margin_units, &px, w, h, false); + margin_top = nv->getMarginLength("fit-margin-left",margin_units, &px, w, h, true); + margin_top = nv->getMarginLength("fit-margin-right",margin_units, &px, w, h, true); + margin_top = nv->getMarginLength("fit-margin-bottom",margin_units, &px, w, h, false); + + } } -- cgit v1.2.3