Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCristian Garcia <cristian99garcia@gmail.com>2013-08-21 18:23:59 (GMT)
committer Cristian Garcia <cristian99garcia@gmail.com>2013-08-21 18:23:59 (GMT)
commitfe9a99304f1e75aa7b4bbf3fa4f418e62e7f9db6 (patch)
treeff612f82ff678aae2d6f4d862458d46c5d9b0891
parent4971e3b7fa4be1ed093aab8260653ac95672ed84 (diff)
Arreglando bugs en la impresion y en cerrar el programa al cometido el primer bug con anterioridad
-rwxr-xr-xCristianEdit.py4
-rw-r--r--CristianEdit/CristianEdit.py102
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