
    Hf8                     P    d dl mZ d dlZd dl mZ d dlmZ ddl  G d de      Zy)	    )GtkN)GObject)TimedOperation   )*c                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	ChooseNetworkPrinterc                 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 network printerzChoose Network PrinterzPlease select the network 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           E/usr/share/system-config-printer/troubleshoot/ChooseNetworkPrinter.pyr   zChooseNetworkPrinter.__init__   s   41IJ!!1%=#>#$ &< $=>
 \\_!!1V9#&#7#7#:D%%q}'*';';'>QH!!1]#3#&#7#7#:D;-{D1;-
$
(#
$
4 "
s~~//1I1IJ
CNN--.
"dD!,-    c                 6   | j                   j                  }|d   ry|j                  dd      sy|d   }t        j                  t
        t
        t
        t        j                        }|| _        | j                  j                  |       |j                  d       }|j                  |dt        d      ddd	dd
d	       | j                   j                         }	 t        t         j"                  d|i|      | _        | j$                  j'                         }t        |j(                  |      | _        | j$                  j'                         }d }g }	|j+                         D ]  \  \  }
}}|
||
d|}n|
}|4t        |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         j0                  $ r Y yt         j2                  $ r Y yt4        $ r Y yw xY w)Ncups_queue_listedFremote_server_cupsremote_server_try_connectr   z
Not listedr    r      host)kwargsparent)r8   /Unknownzprinter-infozprinter-locationc                     | d   S )Nr    )xs    r.   <lambda>z.ChooseNetworkPrinter.display.<locals>.<lambda>o   s
    1Q4 r/   )keyT)r'   answersgetr   	ListStorestrr   TYPE_PYOBJECTmodelr$   	set_modelappendsetr   
get_windowr   cups
ConnectionoprungetDestsitemsgetPrinterssort	HTTPErrorIPPErrorRuntimeError)r&   r@   serverrE   iterr8   cdestsprinters
dests_listr*   instancedestqueuer,   r+   printers                    r.   displayzChooseNetworkPrinter.display:   sx   %%--&'{{0%845s""&446 
'||T"		4AlOQAr1a@$$//2*	$doo.4f-=-35DG A$ajj@DGGGKKNEHJ*/++. B& x$<''+X6E E#,amm<DG#ww{{~H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   FI$ $J9JJJc                 F    | j                   j                  d|      | _        y )Nzcursor-changed)r$   connect	signal_id)r&   handlers     r.   connect_signalsz$ChooseNetworkPrinter.connect_signals}   s    ..0@'Jr/   c                 N    | j                   j                  | j                         y N)r$   
disconnectrb   r&   s    r.   disconnect_signalsz'ChooseNetworkPrinter.disconnect_signals   s      $..1r/   c                 `    | j                   j                         j                         \  }}|yy)NFT)r$   get_selectionget_selected)r&   rE   rV   s      r.   can_click_forwardz&ChooseNetworkPrinter.can_click_forward   s,    mm114AADt<r/   c                 R   | j                   j                  j                  dd      si S | j                  j	                         j                         \  }}|si S |j                  |d      }|dk(  r G d d      }d ||      j                  dS d||j                  |j                  d	S )
Nr2   Fr5   r   c                       e Zd Zd Zd Zy)7ChooseNetworkPrinter.collect_answer.<locals>.enum_destsc                 J    g | _         |j                  | j                  d        y rf   )rX   foreacheach)r&   rE   s     r.   r   z@ChooseNetworkPrinter.collect_answer.<locals>.enum_dests.__init__   s    !#DJMM499d3r/   c                     |j                  |d      }|r2| j                  j                  |j                  |j                  f       y y )Nr5   )	get_valuerX   rG   r*   r[   )r&   rE   pathrV   	user_datar\   s         r.   rs   z<ChooseNetworkPrinter.collect_answer.<locals>.enum_dests.each   s9     ??D!4D

))DIIt}}+EF r/   N)__name__
__module____qualname__r   rs   r<   r/   r.   
enum_destsrp      s    4Gr/   r{   )remote_cups_queue_listedremote_cups_dests_availableT)r|   remote_cups_destremote_cups_queueremote_cups_instance)
r'   r@   rA   r$   rk   rl   ru   rX   r*   r[   )r&   rE   rV   r\   r{   s        r.   collect_answerz#ChooseNetworkPrinter.collect_answer   s    ""**..0DeLImm114AADtIa(19G G 274>4F4L4LO O 26)-*.))-1]]= =r/   c                 8    | j                   j                          y rf   )rL   cancelrh   s    r.   cancel_operationz%ChooseNetworkPrinter.cancel_operation   s    r/   N)
rx   ry   rz   r   r_   rd   ri   rm   r   r   r<   r/   r.   r	   r	      s(    .:AFK2=8r/   r	   )	gi.repositoryr   rJ   r   timedopsr   baser   r	   r<   r/   r.   <module>r      s$   ,   ! # J8 Jr/   