summaryrefslogtreecommitdiffstats
path: root/src/file.cpp
diff options
context:
space:
mode:
authorJabiertxof <jtx@jtx>2017-01-14 22:33:43 +0000
committerJabiertxof <jtx@jtx>2017-01-14 22:33:43 +0000
commitb9df198f666e6efc79a603d2d0bf276c8ab1d6b4 (patch)
tree82d31550313a81c746bf6cce75a87827911a3709 /src/file.cpp
parentUpdate to trunk (diff)
parent[Bug #1654892] Few typos in Calligraphy tutorial. (diff)
downloadinkscape-b9df198f666e6efc79a603d2d0bf276c8ab1d6b4.tar.gz
inkscape-b9df198f666e6efc79a603d2d0bf276c8ab1d6b4.zip
Update to trunk
(bzr r15295.1.62)
Diffstat (limited to 'src/file.cpp')
-rw-r--r--src/file.cpp64
1 files changed, 62 insertions, 2 deletions
diff --git a/src/file.cpp b/src/file.cpp
index 756bc55bb..9e96361c3 100644
--- a/src/file.cpp
+++ b/src/file.cpp
@@ -433,6 +433,7 @@ bool sp_file_open(const Glib::ustring &uri,
scaleDialog.add_button(_("Ignore"), 3);
scaleDialog.add_button("Scale test - group", 4);
scaleDialog.add_button("Scale test - children", 5);
+ scaleDialog.add_button("Scale test - all", 6);
gint response = scaleDialog.run();
backup = backupButton.get_active();
@@ -519,9 +520,31 @@ bool sp_file_open(const Glib::ustring &uri,
prefs->setBool("/options/transform/rectcorners", transform_rectcorners);
prefs->setBool("/options/transform/pattern", transform_pattern);
prefs->setBool("/options/transform/gradient", transform_gradient);
+
+ } else if (response == 6) {
+
+ // Save preferences
+ bool onlysensitive = prefs->getBool("/options/kbselection/onlysensitive",true);
+ bool onlyvisible = prefs->getBool("/options/kbselection/onlyvisible", true);
+
+ prefs->setBool("/options/kbselection/onlysensitive", false);
+ prefs->setBool("/options/kbselection/onlyvisible", false);
+
+ Inkscape::Selection *selection = desktop->getSelection();
+ Inkscape::SelectionHelper::selectAllInAll( desktop );
+
+ double height = root->height.computed;
+ selection->setScaleRelative( Geom::Point(0,height), Geom::Scale(96.0/90.0,96.0/90.0) );
+ selection->clear();
+
+ prefs->setBool("/options/kbselection/onlysensitive", onlysensitive);
+ prefs->setBool("/options/kbselection/onlyvisible", onlyvisible );
+
+ did_scaling = true;
+
}
- need_fix_box3d = true;
+ need_fix_box3d = false; // setScaleRelative() handles box3d
need_fix_guides = true; // Always fix guides
}
@@ -550,6 +573,7 @@ bool sp_file_open(const Glib::ustring &uri,
scaleDialog.add_button(_("Ignore"), 3);
scaleDialog.add_button("Scale test - group", 4);
scaleDialog.add_button("Scale test - children", 5);
+ scaleDialog.add_button("Scale test - all", 6);
gint response = scaleDialog.run();
backup = backupButton.get_active();
@@ -671,9 +695,45 @@ bool sp_file_open(const Glib::ustring &uri,
prefs->setBool("/options/transform/gradient", transform_gradient);
did_scaling = true;
+
}
- need_fix_box3d = true;
+ } else if (response == 6) {
+
+ double old_height = root->height.computed;
+ Inkscape::Util::Quantity width =
+ Inkscape::Util::Quantity(doc->getWidth().value("px")/ratio, "px" );
+ Inkscape::Util::Quantity height =
+ Inkscape::Util::Quantity(doc->getHeight().value("px")/ratio,"px" );
+ doc->setWidthAndHeight( width, height, false );
+
+ if (!root->viewBox_set) {
+
+ // Save preferences
+ Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+ bool onlysensitive = prefs->getBool("/options/kbselection/onlysensitive",true);
+ bool onlyvisible = prefs->getBool("/options/kbselection/onlyvisible", true);
+
+ prefs->setBool("/options/kbselection/onlysensitive", false);
+ prefs->setBool("/options/kbselection/onlyvisible", false);
+
+ Inkscape::Selection *selection = desktop->getSelection();
+ Inkscape::SelectionHelper::selectAllInAll( desktop );
+ double height = root->height.computed;
+
+ // So far we have just enlarged the drawing but due to the
+ // inverted coordinate system we must scale around the old
+ // height position.
+ selection->setScaleRelative( Geom::Point(0,old_height), Geom::Scale(96.0/90.0,96.0/90.0) );
+ selection->clear();
+
+ prefs->setBool("/options/kbselection/onlysensitive", onlysensitive);
+ prefs->setBool("/options/kbselection/onlyvisible", onlyvisible );
+
+ did_scaling = true;
+ }
+
+ need_fix_box3d = false; // setScaleRelative() handls box3s
need_fix_guides = true; // Only fix guides if drawing scaled
} else {