From 712e2e1884d5e9caed337910d7b4324e6b716ff3 Mon Sep 17 00:00:00 2001 From: Leonardo Robol Date: Sun, 20 Sep 2009 15:35:45 +0200 Subject: [PATCH] Aggiunto widget per il range di pagine --- DrPrintBackend.py | 10 +++++++++- DrPrintGui/Input.py | 52 +++++++++++++++++++++++++++++++++++++++++++++++++ DrPrintGui/Input.pyc | Bin 7375 -> 8728 bytes DrPrintGui/MainWin.py | 14 +++++++++++-- DrPrintGui/MainWin.pyc | Bin 3848 -> 4096 bytes 5 files changed, 73 insertions(+), 3 deletions(-) diff --git a/DrPrintBackend.py b/DrPrintBackend.py index 62a128e..12944d4 100644 --- a/DrPrintBackend.py +++ b/DrPrintBackend.py @@ -10,7 +10,7 @@ class Backend(gobject.GObject): gobject.signal_new("auth_failed", Backend, gobject.SIGNAL_RUN_FIRST, None, ()) - def send_print(self, printer, username, password, page_per_page, filename): + def send_print(self, printer, username, password, page_per_page, filename, page_range): # Get printer name print "Selected printer: %s" % printer @@ -37,12 +37,20 @@ class Backend(gobject.GObject): cmd_opts = "" + ## Pagine logiche per pagine if not page_per_page == 1: cmd_opts += "number-up=%s " % str(page_per_page) + ## Da a + if not page_range == None: + cmd_opts += "page-ranges=%s" % page_range + + ## Se ci sono opzioni dai il -o e specificale if not cmd_opts == "": cmd = cmd + "-o %s" % cmd_opts + ## Diamo il comando sul canale e infiliamo il file + ## dentro lo stdin :) channel.exec_command(cmd) channel.sendall( f.read() ) f.close() diff --git a/DrPrintGui/Input.py b/DrPrintGui/Input.py index f750f48..af1330a 100644 --- a/DrPrintGui/Input.py +++ b/DrPrintGui/Input.py @@ -195,3 +195,55 @@ class PrinterSettingsBlock(gtk.HBox): return self.page_per_page.get_page_per_page() + +class PageRangeBlock(gtk.VBox): + + def __init__(self): + + gtk.VBox.__init__(self) + + self.check_button = gtk.CheckButton("Stampa solo una parte del documento", + True) + + self.check_button.set_active(False) + + self.check_button.connect('clicked', self.check_button_callback) + + self.pack_start(self.check_button) + self.check_button.show() + + self.hbox = gtk.HBox() + + self.range_field = gtk.Entry() + + label = LeftAlignedLabel("Range di pagine", 2) + self.hbox.pack_start(label) + self.hbox.pack_start(self.range_field) + label.show() + + self.pack_start(self.hbox) + + self.range_field.show() + + self.hbox.show() + self.hbox.set_spacing( 5 ) + self.hbox.set_sensitive(False) + + def check_button_callback(self, obj): + + if self.check_button.get_active() == False: + self.hbox.set_sensitive(False) + else: + self.hbox.set_sensitive(True) + + def get_page_range(self): + + if self.check_button.get_active() == False: + return None + + return self.range_field.get_text() + + + + + diff --git a/DrPrintGui/Input.pyc b/DrPrintGui/Input.pyc index d4fff1512d83dfcabbe6596c99e3b7e629f21cbe..803b8dd291b6641dc2c62eaa8f1b13186831cb6f 100644 GIT binary patch delta 1094 zcmZuw&2G~`5T4yMNu9=xnmupHY>-KKU`Zx9Di z4&?!meBli^S4dnrB2I`iFTf3nC*T{q36UVqe%_h+c4l^F{O$JpyNlm{>lJnL(*ut# zej<72|Abbn#d_KhD8cXq{?(INL7iI7WsqMWKMVOr(0~Kz6vCSr1P~%_Bva1 zKoTe?38Exa;me?K$N-`vIa u%aBr%+Ok$|)zi|FQ_e?f7p!~fho$Configurazione Avanzata") + layout_box.pack_start(label) + label.show() + + self.page_range_block = PageRangeBlock() + layout_box.pack_start(self.page_range_block) + self.page_range_block.show() + self.print_button = PrintButton() layout_box.pack_start(self.print_button) self.print_button.show() @@ -86,12 +94,14 @@ class MainWin(gtk.Window): password = self.auth_block.get_password() filename = self.printer_settings_block.get_filename() page_per_page = self.printer_settings_block.get_page_per_page() + page_range = self.page_range_block.get_page_range() self.backend.send_print(printer = printer, username = username, password = password, filename = filename, - page_per_page = page_per_page) + page_per_page = page_per_page, + page_range = page_range) else: self.debug( "Sembra che non ci sia un backend attaccato\ a questa interfaccia, quindi non faccio nulla") diff --git a/DrPrintGui/MainWin.pyc b/DrPrintGui/MainWin.pyc index 4bcc91b92e4355eca07cd0d074fb588a3cf58d39..6f72302aae2a917e4a6647f28a4bb1708ed1f747 100644 GIT binary patch delta 883 zcmYLHTWb?h5T3Ky>@AyQ+mt-mTdcKiTQx}aK`5anqE<>fKiqD@ z;8F3rgce0dqt$X(gSrN+#h@j_whmnb>ISaU&}QIeU<(5Z>;v=x?$ynsg9Vm8`m|Pv zb68^C?X_EIp{gO4TAikz1MPIgW#CfW;2jEz+ zhbJiHdlvK=uoKTyiIFUZh>}E*d9vM7;jXP6f0i3;Ihw#878{jX;BR@IozUI&0>53l z_Sp4z-Pm0$H!7?4Fmkw#5X%S~)!=EIK__a*PSkUop5Nhlv99<93da^g52tcM8cTds z=Gch%rrbBE%o)mC6t~n1=`1rOQ~2t0g?iwY_@U0==tXS``6$4Z0&Z^*pUMI&vZjPz z4K0gSLyO)a(8vHSfQJ(F4#j)zPC*CHAO&8igQ%AgiavQ7uVIfgP?(=Pk;ep7gXF<{ z6h$oQ%h}k#s{bYsuk_7XI*-%Ai2$pp5Feuzsn9_cdZFjX?U0WO%UCJ$af;F9Cb5AO zqHc_psRkdRu!8W!YaxTr(B?S;n_!k;j$oc-C{3eVM@y~>n8ot{Uul>r$A64{Hh!5B z(g<-1A>8pf{iHT6ILc{mq|c)JNc=XdC~qaZlBSGj;xK!4`aF?n7M|QR>CWj?PAQyt zHc%^P7XAS{JHgVzVoNK}i8`0_-MQzU$M>E4^33Z~^{+=I@3{Nn)&Tx} zHtpBQvS+h;w~Y}(WWZAg_FUL@0V5M)gv5hKbYa01-~iy>c47AB5*oA5x93ePYG|u> zepeHo%Jd6(MZMR5t4~JI$N>@`a)bi}q%E;I8>!A#V9(dgU37Xug_;XTeY6@_R^O~t zJ+xa`Q&aoCSEZ{KbL*&|_L^!r(mKh}zIyAdP}46?lOn0L`fi)+J&rU80FU87qn))C z$gY!RhXhOrAOd)z!Tt*sx_7RU#|2WIYY=IW>k#RX8$5*E1X7<{#M#8OObRI0<0-Hl zDncTZ?%h;7-h(!`5!_EQgWf2OMV(LVAI37=A1A4d$6{Ii@HRK3NA4_6qrZM>(lLs6 zC&PeCh#G;k2%aYqC5yA{JjbxYaGoJx-3`&?f3j?u0I-7o|D`R>j|x+4bU1=ZNu6Lk zNd;F9_#kRZmF}86;(_{A>e4XR%bO-=jMS_0<