summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/extension/internal/gdkpixbuf-input.cpp9
-rw-r--r--src/ui/dialog/inkscape-preferences.cpp3
-rw-r--r--src/ui/dialog/inkscape-preferences.h1
3 files changed, 9 insertions, 4 deletions
diff --git a/src/extension/internal/gdkpixbuf-input.cpp b/src/extension/internal/gdkpixbuf-input.cpp
index 6e6038993..abfad518f 100644
--- a/src/extension/internal/gdkpixbuf-input.cpp
+++ b/src/extension/internal/gdkpixbuf-input.cpp
@@ -80,6 +80,7 @@ GdkpixbufInput::open(Inkscape::Extension::Input *mod, char const *uri)
double width = gdk_pixbuf_get_width(pb);
double height = gdk_pixbuf_get_height(pb);
double defaultxdpi = prefs->getDouble("/dialogs/import/defaultxdpi/value", PX_PER_IN);
+ bool forcexdpi = prefs->getBool("/dialogs/import/forcexdpi");
ImageResolution *ir = 0;
double xscale = 1;
double yscale = 1;
@@ -91,9 +92,9 @@ GdkpixbufInput::open(Inkscape::Extension::Input *mod, char const *uri)
xscale = 72.0 / (double)dpi;
}
} else {
- if (!ir)
+ if (!ir && !forcexdpi)
ir = new ImageResolution(uri);
- if (ir->ok())
+ if (ir && ir->ok())
xscale = 900.0 / floor(10.*ir->x() + .5); // round-off to 0.1 dpi
else
xscale = 90.0 / defaultxdpi;
@@ -107,9 +108,9 @@ GdkpixbufInput::open(Inkscape::Extension::Input *mod, char const *uri)
yscale = 72.0 / (double)dpi;
}
} else {
- if (!ir)
+ if (!ir && !forcexdpi)
ir = new ImageResolution(uri);
- if (ir->ok())
+ if (ir && ir->ok())
yscale = 900.0 / floor(10.*ir->y() + .5); // round-off to 0.1 dpi
else
yscale = 90.0 / defaultxdpi;
diff --git a/src/ui/dialog/inkscape-preferences.cpp b/src/ui/dialog/inkscape-preferences.cpp
index 9182aaad1..62f48cce0 100644
--- a/src/ui/dialog/inkscape-preferences.cpp
+++ b/src/ui/dialog/inkscape-preferences.cpp
@@ -1394,6 +1394,9 @@ void InkscapePreferences::initPageBitmaps()
_importexport_import_res.init("/dialogs/import/defaultxdpi/value", 0.0, 6000.0, 1.0, 1.0, PX_PER_IN, true, false);
_page_bitmaps.add_line( false, _("Default _import resolution:"), _importexport_import_res, _("dpi"),
_("Default bitmap resolution (in dots per inch) for bitmap import"), false);
+ _importexport_import_res_override.init(_("Override file resolution"), "/dialogs/import/forcexdpi", false);
+ _page_bitmaps.add_line( false, "", _importexport_import_res_override, "",
+ _("Use default bitmap resolution in favor of information from file"));
this->AddPage(_page_bitmaps, _("Bitmaps"), PREFS_PAGE_BITMAPS);
}
diff --git a/src/ui/dialog/inkscape-preferences.h b/src/ui/dialog/inkscape-preferences.h
index f4bfe5565..d60035515 100644
--- a/src/ui/dialog/inkscape-preferences.h
+++ b/src/ui/dialog/inkscape-preferences.h
@@ -290,6 +290,7 @@ protected:
UI::Widget::PrefSpinButton _importexport_export_res;
UI::Widget::PrefSpinButton _importexport_import_res;
+ UI::Widget::PrefCheckButton _importexport_import_res_override;
UI::Widget::PrefSlider _snap_delay;
UI::Widget::PrefSlider _snap_weight;
UI::Widget::PrefCheckButton _font_dialog;