Browse Source

Added source printing/exporting to pdf

merge-requests/365/head
eidheim 10 years ago
parent
commit
fd516299d4
  1. 3
      src/files.h
  2. 7
      src/menu.cc
  3. 21
      src/window.cc

3
src/files.h

@ -2,7 +2,7 @@
#define JUCI_FILES_H_
#include <string>
#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\": \"<primary><shift>o\",\n"
" \"save\": \"<primary>s\",\n"
" \"save_as\": \"<primary><shift>s\",\n"
" \"print\": \"<primary>p\",\n"
" \"edit_undo\": \"<primary>z\",\n"
" \"edit_redo\": \"<primary><shift>z\",\n"
" \"edit_cut\": \"<primary>x\",\n"

7
src/menu.cc

@ -101,6 +101,13 @@ Menu::Menu() {
+accels["save_as"]+ //For Ubuntu...
" </item>"
" </section>"
" <section>"
" <item>"
" <attribute name='label' translatable='yes'>_Print</attribute>"
" <attribute name='action'>app.print</attribute>"
+accels["print"]+ //For Ubuntu...
" </item>"
" </section>"
" </submenu>"
""
" <submenu>"

21
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<Gtk::PrintContext>& 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<Gtk::PrintContext>& 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();

Loading…
Cancel
Save