From 54966dc6f9c6d652092392421911786a2e36fd3f Mon Sep 17 00:00:00 2001 From: Rick Yorgason Date: Wed, 24 Oct 2018 07:03:26 -0700 Subject: [PATCH 1/4] Remembers your printer settings between calls to the Print dialogue. --- src/file.cpp | 4 ++-- src/file.h | 3 ++- src/inkscape.h | 6 ++++++ src/print.cpp | 6 ++++-- src/print.h | 4 +++- src/ui/dialog/print.cpp | 6 +++++- src/ui/dialog/print.h | 7 ++++++- src/verbs.cpp | 2 +- 8 files changed, 29 insertions(+), 9 deletions(-) diff --git a/src/file.cpp b/src/file.cpp index 5e93fb9ce6..8b90451128 100644 --- a/src/file.cpp +++ b/src/file.cpp @@ -1746,11 +1746,11 @@ sp_file_import_from_ocal(Gtk::Window &parent_window) * Print the current document, if any. */ void -sp_file_print(Gtk::Window& parentWindow) +sp_file_print(Gtk::Window& parentWindow, Inkscape::UI::Dialog::PrinterSettings& printer_settings) { SPDocument *doc = SP_ACTIVE_DOCUMENT; if (doc) - sp_print_document(parentWindow, doc); + sp_print_document(parentWindow, doc, printer_settings); } diff --git a/src/file.h b/src/file.h index 21c412f5fa..6485b1b3c8 100644 --- a/src/file.h +++ b/src/file.h @@ -18,6 +18,7 @@ #include #include #include "extension/system.h" +#include "ui/dialog/print.h" class SPDesktop; class SPDocument; @@ -193,7 +194,7 @@ would be useful as instance methods /** * */ -void sp_file_print (Gtk::Window& parentWindow); +void sp_file_print (Gtk::Window& parentWindow, Inkscape::UI::Dialog::PrinterSettings& printer_settings); /*##################### ## U T I L I T Y diff --git a/src/inkscape.h b/src/inkscape.h index 59532b2f6f..8d6ad4cbb4 100644 --- a/src/inkscape.h +++ b/src/inkscape.h @@ -20,6 +20,7 @@ #include #include "layer-model.h" #include "selection.h" +#include "ui/dialog/print.h" class SPDesktop; class SPDocument; @@ -201,6 +202,10 @@ public: void add_style_sheet(); void add_icon_theme(); + // This is used in verbs.cpp and ultimately passed through to print.cpp so Gtk can remember the + // print settings when we re-open the print dialogue. + Inkscape::UI::Dialog::PrinterSettings& printer_settings() { return _printer_settings; } + private: static Inkscape::Application * _S_inst; @@ -224,6 +229,7 @@ public: static bool _crashIsHappening; bool _use_gui; gint _pdf_page; + Inkscape::UI::Dialog::PrinterSettings _printer_settings; }; } // namespace Inkscape diff --git a/src/print.cpp b/src/print.cpp index e6863c14b9..d71e24de09 100644 --- a/src/print.cpp +++ b/src/print.cpp @@ -77,7 +77,8 @@ unsigned int SPPrintContext::text(char const *text, Geom::Point p, /* UI */ void -sp_print_document(Gtk::Window& parentWindow, SPDocument *doc) +sp_print_document(Gtk::Window& parentWindow, SPDocument *doc, + Inkscape::UI::Dialog::PrinterSettings& printer_settings) { doc->ensureUpToDate(); @@ -86,7 +87,8 @@ sp_print_document(Gtk::Window& parentWindow, SPDocument *doc) // Run print dialog Inkscape::UI::Dialog::Print printop(doc,base); - Gtk::PrintOperationResult res = printop.run(Gtk::PRINT_OPERATION_ACTION_PRINT_DIALOG, parentWindow); + Gtk::PrintOperationResult res = printop.run(Gtk::PRINT_OPERATION_ACTION_PRINT_DIALOG, + parentWindow, printer_settings); (void)res; // TODO handle this } diff --git a/src/print.h b/src/print.h index a952672b7c..0d8e0b789e 100644 --- a/src/print.h +++ b/src/print.h @@ -12,6 +12,7 @@ */ #include <2geom/forward.h> +#include "ui/dialog/print.h" namespace Gtk { class Window; @@ -50,7 +51,8 @@ struct SPPrintContext { /* UI */ -void sp_print_document(Gtk::Window& parentWindow, SPDocument *doc); +void sp_print_document(Gtk::Window& parentWindow, SPDocument *doc, + Inkscape::UI::Dialog::PrinterSettings& printer_settings); void sp_print_document_to_file(SPDocument *doc, char const *filename); diff --git a/src/ui/dialog/print.cpp b/src/ui/dialog/print.cpp index 02c2e0e097..3d16e8d8bb 100644 --- a/src/ui/dialog/print.cpp +++ b/src/ui/dialog/print.cpp @@ -218,9 +218,13 @@ void Print::begin_print(const Glib::RefPtr&) _printop->set_n_pages(1); } -Gtk::PrintOperationResult Print::run(Gtk::PrintOperationAction, Gtk::Window &parent_window) +Gtk::PrintOperationResult Print::run(Gtk::PrintOperationAction, Gtk::Window &parent_window, + PrinterSettings& printer_settings) { + // Remember to restore the previous print settings + _printop->set_print_settings(printer_settings._gtk_print_settings); _printop->run(Gtk::PRINT_OPERATION_ACTION_PRINT_DIALOG, parent_window); + 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 0ce9e811ca..b547e6801d 100644 --- a/src/ui/dialog/print.h +++ b/src/ui/dialog/print.h @@ -37,10 +37,15 @@ namespace Inkscape { namespace UI { namespace Dialog { +struct PrinterSettings { + Glib::RefPtr _gtk_print_settings; +}; + class Print { public: Print(SPDocument *doc, SPItem *base); - Gtk::PrintOperationResult run(Gtk::PrintOperationAction, Gtk::Window &parent_window); + Gtk::PrintOperationResult run(Gtk::PrintOperationAction, Gtk::Window &parent_window, + PrinterSettings& printer_settings); protected: diff --git a/src/verbs.cpp b/src/verbs.cpp index 47c532a3f0..df77852049 100644 --- a/src/verbs.cpp +++ b/src/verbs.cpp @@ -902,7 +902,7 @@ void FileVerb::perform(SPAction *action, void *data) Inkscape::UI::Dialog::SaveTemplate::save_document_as_template(*parent); break; case SP_VERB_FILE_PRINT: - sp_file_print(*parent); + sp_file_print(*parent, INKSCAPE.printer_settings()); break; case SP_VERB_FILE_IMPORT: prefs->setBool("/options/onimport",true); -- GitLab From 6b9afc5c5f10ca860a1d1290b4b3b84c9060d90f Mon Sep 17 00:00:00 2001 From: Rick Yorgason Date: Wed, 24 Oct 2018 07:03:26 -0700 Subject: [PATCH 2/4] Remembers your printer settings between calls to the Print dialogue. --- src/file.cpp | 4 ++-- src/file.h | 3 ++- src/inkscape.h | 6 ++++++ src/print.cpp | 6 ++++-- src/print.h | 4 +++- src/ui/dialog/print.cpp | 6 +++++- src/ui/dialog/print.h | 7 ++++++- src/verbs.cpp | 2 +- 8 files changed, 29 insertions(+), 9 deletions(-) diff --git a/src/file.cpp b/src/file.cpp index 5e93fb9ce6..8b90451128 100644 --- a/src/file.cpp +++ b/src/file.cpp @@ -1746,11 +1746,11 @@ sp_file_import_from_ocal(Gtk::Window &parent_window) * Print the current document, if any. */ void -sp_file_print(Gtk::Window& parentWindow) +sp_file_print(Gtk::Window& parentWindow, Inkscape::UI::Dialog::PrinterSettings& printer_settings) { SPDocument *doc = SP_ACTIVE_DOCUMENT; if (doc) - sp_print_document(parentWindow, doc); + sp_print_document(parentWindow, doc, printer_settings); } diff --git a/src/file.h b/src/file.h index 21c412f5fa..6485b1b3c8 100644 --- a/src/file.h +++ b/src/file.h @@ -18,6 +18,7 @@ #include #include #include "extension/system.h" +#include "ui/dialog/print.h" class SPDesktop; class SPDocument; @@ -193,7 +194,7 @@ would be useful as instance methods /** * */ -void sp_file_print (Gtk::Window& parentWindow); +void sp_file_print (Gtk::Window& parentWindow, Inkscape::UI::Dialog::PrinterSettings& printer_settings); /*##################### ## U T I L I T Y diff --git a/src/inkscape.h b/src/inkscape.h index 59532b2f6f..8d6ad4cbb4 100644 --- a/src/inkscape.h +++ b/src/inkscape.h @@ -20,6 +20,7 @@ #include #include "layer-model.h" #include "selection.h" +#include "ui/dialog/print.h" class SPDesktop; class SPDocument; @@ -201,6 +202,10 @@ public: void add_style_sheet(); void add_icon_theme(); + // This is used in verbs.cpp and ultimately passed through to print.cpp so Gtk can remember the + // print settings when we re-open the print dialogue. + Inkscape::UI::Dialog::PrinterSettings& printer_settings() { return _printer_settings; } + private: static Inkscape::Application * _S_inst; @@ -224,6 +229,7 @@ public: static bool _crashIsHappening; bool _use_gui; gint _pdf_page; + Inkscape::UI::Dialog::PrinterSettings _printer_settings; }; } // namespace Inkscape diff --git a/src/print.cpp b/src/print.cpp index e6863c14b9..d71e24de09 100644 --- a/src/print.cpp +++ b/src/print.cpp @@ -77,7 +77,8 @@ unsigned int SPPrintContext::text(char const *text, Geom::Point p, /* UI */ void -sp_print_document(Gtk::Window& parentWindow, SPDocument *doc) +sp_print_document(Gtk::Window& parentWindow, SPDocument *doc, + Inkscape::UI::Dialog::PrinterSettings& printer_settings) { doc->ensureUpToDate(); @@ -86,7 +87,8 @@ sp_print_document(Gtk::Window& parentWindow, SPDocument *doc) // Run print dialog Inkscape::UI::Dialog::Print printop(doc,base); - Gtk::PrintOperationResult res = printop.run(Gtk::PRINT_OPERATION_ACTION_PRINT_DIALOG, parentWindow); + Gtk::PrintOperationResult res = printop.run(Gtk::PRINT_OPERATION_ACTION_PRINT_DIALOG, + parentWindow, printer_settings); (void)res; // TODO handle this } diff --git a/src/print.h b/src/print.h index a952672b7c..0d8e0b789e 100644 --- a/src/print.h +++ b/src/print.h @@ -12,6 +12,7 @@ */ #include <2geom/forward.h> +#include "ui/dialog/print.h" namespace Gtk { class Window; @@ -50,7 +51,8 @@ struct SPPrintContext { /* UI */ -void sp_print_document(Gtk::Window& parentWindow, SPDocument *doc); +void sp_print_document(Gtk::Window& parentWindow, SPDocument *doc, + Inkscape::UI::Dialog::PrinterSettings& printer_settings); void sp_print_document_to_file(SPDocument *doc, char const *filename); diff --git a/src/ui/dialog/print.cpp b/src/ui/dialog/print.cpp index 02c2e0e097..3d16e8d8bb 100644 --- a/src/ui/dialog/print.cpp +++ b/src/ui/dialog/print.cpp @@ -218,9 +218,13 @@ void Print::begin_print(const Glib::RefPtr&) _printop->set_n_pages(1); } -Gtk::PrintOperationResult Print::run(Gtk::PrintOperationAction, Gtk::Window &parent_window) +Gtk::PrintOperationResult Print::run(Gtk::PrintOperationAction, Gtk::Window &parent_window, + PrinterSettings& printer_settings) { + // Remember to restore the previous print settings + _printop->set_print_settings(printer_settings._gtk_print_settings); _printop->run(Gtk::PRINT_OPERATION_ACTION_PRINT_DIALOG, parent_window); + 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 0ce9e811ca..b547e6801d 100644 --- a/src/ui/dialog/print.h +++ b/src/ui/dialog/print.h @@ -37,10 +37,15 @@ namespace Inkscape { namespace UI { namespace Dialog { +struct PrinterSettings { + Glib::RefPtr _gtk_print_settings; +}; + class Print { public: Print(SPDocument *doc, SPItem *base); - Gtk::PrintOperationResult run(Gtk::PrintOperationAction, Gtk::Window &parent_window); + Gtk::PrintOperationResult run(Gtk::PrintOperationAction, Gtk::Window &parent_window, + PrinterSettings& printer_settings); protected: diff --git a/src/verbs.cpp b/src/verbs.cpp index fe617148a9..0a5bedb6ca 100644 --- a/src/verbs.cpp +++ b/src/verbs.cpp @@ -902,7 +902,7 @@ void FileVerb::perform(SPAction *action, void *data) Inkscape::UI::Dialog::SaveTemplate::save_document_as_template(*parent); break; case SP_VERB_FILE_PRINT: - sp_file_print(*parent); + sp_file_print(*parent, INKSCAPE.printer_settings()); break; case SP_VERB_FILE_IMPORT: prefs->setBool("/options/onimport",true); -- GitLab From b4a3b39aa1c5948f4641a6bb20127cae8d4111d3 Mon Sep 17 00:00:00 2001 From: Rick Yorgason Date: Wed, 24 Oct 2018 07:03:26 -0700 Subject: [PATCH 3/4] Remembers your printer settings between calls to the Print dialogue. --- src/file.cpp | 4 ++-- src/file.h | 3 ++- src/inkscape.h | 6 ++++++ src/print.cpp | 6 ++++-- src/print.h | 4 +++- src/ui/dialog/print.cpp | 6 +++++- src/ui/dialog/print.h | 7 ++++++- src/verbs.cpp | 2 +- 8 files changed, 29 insertions(+), 9 deletions(-) diff --git a/src/file.cpp b/src/file.cpp index 5ea62f742f..dc46974170 100644 --- a/src/file.cpp +++ b/src/file.cpp @@ -1754,11 +1754,11 @@ sp_file_import_from_ocal(Gtk::Window &parent_window) * Print the current document, if any. */ void -sp_file_print(Gtk::Window& parentWindow) +sp_file_print(Gtk::Window& parentWindow, Inkscape::UI::Dialog::PrinterSettings& printer_settings) { SPDocument *doc = SP_ACTIVE_DOCUMENT; if (doc) - sp_print_document(parentWindow, doc); + sp_print_document(parentWindow, doc, printer_settings); } diff --git a/src/file.h b/src/file.h index fadbb09dac..df32454246 100644 --- a/src/file.h +++ b/src/file.h @@ -18,6 +18,7 @@ #include #include #include "extension/system.h" +#include "ui/dialog/print.h" class SPDesktop; class SPDocument; @@ -193,7 +194,7 @@ would be useful as instance methods /** * */ -void sp_file_print (Gtk::Window& parentWindow); +void sp_file_print (Gtk::Window& parentWindow, Inkscape::UI::Dialog::PrinterSettings& printer_settings); /*##################### ## U T I L I T Y diff --git a/src/inkscape.h b/src/inkscape.h index 59532b2f6f..8d6ad4cbb4 100644 --- a/src/inkscape.h +++ b/src/inkscape.h @@ -20,6 +20,7 @@ #include #include "layer-model.h" #include "selection.h" +#include "ui/dialog/print.h" class SPDesktop; class SPDocument; @@ -201,6 +202,10 @@ public: void add_style_sheet(); void add_icon_theme(); + // This is used in verbs.cpp and ultimately passed through to print.cpp so Gtk can remember the + // print settings when we re-open the print dialogue. + Inkscape::UI::Dialog::PrinterSettings& printer_settings() { return _printer_settings; } + private: static Inkscape::Application * _S_inst; @@ -224,6 +229,7 @@ public: static bool _crashIsHappening; bool _use_gui; gint _pdf_page; + Inkscape::UI::Dialog::PrinterSettings _printer_settings; }; } // namespace Inkscape diff --git a/src/print.cpp b/src/print.cpp index e6863c14b9..d71e24de09 100644 --- a/src/print.cpp +++ b/src/print.cpp @@ -77,7 +77,8 @@ unsigned int SPPrintContext::text(char const *text, Geom::Point p, /* UI */ void -sp_print_document(Gtk::Window& parentWindow, SPDocument *doc) +sp_print_document(Gtk::Window& parentWindow, SPDocument *doc, + Inkscape::UI::Dialog::PrinterSettings& printer_settings) { doc->ensureUpToDate(); @@ -86,7 +87,8 @@ sp_print_document(Gtk::Window& parentWindow, SPDocument *doc) // Run print dialog Inkscape::UI::Dialog::Print printop(doc,base); - Gtk::PrintOperationResult res = printop.run(Gtk::PRINT_OPERATION_ACTION_PRINT_DIALOG, parentWindow); + Gtk::PrintOperationResult res = printop.run(Gtk::PRINT_OPERATION_ACTION_PRINT_DIALOG, + parentWindow, printer_settings); (void)res; // TODO handle this } diff --git a/src/print.h b/src/print.h index a952672b7c..0d8e0b789e 100644 --- a/src/print.h +++ b/src/print.h @@ -12,6 +12,7 @@ */ #include <2geom/forward.h> +#include "ui/dialog/print.h" namespace Gtk { class Window; @@ -50,7 +51,8 @@ struct SPPrintContext { /* UI */ -void sp_print_document(Gtk::Window& parentWindow, SPDocument *doc); +void sp_print_document(Gtk::Window& parentWindow, SPDocument *doc, + Inkscape::UI::Dialog::PrinterSettings& printer_settings); void sp_print_document_to_file(SPDocument *doc, char const *filename); diff --git a/src/ui/dialog/print.cpp b/src/ui/dialog/print.cpp index 02c2e0e097..3d16e8d8bb 100644 --- a/src/ui/dialog/print.cpp +++ b/src/ui/dialog/print.cpp @@ -218,9 +218,13 @@ void Print::begin_print(const Glib::RefPtr&) _printop->set_n_pages(1); } -Gtk::PrintOperationResult Print::run(Gtk::PrintOperationAction, Gtk::Window &parent_window) +Gtk::PrintOperationResult Print::run(Gtk::PrintOperationAction, Gtk::Window &parent_window, + PrinterSettings& printer_settings) { + // Remember to restore the previous print settings + _printop->set_print_settings(printer_settings._gtk_print_settings); _printop->run(Gtk::PRINT_OPERATION_ACTION_PRINT_DIALOG, parent_window); + 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 0ce9e811ca..b547e6801d 100644 --- a/src/ui/dialog/print.h +++ b/src/ui/dialog/print.h @@ -37,10 +37,15 @@ namespace Inkscape { namespace UI { namespace Dialog { +struct PrinterSettings { + Glib::RefPtr _gtk_print_settings; +}; + class Print { public: Print(SPDocument *doc, SPItem *base); - Gtk::PrintOperationResult run(Gtk::PrintOperationAction, Gtk::Window &parent_window); + Gtk::PrintOperationResult run(Gtk::PrintOperationAction, Gtk::Window &parent_window, + PrinterSettings& printer_settings); protected: diff --git a/src/verbs.cpp b/src/verbs.cpp index fe617148a9..0a5bedb6ca 100644 --- a/src/verbs.cpp +++ b/src/verbs.cpp @@ -902,7 +902,7 @@ void FileVerb::perform(SPAction *action, void *data) Inkscape::UI::Dialog::SaveTemplate::save_document_as_template(*parent); break; case SP_VERB_FILE_PRINT: - sp_file_print(*parent); + sp_file_print(*parent, INKSCAPE.printer_settings()); break; case SP_VERB_FILE_IMPORT: prefs->setBool("/options/onimport",true); -- GitLab From cc5b18c9ce0c41b54c7d676a5739c8c7310c2c81 Mon Sep 17 00:00:00 2001 From: Rick Yorgason Date: Fri, 26 Oct 2018 21:04:00 -0700 Subject: [PATCH 4/4] Moved printer_settings into SPDocument. --- src/desktop.h | 3 +++ src/file.cpp | 4 ++-- src/file.h | 3 +-- src/inkscape.h | 6 ------ src/print.cpp | 6 ++---- src/print.h | 4 +--- src/ui/dialog/print.cpp | 8 ++++---- src/ui/dialog/print.h | 3 +-- src/verbs.cpp | 2 +- 9 files changed, 15 insertions(+), 24 deletions(-) diff --git a/src/desktop.h b/src/desktop.h index ec6ea99f7f..b4e5da35d6 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/file.cpp b/src/file.cpp index dc46974170..5ea62f742f 100644 --- a/src/file.cpp +++ b/src/file.cpp @@ -1754,11 +1754,11 @@ sp_file_import_from_ocal(Gtk::Window &parent_window) * Print the current document, if any. */ void -sp_file_print(Gtk::Window& parentWindow, Inkscape::UI::Dialog::PrinterSettings& printer_settings) +sp_file_print(Gtk::Window& parentWindow) { SPDocument *doc = SP_ACTIVE_DOCUMENT; if (doc) - sp_print_document(parentWindow, doc, printer_settings); + sp_print_document(parentWindow, doc); } diff --git a/src/file.h b/src/file.h index df32454246..fadbb09dac 100644 --- a/src/file.h +++ b/src/file.h @@ -18,7 +18,6 @@ #include #include #include "extension/system.h" -#include "ui/dialog/print.h" class SPDesktop; class SPDocument; @@ -194,7 +193,7 @@ would be useful as instance methods /** * */ -void sp_file_print (Gtk::Window& parentWindow, Inkscape::UI::Dialog::PrinterSettings& printer_settings); +void sp_file_print (Gtk::Window& parentWindow); /*##################### ## U T I L I T Y diff --git a/src/inkscape.h b/src/inkscape.h index 8d6ad4cbb4..59532b2f6f 100644 --- a/src/inkscape.h +++ b/src/inkscape.h @@ -20,7 +20,6 @@ #include #include "layer-model.h" #include "selection.h" -#include "ui/dialog/print.h" class SPDesktop; class SPDocument; @@ -202,10 +201,6 @@ public: void add_style_sheet(); void add_icon_theme(); - // This is used in verbs.cpp and ultimately passed through to print.cpp so Gtk can remember the - // print settings when we re-open the print dialogue. - Inkscape::UI::Dialog::PrinterSettings& printer_settings() { return _printer_settings; } - private: static Inkscape::Application * _S_inst; @@ -229,7 +224,6 @@ public: static bool _crashIsHappening; bool _use_gui; gint _pdf_page; - Inkscape::UI::Dialog::PrinterSettings _printer_settings; }; } // namespace Inkscape diff --git a/src/print.cpp b/src/print.cpp index d71e24de09..e6863c14b9 100644 --- a/src/print.cpp +++ b/src/print.cpp @@ -77,8 +77,7 @@ unsigned int SPPrintContext::text(char const *text, Geom::Point p, /* UI */ void -sp_print_document(Gtk::Window& parentWindow, SPDocument *doc, - Inkscape::UI::Dialog::PrinterSettings& printer_settings) +sp_print_document(Gtk::Window& parentWindow, SPDocument *doc) { doc->ensureUpToDate(); @@ -87,8 +86,7 @@ sp_print_document(Gtk::Window& parentWindow, SPDocument *doc, // Run print dialog Inkscape::UI::Dialog::Print printop(doc,base); - Gtk::PrintOperationResult res = printop.run(Gtk::PRINT_OPERATION_ACTION_PRINT_DIALOG, - parentWindow, printer_settings); + Gtk::PrintOperationResult res = printop.run(Gtk::PRINT_OPERATION_ACTION_PRINT_DIALOG, parentWindow); (void)res; // TODO handle this } diff --git a/src/print.h b/src/print.h index 0d8e0b789e..a952672b7c 100644 --- a/src/print.h +++ b/src/print.h @@ -12,7 +12,6 @@ */ #include <2geom/forward.h> -#include "ui/dialog/print.h" namespace Gtk { class Window; @@ -51,8 +50,7 @@ struct SPPrintContext { /* UI */ -void sp_print_document(Gtk::Window& parentWindow, SPDocument *doc, - Inkscape::UI::Dialog::PrinterSettings& printer_settings); +void sp_print_document(Gtk::Window& parentWindow, SPDocument *doc); void sp_print_document_to_file(SPDocument *doc, char const *filename); diff --git a/src/ui/dialog/print.cpp b/src/ui/dialog/print.cpp index 3d16e8d8bb..a3c4a2ce2c 100644 --- a/src/ui/dialog/print.cpp +++ b/src/ui/dialog/print.cpp @@ -16,6 +16,7 @@ #include +#include "inkscape.h" #include "preferences.h" #include "print.h" @@ -218,13 +219,12 @@ void Print::begin_print(const Glib::RefPtr&) _printop->set_n_pages(1); } -Gtk::PrintOperationResult Print::run(Gtk::PrintOperationAction, Gtk::Window &parent_window, - PrinterSettings& printer_settings) +Gtk::PrintOperationResult Print::run(Gtk::PrintOperationAction, Gtk::Window &parent_window) { // Remember to restore the previous print settings - _printop->set_print_settings(printer_settings._gtk_print_settings); + _printop->set_print_settings(SP_ACTIVE_DESKTOP->printer_settings._gtk_print_settings); _printop->run(Gtk::PRINT_OPERATION_ACTION_PRINT_DIALOG, parent_window); - printer_settings._gtk_print_settings = _printop->get_print_settings(); + 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 b547e6801d..1eda9043fb 100644 --- a/src/ui/dialog/print.h +++ b/src/ui/dialog/print.h @@ -44,8 +44,7 @@ struct PrinterSettings { class Print { public: Print(SPDocument *doc, SPItem *base); - Gtk::PrintOperationResult run(Gtk::PrintOperationAction, Gtk::Window &parent_window, - PrinterSettings& printer_settings); + Gtk::PrintOperationResult run(Gtk::PrintOperationAction, Gtk::Window &parent_window); protected: diff --git a/src/verbs.cpp b/src/verbs.cpp index 0a5bedb6ca..fe617148a9 100644 --- a/src/verbs.cpp +++ b/src/verbs.cpp @@ -902,7 +902,7 @@ void FileVerb::perform(SPAction *action, void *data) Inkscape::UI::Dialog::SaveTemplate::save_document_as_template(*parent); break; case SP_VERB_FILE_PRINT: - sp_file_print(*parent, INKSCAPE.printer_settings()); + sp_file_print(*parent); break; case SP_VERB_FILE_IMPORT: prefs->setBool("/options/onimport",true); -- GitLab