
    Hf@                        d dl Z d dlZd dl d dlmZ  G d dej                        Zedk(  rd dlmZ  ej                         Z	 e
d        ej                  e        e       Zg Zd	 Zd
 Zd Zej%                  ej'                  de             ej%                  ej'                  de              ej(                  ej*                  d       e	j-                          [yy)    N)*)GObjectc                       e Zd Zej                  j
                  dej                  ej                  ffej                  j
                  deej                  ffdZd Z	d Z
d ZddZd Zd Zd	 Zd
 Zy)OpenPrintingRequestN)finishederrorc                     t         j                   j                  |        t        d       t        j                  j
                  di || _        d | _        t        d| z         y )NStartingz+%s )r   __init__
debugprintcupshelpersopenprintingOpenPrinting_handle)selfargss     7/usr/share/system-config-printer/OpenPrintingRequest.pyr   zOpenPrintingRequest.__init__5   sK      $'J'44AAJTJEDL!    c                      t        d| z         y )Nz-%s)r   r   s    r   __del__zOpenPrintingRequest.__del__<   s    EDL!r   c                     t        d| z         | j                  ,| j                  j                  | j                         d | _        t        d| z         | j	                  ddd       y )Nz%s: cancel()%s -> 'error'r   r   canceled)r   r   r   cancelOperationemitr   s    r   cancelzOpenPrintingRequest.cancel?   sU    NT)*<<#--t||<DLOd*+		7Az*r   c                 x    t        d| z         | j                  j                  || j                  |      | _        y )Nz%s: searchPrinters())r   r   searchPrinters_printers_gotr   )r   
searchterm	user_datas      r   r    z"OpenPrintingRequest.searchPrintersH   s7    *T12((779=9K9K9BDr   c                    d | _         |dk7  r"t        d| z         | j                  d||       y |D cg c]	  }|||   f c}| _        g | _        t               | _        | j                         s| j                          y y c c}w )Nr   r   r   )	r   r   r   downloadable_printers_uncheckeddownloadable_printersdictdownloadable_drivers_query_next_printer_drivers_got)r   statusr#   printersxs        r   r!   z!OpenPrintingRequest._printers_gotN   s    Q;$./IIw1 :B0C45 23HQK0@ 0C,%'"$(F! ''*  +0Cs   Bc                    	 | j                   j                         }|\  }}t        j
                  rd| j                  _        nd| j                  _        t               }t        j                  rd|d<   nd|d<   t        j                  |d<   t        | d	|       | j                  j                  || j                  ||
      | _        y# t        $ r t        d| z         Y yw xY w)z
        If there are more printers to query, kick off a query and
        return True.

        Otherwise return False.
        z'%s: All printer driver queries finishedF   r   1onlyppdfilesonlydownloadpackagesystemz: Querying drivers for )r#   extra_optionsT)r%   pop
IndexErrorr   configDOWNLOADABLE_ONLYFREEr   onlyfreer'   DOWNLOADABLE_ONLYPPDr3   listDrivers_printer_drivers_gotr   )r   r#   
printer_idprinter_nameoptionss        r   r)   z'OpenPrintingRequest._query_next_printer^   s    	<<@@CI)2&Z
 '')*D&)*D&&&&&)GN#&)GN#'-';';GO$T:FG((44j6:6O6O@IDK 5 M
 -  	ADHI	s   C C%$C%c                 2   d | _         |dk7  r"t        d| z         | j                  d||       y |rt        d| z         i }|j                         D ]X  }||   }d|v rt	        |d         dkD  s%t
        j                  sd|v rt	        |d         dkD  r	||   ||<   Kt        d|z         Z t	        |      dkD  r=t        d| z         |\  }}|| j                  |<   | j                  j                  |       | j                         s| j                          y y )	Nr   r   r   z%s: - drivers foundppdspackagesz!Not using invalid driver entry %sz.%s: - drivers with installable resources found)r   r   r   keyslenr7   r:   r(   r&   appendr)   r*   )	r   r+   r#   driversdrivers_installable	driverkeydriverr=   r>   s	            r   r<   z(OpenPrintingRequest._printer_drivers_got   s5   Q;$./IIw0-45"%$\\_ +	 +v%(1,446)
+,q0 6=Y5G'	2 C )!* ++ &'!+L ! "-6*\8K))*5**119=''*  +r   c                 |    d | _         t        d| z         | j                  d| j                  | j                         y )Nz%s -> 'finished'r   )r   r   r   r&   r(   r   s    r   r*   z OpenPrintingRequest._drivers_got   s7    &-.		:--,,	.r   N)__name__
__module____qualname__r   SignalFlagsRUN_LASTTYPE_PYOBJECTint__gsignals__r   r   r   r    r!   r)   r<   r*   r   r   r   r   r       s     ,,55t %22 %22 !,,55t !$22	L(""+D! !F !D.r   r   __main__)pprintTc                     t         D ]  }| j                  |        t        j                  dt        j
                         y )Nr/   )handlers
disconnectr   timeout_add_secondsmainloopquit)objhandlers     r   doner^      s3     	%GNNG$	% 	##Q6r   c                 ^    t        d|z         t        t        |             t        |        y )Nz	Error: %d)printreprr^   )r\   r+   errs      r   r   r      s"    {V#$tSzc
r   c                 F    t        |       t        |       t        |        y rK   )rU   r^   )r\   r,   rF   s      r   r   r      s    c
r   r   r   z
ricoh 8000)r7   r   debuggi.repositoryr   r   rL   rU   MainLooprZ   set_debuggingset_debugprint_fnr   reqrW   r^   r   r   rE   connectidle_addr    runr   r   r   <module>rm      s   2    !H.'// H.T zw"H4!K!!:.

 CH7

 OOS[['512OOS[[*h78Gc((,7LLO9 r   