diff options
| author | Rick Yorgason <rick@firefang.com> | 2018-10-27 05:12:24 +0000 |
|---|---|---|
| committer | Rick Yorgason <rick@firefang.com> | 2018-10-27 05:12:24 +0000 |
| commit | 4c0e452576d5b27f3dce96436c7ebe0bdd913d65 (patch) | |
| tree | c8180999c9580ca9f09ca753cb469ae0891cd4a0 /src | |
| parent | Updated en_GB po (diff) | |
| download | inkscape-4c0e452576d5b27f3dce96436c7ebe0bdd913d65.tar.gz inkscape-4c0e452576d5b27f3dce96436c7ebe0bdd913d65.zip | |
Remembers printer settings between calls to the print dialogue. Fixes bug #1711112.
Diffstat (limited to 'src')
| -rw-r--r-- | src/desktop.h | 3 | ||||
| -rw-r--r-- | src/ui/dialog/print.cpp | 4 | ||||
| -rw-r--r-- | src/ui/dialog/print.h | 4 |
3 files changed, 11 insertions, 0 deletions
diff --git a/src/desktop.h b/src/desktop.h index ec6ea99f7..b4e5da35d 100644 --- a/src/desktop.h +++ b/src/desktop.h @@ -34,6 +34,7 @@ #include "preferences.h" #include "object/sp-gradient.h" // TODO refactor enums out to their own .h file +#include "ui/dialog/print.h" class SPCSSAttr; struct SPCanvas; @@ -147,6 +148,8 @@ public: DocumentInterface *dbus_document_interface; Inkscape::Display::TemporaryItemList *temporary_item_list; Inkscape::Display::SnapIndicator *snapindicator; + /// Stored settings for print dialogue + Inkscape::UI::Dialog::PrinterSettings printer_settings; Inkscape::UI::Tools::ToolBase* getEventContext() const; Inkscape::Selection* getSelection() const; diff --git a/src/ui/dialog/print.cpp b/src/ui/dialog/print.cpp index 02c2e0e09..a3c4a2ce2 100644 --- a/src/ui/dialog/print.cpp +++ b/src/ui/dialog/print.cpp @@ -16,6 +16,7 @@ #include <gtkmm.h> +#include "inkscape.h" #include "preferences.h" #include "print.h" @@ -220,7 +221,10 @@ void Print::begin_print(const Glib::RefPtr<Gtk::PrintContext>&) Gtk::PrintOperationResult Print::run(Gtk::PrintOperationAction, Gtk::Window &parent_window) { + // Remember to restore the previous print settings + _printop->set_print_settings(SP_ACTIVE_DESKTOP->printer_settings._gtk_print_settings); _printop->run(Gtk::PRINT_OPERATION_ACTION_PRINT_DIALOG, parent_window); + SP_ACTIVE_DESKTOP->printer_settings._gtk_print_settings = _printop->get_print_settings(); return Gtk::PRINT_OPERATION_RESULT_APPLY; } diff --git a/src/ui/dialog/print.h b/src/ui/dialog/print.h index 0ce9e811c..1eda9043f 100644 --- a/src/ui/dialog/print.h +++ b/src/ui/dialog/print.h @@ -37,6 +37,10 @@ namespace Inkscape { namespace UI { namespace Dialog { +struct PrinterSettings { + Glib::RefPtr<Gtk::PrintSettings> _gtk_print_settings; +}; + class Print { public: Print(SPDocument *doc, SPItem *base); |
