X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fui%2Fdialog%2Fdocument-properties.cpp;h=726c0ad948f866a3f99a3033c7b4917cb7475b57;hb=b26ef4ad395201f6d11399298556daff04f58402;hp=9a9deac9f5f7d0fac880757285c774bccdae7465;hpb=a42a6d4d0cc81a03c2e0e36bd48f7bd079ee5390;p=inkscape.git diff --git a/src/ui/dialog/document-properties.cpp b/src/ui/dialog/document-properties.cpp index 9a9deac9f..726c0ad94 100644 --- a/src/ui/dialog/document-properties.cpp +++ b/src/ui/dialog/document-properties.cpp @@ -20,9 +20,9 @@ +#include #include "ui/widget/color-picker.h" #include "ui/widget/scalar-unit.h" -#include "ui/widget/button.h" #include "xml/node-event-vector.h" #include "helper/units.h" @@ -33,7 +33,6 @@ #include "desktop-handles.h" #include "desktop.h" #include "sp-namedview.h" -#include "helper/action.h" #include "document-properties.h" @@ -57,8 +56,6 @@ static void on_doc_replaced (SPDesktop* dt, SPDocument* doc); static void on_activate_desktop (Inkscape::Application *, SPDesktop* dt, void*); static void on_deactivate_desktop (Inkscape::Application *, SPDesktop* dt, void*); -static void fire_fit_canvas_to_selection_or_drawing(); - static Inkscape::XML::NodeEventVector const _repr_events = { NULL, /* child_added */ NULL, /* child_removed */ @@ -93,7 +90,6 @@ DocumentProperties::DocumentProperties() _page_snap(1, 1), _prefs_path("dialogs.documentoptions") { - hide(); set_resizable (false); _tt.enable(); get_vbox()->set_spacing (4); @@ -115,6 +111,8 @@ DocumentProperties::init() Inkscape::XML::Node *repr = SP_OBJECT_REPR(sp_desktop_namedview(SP_ACTIVE_DESKTOP)); repr->addListener (&_repr_events, this); + Inkscape::XML::Node *root = SP_OBJECT_REPR(sp_desktop_document(SP_ACTIVE_DESKTOP)->root); + root->addListener (&_repr_events, this); _doc_replaced_connection = SP_ACTIVE_DESKTOP->connectDocumentReplaced (sigc::ptr_fun (on_doc_replaced)); @@ -132,6 +130,8 @@ DocumentProperties::~DocumentProperties() { Inkscape::XML::Node *repr = SP_OBJECT_REPR(sp_desktop_namedview(SP_ACTIVE_DESKTOP)); repr->removeListenerByData (this); + Inkscape::XML::Node *root = SP_OBJECT_REPR(sp_desktop_document(SP_ACTIVE_DESKTOP)->root); + root->removeListenerByData (this); _doc_replaced_connection.disconnect(); } @@ -194,9 +194,7 @@ DocumentProperties::build_page() "bordercolor", "borderopacity", _wr); _rcb_shad.init (_("_Show border shadow"), _("If set, page border shows a shadow on its right and lower side"), "inkscape:showpageshadow", _wr, false); _rum_deflt.init (_("Default _units:"), "inkscape:document-units", _wr); - Inkscape::UI::Widget::Button* fit_canv = manage(new Inkscape::UI::Widget::Button(_("Fit canvas to selection"), - _("Fit the canvas to the current selection or fit to the drawing when there is no selection."))); - fit_canv->signal_clicked().connect(sigc::ptr_fun(fire_fit_canvas_to_selection_or_drawing)); + Gtk::Label* label_gen = manage (new Gtk::Label); label_gen->set_markup (_("General")); Gtk::Label* label_bor = manage (new Gtk::Label); @@ -213,7 +211,6 @@ DocumentProperties::build_page() 0, 0, label_for, 0, 0, &_page_sizer, - 0, fit_canv, 0, 0, label_bor, 0, 0, _rcb_canb._button, @@ -415,18 +412,18 @@ DocumentProperties::update() _rcp_hgui.setRgba32 (nv->guidehicolor); //-----------------------------------------------------------snap - _rcbsnbo.setActive (nv->snap_object_bbox); - _rcbsnnob.setActive (nv->snap_object_point); - _rcbsnop.setActive (nv->snap_object_paths); - _rcbsnop.setActive (nv->snap_object_nodes); + _rcbsnbo.setActive (nv->snap_manager.object.getSnapTo(Inkscape::Snapper::BBOX_POINT)); + _rcbsnnob.setActive (nv->snap_manager.object.getSnapTo(Inkscape::Snapper::SNAP_POINT)); + _rcbsnop.setActive (nv->snap_manager.object.getSnapToPaths()); + _rcbsnop.setActive (nv->snap_manager.object.getSnapToNodes()); _rsu_sno.setValue (nv->objecttolerance, nv->has_abs_tolerance); - _rcbsnbb.setActive (nv->snap_grid_bbox); - _rcbsnnod.setActive (nv->snap_grid_point); + _rcbsnbb.setActive (nv->snap_manager.grid.getSnapTo(Inkscape::Snapper::BBOX_POINT)); + _rcbsnnod.setActive (nv->snap_manager.grid.getSnapTo(Inkscape::Snapper::SNAP_POINT)); _rsu_sn.setValue (nv->gridtolerance, nv->has_abs_tolerance); - _rcb_snpgui.setActive (nv->snap_guide_bbox); - _rcb_snbgui.setActive (nv->snap_guide_point); + _rcb_snpgui.setActive (nv->snap_manager.guide.getSnapTo(Inkscape::Snapper::BBOX_POINT)); + _rcb_snbgui.setActive (nv->snap_manager.guide.getSnapTo(Inkscape::Snapper::SNAP_POINT)); _rsu_gusn.setValue (nv->guidetolerance, nv->has_abs_tolerance); // _rrb_pix.setValue (true); @@ -472,6 +469,8 @@ on_activate_desktop (Inkscape::Application *, SPDesktop* dt, void*) Inkscape::XML::Node *repr = SP_OBJECT_REPR(sp_desktop_namedview(SP_ACTIVE_DESKTOP)); repr->addListener (&_repr_events, _instance); + Inkscape::XML::Node *root = SP_OBJECT_REPR(sp_desktop_document(SP_ACTIVE_DESKTOP)->root); + root->addListener (&_repr_events, _instance); _instance->_doc_replaced_connection = SP_ACTIVE_DESKTOP->connectDocumentReplaced (sigc::ptr_fun (on_doc_replaced)); _instance->update(); } @@ -484,6 +483,8 @@ on_deactivate_desktop (Inkscape::Application *, SPDesktop* dt, void*) Inkscape::XML::Node *repr = SP_OBJECT_REPR(sp_desktop_namedview(SP_ACTIVE_DESKTOP)); repr->removeListenerByData (_instance); + Inkscape::XML::Node *root = SP_OBJECT_REPR(sp_desktop_document(SP_ACTIVE_DESKTOP)->root); + root->removeListenerByData (_instance); _instance->_doc_replaced_connection.disconnect(); } @@ -495,22 +496,11 @@ on_doc_replaced (SPDesktop* dt, SPDocument* doc) Inkscape::XML::Node *repr = SP_OBJECT_REPR(sp_desktop_namedview(dt)); repr->addListener (&_repr_events, _instance); + Inkscape::XML::Node *root = SP_OBJECT_REPR(doc->root); + root->addListener (&_repr_events, _instance); _instance->update(); } -static void -fire_fit_canvas_to_selection_or_drawing() { - SPDesktop *dt = SP_ACTIVE_DESKTOP; - if (!dt) return; - Verb *verb = Verb::get( SP_VERB_FIT_CANVAS_TO_SELECTION_OR_DRAWING ); - if (verb) { - SPAction *action = verb->get_action(dt); - if (action) { - sp_action_perform(action, NULL); - } - } -} - } // namespace Dialog } // namespace UI