diff options
author | Cristian Garcia <cristian99garcia@gmail.com> | 2013-08-21 18:23:59 (GMT) |
---|---|---|
committer | Cristian Garcia <cristian99garcia@gmail.com> | 2013-08-21 18:23:59 (GMT) |
commit | fe9a99304f1e75aa7b4bbf3fa4f418e62e7f9db6 (patch) | |
tree | ff612f82ff678aae2d6f4d862458d46c5d9b0891 | |
parent | 4971e3b7fa4be1ed093aab8260653ac95672ed84 (diff) |
Arreglando bugs en la impresion y en cerrar el programa al cometido el primer bug con anterioridad
-rwxr-xr-x | CristianEdit.py | 4 | ||||
-rw-r--r-- | CristianEdit/CristianEdit.py | 102 |
2 files changed, 68 insertions, 38 deletions
diff --git a/CristianEdit.py b/CristianEdit.py index 96b8e3f..d9e844a 100755 --- a/CristianEdit.py +++ b/CristianEdit.py @@ -116,14 +116,14 @@ class Ventana(Gtk.Window): dialog.guardar(direcciones[numero]) if if_cerrar: - Gtk.main_quit() + sys.exit(0) elif respuesta == Gtk.ResponseType.CANCEL: return True else: if if_cerrar: - Gtk.main_quit() + sys.exit(0) elif not buffer.get_modified() and if_cerrar: sys.exit(0) diff --git a/CristianEdit/CristianEdit.py b/CristianEdit/CristianEdit.py index 30e638e..ab58a37 100644 --- a/CristianEdit/CristianEdit.py +++ b/CristianEdit/CristianEdit.py @@ -408,46 +408,76 @@ class CristianEdit(Gtk.Plug): def imprimir(self, *args): """Imprimir el texto el documento actual.""" - def begin_print(operation, context, compositor): - while not compositor.paginate(context): - pass - - n_pages = compositor.get_n_pages() - operation.set_n_pages(n_pages) + def paginate_cb(self, operation, context, compositor): + print "Pagination progress: %.2f %%\n" % (compositor.get_pagination_progress () * 100.0) + if compositor.paginate (context): + print "Pagination progress: %.2f %%\n" % (compositor.get_pagination_progress () * 100.0) + operation.set_n_pages (compositor.get_n_pages ()) + return True + return False + + def draw_page_cb(self, operation, context, page_nr, compositor): + compositor.draw_page (context, page_nr) + + """ + #def begin_print(operation, context, compositor): + # while not compositor.paginate(context): + # pass + + # n_pages = compositor.get_n_pages() + # operation.set_n_pages(n_pages) + + def paginate_cb(self, operation, context, compositor): + print "Pagination progress: %.2f %%\n" % (compositor.get_pagination_progress () * 100.0) + if compositor.paginate (context): + print "Pagination progress: %.2f %%\n" % (compositor.get_pagination_progress () * 100.0) + operation.set_n_pages (compositor.get_n_pages ()) + return True + return False def draw_page(operation, context, page_nr, compositor): compositor.draw_page(context, page_nr) - window = self.get_toplevel() - view = self.get_view() - buffer = self.get_buffer() - direccion = self.get_direccion() - - compositor = GtkSource.PrintCompositor.new_from_view(view) - compositor.set_wrap_mode(Gtk.WrapMode.CHAR) - compositor.set_highlight_syntax(True) - compositor.set_print_line_numbers(1) - compositor.set_header_format(False, 'Imprimido en %A', None, '%F') - compositor.set_footer_format(True, '%T', direccion, 'Página %N/%Q') - compositor.set_print_header(True) - compositor.set_print_footer(True) - - print_op = Gtk.PrintOperation() - print_op.connect('begin-print', begin_print, compositor) - print_op.connect('draw-page', draw_page, compositor) - - res = print_op.run(Gtk.PrintOperationAction.PRINT_DIALOG, window) - - if res == Gtk.PrintOperationResult.ERROR: - dialog = Gtk.MessageDialog( - window, - Gtk.DialogFlags.DESTROY_WITH_PARENT, - Gtk.MessageType.ERROR, - Gtk.ButtonsType.OK, - 'Error al imprimir el archivo: %s' % direccion) - - dialog.run() - dialog.destroy() + compositor = GtkSource.PrintCompositor.new_from_view(self.get_view()) + #compositor.set_wrap_mode(Gtk.WrapMode.CHAR) + #compositor.set_highlight_syntax(True) + #compositor.set_print_line_numbers(1) + #compositor.set_header_format(False, 'Imprimido en %A', None, '%F') + #compositor.set_footer_format(True, '%T', os.path.expanduser('~'), 'Página %N/%Q') + #compositor.set_print_header(True) + #compositor.set_print_footer(True) + + operation = Gtk.PrintOperation() + operation.set_job_name(os.path.basename(self.get_direccion())) + operation.set_show_progress(True) + + #operation.connect('begin-print', begin_print, compositor) + operation.connect('paginate', paginate_cb, compositor) + operation.connect('draw-page', draw_page, compositor) + + operation.run(Gtk.PrintOperationAction.PRINT_DIALOG, None) + + #if res == Gtk.PrintOperationResult.ERROR: + # dialog = Gtk.MessageDialog( + # window, + # Gtk.DialogFlags.DESTROY_WITH_PARENT, + # Gtk.MessageType.ERROR, + # Gtk.ButtonsType.OK, + # 'Error al imprimir el archivo: %s' % direccion) + + # dialog.run() + # dialog.destroy() + """ + compositor = GtkSource.PrintCompositor.new_from_view (self.get_view()) + operation = Gtk.PrintOperation () + operation.set_job_name (os.path.basename(self.get_direccion())) + operation.set_show_progress (True) + + # we do blocking pagination + operation.connect('paginate', paginate_cb, compositor) + operation.connect('draw-page', draw_page_cb, compositor) + + operation.run (Gtk.PrintOperationAction.PRINT_DIALOG, None) def estado(self, *args): """Muestra un diálogo con los datos |