
    Kc                         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T  G d	 d
e	          Z
dS )    )Gtkc                       e Zd ZdS )	NoPrinterN)__name__
__module____qualname__     >/usr/share/system-config-printer/troubleshoot/ChoosePrinter.pyr   r      s        Dr
   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
d	S )
ChoosePrinterc                    t                               | |d           |                     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
          }|                    dd           |                    dd           |                    dd           |	                    |           |	                    |           |	                    |           |
                    d           t	          j                    }|                    t          j        j        t          j        j                   |                    t          j        j                   |                    |           |                    |ddd           || _        |                    ||            d S )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BB!!1%5#6#6#$ &< $= $=> >
 \__!1V99#&#7#:#:D D D%q}}'*';'>'>QH H H!1]#3#3#&#7#:#:D D D;---{D111;---
$
(###
$
4   ""
s~/1IJJJ
CN-...
"dD!,,,-----r
   c                    t          j        t          t          t          t          j                  }| j                            |           |                    d           }|                    |dt          d          dddddt          	  	         | j                                        }	 t          j        d           |                     t          j        |                                          }|                     |j        |                                          }d }g }|                                D ]\  \  }}	}
||	|d|	}n|}|.|                     |j        |                                          }||vrt          d	          }t          d	          }nN||         }|                    d
t          d	                    }|                    dt          d	                    }|                    ||||
f           |                    d            |D ]9\  }}}}
|                    d           }|                    |d|d|d|d|
	  	         :n0# t          j        $ r Y nt          j        $ r Y nt2          $ r Y nw xY wdS )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6 6 	'''||T""		4AlOOQAr1iHHH$//22'	NBdof==AADDALL!*VL<<@@CCEHJ*/++.. B B& x$<''+ttXX6EE E##||Q]4:  ,  <  <<?CFF  x''Y<<D ||HH&tnG";;~q||DDD&{{+=q||LLH!!E8T4#@AAAAOOO000/9 J J+xt||T**		4E1h4DIIIIJ ~ 	 	 	D} 	 	 	D 	 	 	D	 ts   )F2I J	-J	=	J	J	c                 F    | j                             d|          | _        d S )Nzcursor-changed)r,   connect	signal_id)r.   handlers     r   connect_signalszChoosePrinter.connect_signalsu   s     ..0@'JJr
   c                 D    | j                             | j                   d S N)r,   
disconnectrb   r.   s    r   disconnect_signalsz ChoosePrinter.disconnect_signalsx   s       $.11111r
   c                 j    | j                                                                         \  }}|dS dS )NFT)r,   get_selectionget_selected)r.   rU   rV   s      r   can_click_forwardzChoosePrinter.can_click_forward{   s4    m1144AADDt<5tr
   c                    | 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dS )0ChoosePrinter.collect_answer.<locals>.enum_destsc                 J    g | _         |                    | j        d            d S rf   )rX   foreacheach)r.   rU   s     r   r   z9ChoosePrinter.collect_answer.<locals>.enum_dests.__init__   s%    !#DJMM49d33333r
   c                     |                     |d          }|t          k    r(| j                            |j        |j        f           d S d S )Nr8   )	get_valuerF   rX   rD   r2   r[   )r.   rU   pathrV   	user_datar\   s         r   rs   z5ChoosePrinter.collect_answer.<locals>.enum_dests.each   sZ     ??D!44Dy((
))DI,0M,; < < < < < )(r
   N)r   r   r   r   rs   r	   r
   r   
enum_destsrp      s2        4 4 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    m1144AADDta((9	< 	< 	< 	< 	< 	< 	< 	< +0-7Z-?-?-EH H H +/"&#'9&*m6 6 6r
   c                 8    | j                                          d S rf   )opcancelrh   s    r   cancel_operationzChoosePrinter.cancel_operation   s    r
   c                 2    t          |i || _        | j        S rf   )r   r   )r.   argskwargss      r   rJ   zChoosePrinter.timedop   s     42622wr
   N)r   r   r   r   r_   rd   ri   rm   r~   r   rJ   r	   r
   r   r   r   !   s        . . .<3 3 3jK K K2 2 2  6 6 6.      r
   r   )gi.repositoryr   r   rF   rH   r   timedopsr   baser   r   r	   r
   r   <module>r      s   ,      	 	 	 	 	 	 	 	 IKK	  ! ! ! ! ! ! # # # # # #    | | | | |H | | | | |r
   