From fd516299d4256a7e85347dba9c8cf3a11ff2676b Mon Sep 17 00:00:00 2001 From: eidheim Date: Sat, 9 Apr 2016 11:11:23 +0200 Subject: [PATCH 1/2] Added source printing/exporting to pdf --- src/files.h | 3 ++- src/menu.cc | 7 +++++++ src/window.cc | 21 +++++++++++++++++++++ 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/src/files.h b/src/files.h index aea89d0..c80dd12 100644 --- a/src/files.h +++ b/src/files.h @@ -2,7 +2,7 @@ #define JUCI_FILES_H_ #include -#define JUCI_VERSION "1.1.2" +#define JUCI_VERSION "1.1.2-1" const std::string configjson = "{\n" @@ -75,6 +75,7 @@ const std::string configjson = " \"open_folder\": \"o\",\n" " \"save\": \"s\",\n" " \"save_as\": \"s\",\n" +" \"print\": \"p\",\n" " \"edit_undo\": \"z\",\n" " \"edit_redo\": \"z\",\n" " \"edit_cut\": \"x\",\n" diff --git a/src/menu.cc b/src/menu.cc index bc00538..a8f75b3 100644 --- a/src/menu.cc +++ b/src/menu.cc @@ -101,6 +101,13 @@ Menu::Menu() { +accels["save_as"]+ //For Ubuntu... " " " " + "
" + " " + " _Print" + " app.print" + +accels["print"]+ //For Ubuntu... + " " + "
" " " "" " " diff --git a/src/window.cc b/src/window.cc index 7c12135..fea55d1 100644 --- a/src/window.cc +++ b/src/window.cc @@ -274,6 +274,27 @@ void Window::set_menu_actions() { } }); + menu.add_action("print", [this]() { + if(notebook.get_current_page()!=-1) { + auto view=notebook.get_current_view(); + auto print_operation=Gtk::PrintOperation::create(); + auto print_compositor=Gsv::PrintCompositor::create(*view); + + print_operation->set_job_name(view->file_path.filename().string()); + print_compositor->set_wrap_mode(Gtk::WrapMode::WRAP_WORD_CHAR); + + print_operation->signal_begin_print().connect([view, print_operation, print_compositor](const Glib::RefPtr& print_context) { + while(!print_compositor->paginate(print_context)); + print_operation->set_n_pages(print_compositor->get_n_pages()); + }); + print_operation->signal_draw_page().connect([print_compositor](const Glib::RefPtr& print_context, int page_nr) { + print_compositor->draw_page(print_context, page_nr); + }); + + print_operation->run(Gtk::PRINT_OPERATION_ACTION_PRINT_DIALOG, *this); + } + }); + menu.add_action("edit_undo", [this]() { if(notebook.get_current_page()!=-1) { auto undo_manager = notebook.get_current_view()->get_source_buffer()->get_undo_manager(); From eb819d9e12a6b132ade890f312ca9e6c9d7224c4 Mon Sep 17 00:00:00 2001 From: eidheim Date: Sat, 9 Apr 2016 11:23:42 +0200 Subject: [PATCH 2/2] Minor cleanup of the printing feature --- src/window.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/window.cc b/src/window.cc index fea55d1..ceb5e1b 100644 --- a/src/window.cc +++ b/src/window.cc @@ -283,7 +283,7 @@ void Window::set_menu_actions() { print_operation->set_job_name(view->file_path.filename().string()); print_compositor->set_wrap_mode(Gtk::WrapMode::WRAP_WORD_CHAR); - print_operation->signal_begin_print().connect([view, print_operation, print_compositor](const Glib::RefPtr& print_context) { + print_operation->signal_begin_print().connect([print_operation, print_compositor](const Glib::RefPtr& print_context) { while(!print_compositor->paginate(print_context)); print_operation->set_n_pages(print_compositor->get_n_pages()); });