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-07-26 20:51:26 (GMT)
committer Cristian Garcia <cristian99garcia@gmail.com>2013-07-26 20:51:26 (GMT)
commitbf8d6203edb4b83436089462d9d591930e127b77 (patch)
treec9f8bb440971d720b1bd2c3dd9994f9b25d767ff
parentf2444e597371e948bb28876db871afbc00309d30 (diff)
Ahora la aplicacion tambien imprime archivos
-rw-r--r--CristianEdit/CristianEdit.py43
1 files changed, 41 insertions, 2 deletions
diff --git a/CristianEdit/CristianEdit.py b/CristianEdit/CristianEdit.py
index 3cae54a..c58ee27 100644
--- a/CristianEdit/CristianEdit.py
+++ b/CristianEdit/CristianEdit.py
@@ -41,6 +41,7 @@ from objetos import Teclado
from Creditos import Creditos
from gi.repository import Gtk
+from gi.repository import GtkSource
from gi.repository import GObject
from gi.repository import Pango
from gi.repository import Gdk
@@ -399,9 +400,47 @@ class CristianEdit(Gtk.Plug):
buffer.buscar_lenguaje(lugar, combo)
def imprimir(self, *args):
- """Imprimir el texto el documento actual"""
+ """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 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 "IMPRIMIR"
+ 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()
def estado(self, *args):
"""Muestra un diálogo con los datos