Author: avaldes
Date: Tue Jan 29 16:49:04 2008
New Revision: 321
URL: http://svn.gnome.org/viewvc/gyrus?rev=321&view=rev

Log:
add create report of mailbox quota.

M    src/gyrus_print.py
M    ChangeLog


Modified:
   branches/gyrus-python/ChangeLog
   branches/gyrus-python/src/gyrus_print.py

Modified: branches/gyrus-python/src/gyrus_print.py
==============================================================================
--- branches/gyrus-python/src/gyrus_print.py    (original)
+++ branches/gyrus-python/src/gyrus_print.py    Tue Jan 29 16:49:04 2008
@@ -17,16 +17,14 @@
 gtk.glade.textdomain(APPNAME)
 
 def show_dialog_print(admin):
-       window = gtk.Window()
-       window.connect("destroy",gtk.main_quit)
+       settings = gtk.PrintSettings()
 
        op = gtk.PrintOperation()
-       settings = gtk.PrintSettings()
        op.set_print_settings(settings)
-       op.set_n_pages(1)
        op.set_unit(gtk.UNIT_MM)
+
+       op.connect("begin_print",begin_print,admin)
        op.connect("draw_page",draw_page,admin)
-       #op.connect("done",gtk.main_quit)
 
        response = op.run(gtk.PRINT_OPERATION_ACTION_PRINT_DIALOG)
        
@@ -34,55 +32,74 @@
                settings = op.get_print_settings()
 
 
-def draw_page(PrintOperation,PrintContext,Page,admin):
-       context = PrintContext.get_cairo_context()
-       width = PrintContext.get_width()
+def begin_print(operation,context,admin):
+       operation.set_n_pages(5)
+
 
-       page_setup = PrintContext.get_page_setup()
+def draw_page(operation,context,page,admin):
+       print page
+
+       cairo_context = context.get_cairo_context()
+       width = context.get_width()
+
+       page_setup = context.get_page_setup()
        left_margin = page_setup.get_left_margin(gtk.UNIT_MM)
        right_margin = page_setup.get_right_margin(gtk.UNIT_MM)
        top_margin = page_setup.get_top_margin(gtk.UNIT_MM)
+       bottom_margin = page_setup.get_bottom_margin(gtk.UNIT_MM)
        page_width = page_setup.get_page_width(gtk.UNIT_MM)
+       page_height = page_setup.get_page_height(gtk.UNIT_MM)
        x = left_margin
 
-       layout = PrintContext.create_pango_layout()
+       layout = context.create_pango_layout()
        desc = pango.FontDescription("Sans 10") 
        layout.set_font_description(desc) 
 
        # print header
-       print_header(context,layout,x,page_width,right_margin,top_margin)
+       print_header(cairo_context,layout,x,page_width,right_margin,top_margin)
 
        model = admin.treeview_users.get_model()
 
-       y = top_margin + 8
+       yini = top_margin + 8
+       y = yini
 
        iter = model.get_iter_first()
        while iter:
                mb = model.get(iter,COLUMN_MAILBOX)
                res,msg,free,quota = gyrus_admin_mailbox.get_quota_of_mailbox 
(admin,mb[0])
-               print_string(context,layout,x,y,mb[0])
 
-               iter = model.iter_next(iter)
-               y = y + 4
+               print_string(cairo_context,layout,x,y,mb[0])
+               print_string(cairo_context,layout,x + 40,y,str(quota))
+               print_string(cairo_context,layout,x + 80,y,str(0))
+               print_string(cairo_context,layout,x + 120,y,str(free))
+               print_string(cairo_context,layout,x + 150,y,"%")
 
+               iter = model.iter_next(iter)
+               if iter:
+                       y = y + 4
 
-def print_line(context,width_line,x,width,y):
-       context.move_to(x,y)
-       context.line_to(width,y)
-       context.set_line_join(cairo.LINE_JOIN_ROUND)
-       context.set_line_width(width_line)
-       context.stroke()
+                       if y > page_height:
+                               
print_header(cairo_context,layout,x,page_width,right_margin,top_margin)
+                               y = yini
+
+
+def print_line(cairo_context,width_line,x,width,y):
+       cairo_context.move_to(x,y)
+       cairo_context.line_to(width,y)
+       cairo_context.set_line_join(cairo.LINE_JOIN_ROUND)
+       cairo_context.set_line_width(width_line)
+       cairo_context.stroke()
 
-def print_string(context,layout,x,y,string):
-       context.move_to(x,y)
+def print_string(cairo_context,layout,x,y,string):
+       cairo_context.move_to(x,y)
        layout.set_text(string)
-       context.show_layout(layout) 
+       cairo_context.show_layout(layout) 
 
-def print_header(context,layout,x,page_width,right_margin,top_margin):
-       print_line(context,WIDTH_LINE,x,page_width - right_margin,top_margin)
-       print_string(context,layout,x,top_margin + 1,_("Mailbox"))
-       print_string(context,layout,x + 40,top_margin + 1,_("Quota assigned"))
-       print_string(context,layout,x + 80,top_margin + 1,_("Quota used"))
-       print_string(context,layout,x + 120,top_margin + 1,_("Quota free"))
-       print_string(context,layout,x + 150,top_margin + 1,_("Status"))
-       print_line(context,WIDTH_LINE,x,page_width - right_margin,top_margin + 
6)
+def print_header(cairo_context,layout,x,page_width,right_margin,top_margin):
+       print_line(cairo_context,WIDTH_LINE,x,page_width - 
right_margin,top_margin)
+       print_string(cairo_context,layout,x,top_margin + 1,_("Mailbox"))
+       print_string(cairo_context,layout,x + 40,top_margin + 1,_("Quota 
assigned"))
+       print_string(cairo_context,layout,x + 80,top_margin + 1,_("Quota used"))
+       print_string(cairo_context,layout,x + 120,top_margin + 1,_("Quota 
free"))
+       print_string(cairo_context,layout,x + 150,top_margin + 
1,_("Percentage"))
+       print_line(cairo_context,WIDTH_LINE,x,page_width - 
right_margin,top_margin + 6)
_______________________________________________
SVN-commits-list mailing list (read only)
http://mail.gnome.org/mailman/listinfo/svn-commits-list

Want to limit the commits to a few modules? Go to above URL, log in to edit 
your options and select the modules ('topics') you want.
Module maintainer? It is possible to set the reply-to to your development 
mailing list. Email [EMAIL PROTECTED] if interested.

Reply via email to