summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMarc Jeanmougin <marc@jeanmougin.fr>2018-11-02 14:09:18 +0000
committerMarc Jeanmougin <marc@jeanmougin.fr>2018-11-02 14:09:18 +0000
commit88e3506ac0004c3b3c7cc866541a9b775d1929ee (patch)
treef9f06dd6c389a68178e11ac744a5edd18a39bee3 /src
parentBreakBeforeBraces: Stroustrup -> WebKit (diff)
parentRemembers printer settings between calls to the print dialogue. Fixes bug #17... (diff)
downloadinkscape-88e3506ac0004c3b3c7cc866541a9b775d1929ee.tar.gz
inkscape-88e3506ac0004c3b3c7cc866541a9b775d1929ee.zip
Merge branch 'RememberPrinterSettings2' of gitlab.com:Skrapion/inkscape
Diffstat (limited to 'src')
-rw-r--r--src/desktop.h3
-rw-r--r--src/ui/dialog/print.cpp4
-rw-r--r--src/ui/dialog/print.h4
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);