
    Hf                     r    d dl mZ  G d d      Z e       Zd dlZd dl mZ d dlmZ ddl  G d	 d
e	      Z
y)    )Gtkc                       e Zd Zy)	NoPrinterN)__name__
__module____qualname__     >/usr/share/system-config-printer/troubleshoot/ChoosePrinter.pyr   r      s    r
   r   N)GObject)TimedOperation   )*c                   <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
y	)
ChoosePrinterc                 B   t         j                  | |d       | j                  t        d      t        d            }t	        j
                         }t	        j                  t        d      t	        j                         d      }t	        j                  t        d      t	        j                         d      }t	        j                  t        d	      t	        j                         d
      }|j                  dd       |j                  dd       |j                  dd       |j                  |       |j                  |       |j                  |       |j                  d       t	        j                         }|j                  t        j                  j                  t        j                  j                         |j                  t        j                   j"                         |j%                  |       |j'                  |ddd       || _        |j+                  ||        y )NzChoose printerzChoose Printerz|Please select the printer you are trying to use from the list below. If it does not appear in the list, select 'Not listed'.Namer   )textLocationr   Information   	resizableT)Question__init__initial_vbox_r   TreeViewTreeViewColumnCellRendererTextset_propertyappend_columnset_rules_hintScrolledWindow
set_policy
PolicyType	AUTOMATICset_shadow_type
ShadowTypeINadd
pack_starttreeviewnew_page)selftroubleshooterpage1tvnamelocationinfosws           r   r   zChoosePrinter.__init__"   s   41AB!!1%5#6#$ &< $=>
 \\_!!1V9#&#7#7#:D%%q}'*';';'>QH!!1]#3#&#7#7#:D;-{D1;-
$
(#
$
4 "
s~~//1I1IJ
CNN--.
"dD!,-r
   c                    t        j                  t        t        t        t        j                        }| j
                  j                  |       |j                  d       }|j                  |dt        d      dddddt        	       | j                  j                         }	 t        j                  d       | j                  t        j                   |      j#                         }| j                  |j$                  |      j#                         }d }g }|j'                         D ]  \  \  }}	}
||	|d|	}n|}|+| j                  |j(                  |      j#                         }||vrt        d	      }t        d	      }n;||   }|j+                  d
t        d	            }|j+                  dt        d	            }|j                  ||||
f        |j-                  d        |D ]1  \  }}}}
|j                  d       }|j                  |d|d|d|d|
	       3 	 y# t        j.                  $ r Y yt        j0                  $ r Y yt2        $ r Y yw xY w)Nr   z
Not listedr    r      )parent/Unknownzprinter-infozprinter-locationc                     | d   S )Nr   r	   )xs    r   <lambda>z'ChoosePrinter.display.<locals>.<lambda>g   s
    1Q4 r
   )keyT)r   	ListStorestrr   TYPE_PYOBJECTr,   	set_modelappendsetr   	NotListedr/   
get_windowcups	setServertimedop
ConnectionrungetDestsitemsgetPrintersgetsort	HTTPErrorIPPErrorRuntimeError)r.   modeliterr9   cdestsprinters
dests_listr2   instancedestqueuer4   r3   printers                  r   displayzChoosePrinter.display@   s;   s""&446 	'||T"		4AlOQAr1iH$$//2'	NNBdoof=AADALL!**VL<@@CEHJ*/++. B& x$<''+X6E E##||Q]]4:  ,  <<?CF  x'Y<D |H&tnG";;~q|DD&{{+=q|LH!!E8T4#@A+B. OOO0/9 J+xt||T*		4E1h4DIJ  ~~ 	  }} 	   		s    E>H   I5I	IIc                 F    | j                   j                  d|      | _        y )Nzcursor-changed)r,   connect	signal_id)r.   handlers     r   connect_signalszChoosePrinter.connect_signalsu   s    ..0@'Jr
   c                 N    | j                   j                  | j                         y N)r,   
disconnectrb   r.   s    r   disconnect_signalsz ChoosePrinter.disconnect_signalsx   s      $..1r
   c                 `    | j                   j                         j                         \  }}|yy)NFT)r,   get_selectionget_selected)r.   rU   rV   s      r   can_click_forwardzChoosePrinter.can_click_forward{   s,    mm114AADt<r
   c                    | j                   j                         j                         \  }}|j                  |d      }|t        k(  r G d d      }d ||      j
                  dS d||j                  |j                  dS )Nr8   c                       e Zd Zd Zd Zy)0ChoosePrinter.collect_answer.<locals>.enum_destsc                 J    g | _         |j                  | j                  d        y rf   )rX   foreacheach)r.   rU   s     r   r   z9ChoosePrinter.collect_answer.<locals>.enum_dests.__init__   s    !#DJMM499d3r
   c                     |j                  |d      }|t        k7  r2| j                  j                  |j                  |j
                  f       y y )Nr8   )	get_valuerF   rX   rD   r2   r[   )r.   rU   pathrV   	user_datar\   s         r   rs   z5ChoosePrinter.collect_answer.<locals>.enum_dests.each   sC     ??D!4Dy(

))DII,0MM,; < )r
   N)r   r   r   r   rs   r	   r
   r   
enum_destsrp      s    4<r
   rx   F)cups_queue_listedcups_dests_availableT)ry   	cups_dest
cups_queuecups_instance)r,   rk   rl   ru   rF   rX   r2   r[   )r.   rU   rV   r\   rx   s        r   collect_answerzChoosePrinter.collect_answer   s    mm114AADta(9	< 	< +0-7-?-E-EH H +/"&#'99&*mm6 6r
   c                 8    | j                   j                          y rf   )opcancelrh   s    r   cancel_operationzChoosePrinter.cancel_operation   s    r
   c                 :    t        |i || _        | j                  S rf   )r   r   )r.   argskwargss      r   rJ   zChoosePrinter.timedop   s     4262wwr
   N)r   r   r   r   r_   rd   ri   rm   r~   r   rJ   r	   r
   r   r   r   !   s,    .<3jK26.r
   r   )gi.repositoryr   r   rF   rH   r   timedopsr   baser   r   r	   r
   r   <module>r      s7   , 	 	 K	  ! # |H |r
   