
    HfV[                       d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZ	  ej                  dd       d dl	m
Z
  ej                  dd       d dl	mZ 	  ej                  d	d
       d dl	mZ  ej                  dd
       d dl	mZ  ej                  ej                         	  ej                  dd       d dl	mZ  ej                          ej*                  j-                         j/                  ej0                  j2                         d Z eej                        dkD  r+ej                  d   dk(  r e         ej&                  d        d dlZ ej:                  d        ej<                  ej>                         d dl Z 	  e jB                  e jD                  d       d dl%Z% e%jL                  e jN                  e jP                         d dl)Z)d dl	m*Z* d dl	m+Z+ d dl,m-Z- d dl. d dl/Z0d dl1Z0d dl2Z0d dl3Z3d dl4Z4d dl5Z5d dl6Z6d dl7Z7d dl8Z8d dl8 d dl9Z9d dl:m;Z; d dl< d dl= d dl>Z>d dl?Z?d d l?m@Z@mAZA d dlBZBd dlCZC eCj                          e j                  ZEej                  j                  eEd!      ZHej                  j                  eE       dZJdZK e+j                  d"       d# ZM G d$ d%      ZN G d& d'eN      ZO G d( d)eN      ZP G d* d+e-      ZQd, ZReSd-k(  rud dlTZT	  eTj                  ej                  dd dg d.      \  ZVZWdZYeVD ]:  \  ZZZ[eZd/k(  r e\d0        e)j                  e^       neZd1k(  re[ZYeZd2k(  s3 e_e[      ZK<  eReY       yy#  dZ
Y  xY w# e$ r.Z ede        ed        ej&                  d       Y dZ[dZ[ww xY w#  Y xY w# e jF                  $ r0 dejH                  d<    e jB                  e jD                  d       Y 8w xY w# eTj                  $ r  e         ej&                  d       Y w xY w)3    NPolkitz1.0)r   F	GdkPixbufz2.0)r   Gdkz3.0)r   Gtk)r   zsystem-config-printer:z?This is a graphical application and requires DISPLAY to be set.   Handy1)r   c                      t        d       y )Na*  
This is system-config-printer, a CUPS server configuration program.

Options:

  --debug                 Enable debugging output.
  --show-jobs <printer>   Show the print queue for <printer>
  --embedded              Enable to start in Embedded mode.
   --help                  Show this message.
)print     9/usr/share/system-config-printer/system-config-printer.py	show_helpr   <   s    	 < =r   z--helpz1.9.46 CLC_ALL)domain	localedir)GObject)GLib)GtkGUI)*)ServerSettings)busyreadyicons/zsystem-config-printerc                  @    t        j                         } | d   dk(  ry| S )Nr   /	localhost)cups	getServer)hosts    r   CUPS_server_hostnamer#   x   s!    >>DAw#~Kr   c                       e Zd Zd Zd Zd Zy)ServiceStartc                     t        j                         }|j                  | j                  | j                        }t        j
                  ||      }|S N)dbus	SystemBus
get_objectNAMEPATH	Interface)selfifacebusobjproxys        r   
_get_ifacezServiceStart._get_iface   s;    nnnndii3U+r   c                 r    	 | j                  t        j                        }|j                         }y#  Y yxY w)NFT)r3   r(   INTROSPECTABLE_IFACE
Introspect)r.   r2   
introspects      r   	can_startzServiceStart.can_start   s8    	OOT%>%>?E))+J 	s   /2 6c                 `    | j                  | j                        }| j                  |||       y r'   )r3   IFACE_start)r.   reply_handlererror_handlerr2   s       r   startzServiceStart.start   s$    

+E=-8r   N)__name__
__module____qualname__r3   r8   r>   r   r   r   r%   r%   ~   s    9r   r%   c                       e Zd ZdZdZdZd Zy)SysVServiceStartz!org.fedoraproject.Config.ServiceszQ/org/fedoraproject/Config/Services/ServiceHerders/SysVServiceHerder/Services/cupsz-org.fedoraproject.Config.Services.SysVServicec                 *    |j                  ||       y )Nr<   r=   )r>   r.   r2   r<   r=   s       r   r;   zSysVServiceStart._start   s    -"/ 	 	1r   N)r?   r@   rA   r+   r,   r:   r;   r   r   r   rC   rC      s    	,D	\D
9E1r   rC   c                   "    e Zd ZdZdZdZdZd Zy)SystemDServiceStartzorg.freedesktop.systemd1z/org/freedesktop/systemd1z org.freedesktop.systemd1.Managerzorg.cups.cupsd.servicec                 B    |j                  | j                  d||       y )NfailrE   )	StartUnitCUPS_SERVICErF   s       r   r;   zSystemDServiceStart._start   s#    ))6&3&3 	 	5r   N)r?   r@   rA   r+   r,   r:   rL   r;   r   r   r   rH   rH      s    	#D	$D
,E)L5r   rH   c            
           e Zd Zej                   ed      ej                   ed      ej                   ed      ej                   ed      iZ	dZ
dZdZ fdZd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdUdZd Zd Z d Z!d Z"d Z#dVdZ$d  Z%d! Z&d" Z'd# Z(d$ Z)dVd%Z*d& Z+d' Z,d( Z-d) Z.d* Z/d+ Z0d, Z1d- Z2d. Z3d/ Z4d0 Z5d1 Z6d2 Z7d3 Z8d4 Z9d5 Z:d6 Z;d7 Z<d8 Z=d9 Z>d: Z?d; Z@d< ZAd= ZBdUd>ZCd? ZDd@ ZEdA ZFdUdBZGdC ZHdD ZIdE ZJdF ZKdG ZLdH ZMdI ZNdJ ZOdK ZPdVdLZQdM ZRdN ZSdO ZTdP ZUdQ ZVdR ZWdS ZXdT ZY xZZS )WGUIIdle
ProcessingBusyStoppedr   r      c                 %   t         t        |           	 t        j                  t        j
                        | _        t        j                  t        j                        | _        i | _        t        j                          | _        t        j$                         | _        t        j(                         | _        d | _        d | _        t1        | j"                  f      | _        d | _        t1               | _        d| _        | j;                  g ddgg dg dg d	d
dgdt<        j>                         t@        r| jB                  jE                          | jB                  jG                         d   }tH        jJ                  jM                  t@              }tH        jN                  jQ                  | jB                  |       |jS                  |       | jB                  jU                  |       |jW                          || _!        | jX                  j[                  d| j\                         tH        j^                  ja                  d       d}d | _1        td        r'	 td        jf                  ji                  |d d       | _1        tI        jn                         | _8        | jb                  &| jb                  j[                  d| jr                         | jp                  j[                  d| jr                         | jt                  jw                  | jp                  ddd       tI        jx                  d      }|j{                  dtH        j|                  t        d      d t        d      | j                  fdtH        j                  t        d      d t        d      | j                  fdtH        j                  t        d      d d | j                  fdtH        j                  t        d       d d | j                  fd!tH        j                  d d d | j                  fg       |j{                  d"d t        d#      d d | j                  fd$tH        j                  t        d%      d&d | j                  fd'tH        j                  d d d | j                  fd(tH        j                  t        d)      d d | j                  fd*tH        j                  d d d | j                  fd+tH        j                  t        d,      d d | j                  fd-tH        j                  t        d.      d d | j                  fg       |j                  d/d t        d0      d d | j                  fd1d t        d2      d d | j                  fg       |j                  d3d t        d4      fd5d t        d6      fd7d t        d8      fd9d t        d:      fgd;| j                         |j                         D ]  }|j                  d        d<D ]$  }|j                  |      }|j                  d=       & tI        j                         | _^        | j                  j                  |d>       | j                  j                  d?       | j                  j                          | jB                  j                  | j                  j                                tI        j                         | _e        | j                  j                  t        d@             | j                  j                  dA       | j                  j                  d=       tI        j                         }| j                  j                  dB      }|j                         }| j                  j                  dC      }|j                         }	|j                          |	j                          |j                  |dd;dd;       |j                  |	dd;d;dD       | j                  j                  |       | j                  j[                  dE| j                         | j                  jS                  | j                         | j                  jS                  tI        j                                tI        j                         | _q        | j                  j                  t        dF             | j                  j                  dG       | j                  j[                  dE| j                         | j                  jS                  | j                         | j                  jW                          tI        j                         }
dHD ]  }|dIk(  rAtH        j                  j                  t        dJ            }|j                  d=       || _u        n8|stI        j                         }n!|j                  |      }|j                         }|j                          |
j                  |        | j                  j                  |
       tI        j                         }dKD ]D  }|j                  |      }|j                         }|j                          |j                  |       F | j                  j                  |       tI        j                         | _z        dLD ]e  }|stI        j                         }n!|j                  |      }|j                         }|j                          | j                  j                  |       g | j                  j                  | j                         g | _|        t        j                         x| _        }|j[                  dM| j                          |j[                  dN| j                         |j[                  dO| j                         | j                  j	                  t<        j>                         | j                  j                  t<        j                         | j                  j                  d       	 t        j                  | jB                        | _        | j                  j                  dP      | _        | j                          d| _        d3| _        tI        j                         }dQD ]4  }|j                  |      }|j                         }|j                  |       6 |jW                          | j                   j#                  |       t        j$                  j'                  dR      rt)               | _        nt-               | _        tI        j.                  t0        j2                  t4        j6                  t8        t8              | _        | j<                  j?                  | j:                         | j<                  jA                  dS       | j<                  jC                  dT       | j<                  jE                  d;       | j<                  jG                  dD       | j<                  jI                  dU       | j<                  jK                  d=       | j<                  j[                  dV| jL                         | j<                  j[                  dW| jN                         | j<                  j[                  dX| jP                         | j<                  j[                  dY| jR                         | j<                  j[                  dZ| jT                         | jQ                  | j<                         | j<                  jW                  tX        jZ                  j\                  tH        j^                  jM                  d[dd      gtX        j`                  jb                         | j<                  j[                  d\| jd                         | jf                  j[                  dE| jh                         | jj                  j[                  dE| j                         | jl                  j[                  dE| j                         to        jp                         | _        | jr                  j[                  d]| jt                         | jw                          	 | jy                          | j                          t        | j                        d^kD  r| jB                  j                  d_d`       nmt        | j                        dDkD  r| jB                  j                  dad`       n6t        | j                        d;kD  r| jB                  j                  dadb       | jB                  j                          y #  t                dt        j                  d<   t        j                  t        j                  d       t        j                  t        j
                        | _        t        j                  t        j                        | _        Y xY w# tj        jl                  $ r Y w xY w# t        $ r d | _        Y w xY w# t        jz                  $ rI}|j|                  \  }d | _        | jy                          t        || jB                         Y d }~d }~ww xY w)cNr   r   r   F)PrintersWindowhboxMenuBarview_area_vboxview_area_scrolledwindowdests_notebookdests_iconviewbtnAddFirstPrinterbtnStartServicebtnConnectNoServicestatusbarMaintoolbarserver_menubar_itemprinter_menubar_itemview_discovered_printersAboutDialog)ConnectDialogchkEncryptedcmbServername
btnConnect)ConnectingDialoglblConnectingpbarConnecting)NewPrinterNameentDuplicateNamebtnDuplicateOkInstallDialog
lblInstall)rU   rc   rd   rh   rk   rn   )r   r   zdelete-eventprinterz,org.opensuse.cupspkhelper.mechanism.all-editznotify::allowedznotify::permission   PrinterManagerActionGroup)nameconnect-to-serverz_Connect...zChoose a different CUPS serverserver-settingsz_Settings...zAdjust server settingsnew-printer_Printer	new-class_Classquitrename-printer_Renameduplicate-printer
_Duplicatez<Ctrl>ddelete-printerset-default-printerzSet As De_faultedit-printercreate-classz_Create classview-print-queuezView Print _Queueenable-printerE_nabledshare-printer_Sharedfilter-nameNamefilter-descriptionDescriptionfilter-locationLocationfilter-manufacturerzManufacturer / Modelr   )rt   rz   r   r   r   r   r   Ta  
<ui>
 <accelerator action="connect-to-server"/>
 <accelerator action="server-settings"/>
 <accelerator action="new-printer"/>
 <accelerator action="new-class"/>
 <accelerator action="quit"/>

 <accelerator action="rename-printer"/>
 <accelerator action="duplicate-printer"/>
 <accelerator action="delete-printer"/>
 <accelerator action="set-default-printer"/>
 <accelerator action="edit-printer"/>
 <accelerator action="create-class"/>
 <accelerator action="view-print-queue"/>
 <accelerator action="enable-printer"/>
 <accelerator action="share-printer"/>
 <accelerator action="filter-name"/>
 <accelerator action="filter-description"/>
 <accelerator action="filter-location"/>
 <accelerator action="filter-manufacturer"/>
</ui>
Addzlist-add/new-printer
/new-classrS   clickedRefreshzview-refresh)rt   ru   NnewNrz   r   _New)rv   rx   )r   r}   r{   r   Nr   r   r   r   Nr   printer-addedzprinter-modifiedzdialog-canceled
Connection)r   r   r   r   z/usr/lib/systemd         zkey-press-eventzitem-activatedzselection-changedzbutton-press-eventz
popup-menuqueuezdrag-data-getzdialog-closed   i  iY  i     )superr   __init__locale	getlocaleLC_MESSAGESlanguageLC_CTYPEencodingnonfatalExceptionosenviron	setlocaler   printersr    r!   connect_servergetEncryptionconnect_encryptgetUserconnect_usermonitorpopulateList_timersetserversserver_is_publishingchangedupdating_widgets
getWidgetsconfigPACKAGEPlugWindowIdrU   hideget_childrenr   Plugr   	Containerremoveaddset_transient_forshow_allrh   connecton_connectingdialog_deleteWindowset_default_icon_nameedit_permissionr   
Permissionnew_syncr   GError
LockButtonunlock_buttonpolkit_permission_changedrV   
pack_startActionGroupadd_actionsSTOCK_CONNECT_on_connect_activateSTOCK_PREFERENCESon_server_settings_activateSTOCK_PRINTon_new_printer_activateSTOCK_DND_MULTIPLEon_new_class_activate
STOCK_QUITon_quit_activateon_rename_activate
STOCK_COPYon_duplicate_activateSTOCK_DELETEon_delete_activate
STOCK_HOMEon_set_as_default_activateSTOCK_PROPERTIESon_edit_activateon_create_class_activate
STOCK_FINDon_view_print_queue_activateadd_toggle_actionson_enabled_activateon_shared_activateadd_radio_actionson_filter_criterion_changedlist_actionsset_sensitive
get_action	UIManager
ui_managerinsert_action_groupadd_ui_from_stringensure_updateadd_accel_groupget_accel_groupMenuToolButtonbtnNew	set_labelset_icon_nameset_is_importantMenucreate_menu_itemshowattachset_menur_   SeparatorToolItem
ToolButtonrefreshbuttonon_btnRefresh_clickedMenuItemnew_with_mnemonicmenuItemNewSeparatorMenuItemappendr`   set_submenuprinter_context_menura   
jobviewers
newprinterNewPrinterGUInewPrinterGUIon_new_printer_addedon_printer_modifiedon_new_printer_not_addedrc   set_program_nameset_versionVERSIONauthconnr   RuntimeErrorr^   get_context_idstatus_context_idsetup_toolbar_for_search_entrycurrent_filter_textcurrent_filter_modesearch_entryset_drop_down_menupathexistsrH   servicestartrC   	ListStorer   TYPE_PYOBJECTr   PixbufstrmainlistrZ   	set_modelset_column_spacingset_row_spacingset_pixbuf_columnset_text_columnset_tooltip_columnset_has_tooltipdests_iconview_key_press_eventdests_iconview_item_activated dests_iconview_selection_changed!dests_iconview_button_press_eventdests_iconview_popup_menuenable_model_drag_sourcer   ModifierTypeBUTTON1_MASKTargetEntry
DragActionCOPYdests_iconview_drag_data_getr\   on_start_service_clickedr]   r[   printerpropertiesPrinterPropertiesDialogpropertiesDlgon_properties_dialog_closedconnect_signalspopulateList	HTTPErrorargsshow_HTTP_ErrorsetConnectedlenset_default_size)r.   vbox
PlugWindowedit_actionprinter_manager_action_groupactionactnewmenunewprinteritemnewclassitemserver_context_menuaction_nameitemnew_menunpmenues	__class__s                     r   r   zGUI.__init__   s   vt%(	>",,V-?-?@DM",,V__=DM "nn.#114 LLN"&D//12$(!u !&: ,_,
00 .*,? -D  &~~E 	 "	/H $$&&&335a8Dl3JMM  !4!4d;NN4 11*=!",D 	%%~'+'F'F	H 	

(()4D#'-'8'8'A'A;CG(O$
 !^^.+  ((*;*.*H*HJ 	""$8$($B$B	D##T%7%7rJ OO"=> 	%$00$c&7&7=9Iq9:))+ #C$9$91^;Lq12113 :tT99;c44aktT779tT&&(3) 	* 	%00!49tT446$cnnaoD$"<"<>!3#3#3TtT446&:K8LtT<<>!5!5ttT224!7!7?9KtT::<#S^^Q7J5KtT>>@3 	  	%77!4:tT557 $)tT446: 	 	%66ai0%tQ}-=>"D!J-8&a0F.GH	9
 d66	8 3??B 	)F  %(	). 	%F /996BCt$	% --*++-I2N**	2 	%%(++T__-L-L-OP ((+qx(!!:.$$d+((+++^<003++\:..11a3aAq1g&Y(D(DE$++&#//23 ^^.$$a	l3((.9""It/I/IJ$,,- !hhk$ 	.K e#||55ai@""D)#'  ,,/5@@+N..1IIL&&-!	." 	  ,,.AB88;) 	#K1<<kJF**-DIILOOT"	# 	$$h/$'HHK!
0 	4K ,,/5@@+N..1IIL%%,,d3#	4$ 	!!--t/H/HI #-":":"<<R


OT%>%>?


&(@(@A


%t'D'DE 	))&..9$$V^^4&&y1	 ++D,?,?@DI "&!3!3!B!B" 	++.#% #0  xx{3 	K 2<<kJF**-DKK	 	,,d377>>,- 3 5D 0 2D g&;&;&/&6&6&)&)+
 	%%dmm4..3++R0--q1++Q/..2++D1##%6%)%H%H	J##%5%)%G%G	I##%8%)%J%J	L##%9%)%K%K	M##\%)%C%C	E--t/B/BC44c6F6F6S6S 8;7J7J7TUWX7Y6Z69nn6I6I		K
 	##_%)%F%F	H$$i1N1NO  (()T5M5MN'')-)E)E	G /FFI""O$($D$D	F 		4 	"00#s;$-- 1$00#s;$-- 1$00#s; 	  "O	>#&BJJx fmmR0",,V-?-?@DM",,V__=DMX ;; z  	DI	R ~~ 	466DQDIAt2233		4s^   AAE &AG6 -&AH A<AH( EBAG3G6AHHAHHAH%H$AH%H(AJH<>AJ J AJc                    | j                   j                         }|j                         }||j                  |d      }||k(  ri|j	                  |      }| j                   j                  |ddd       | j                   j                  |d d       | j                   j                  |       n|j                  |      }||t        y )NrS   T      ?Fr   cellstart_editing)
rZ   	get_modelget_iter_first	get_valueget_pathscroll_to_path
set_cursoritem_activated	iter_nextr  )r.   r   modeliterrs   r   s         r   display_properties_dialog_forz!GUI.display_properties_dialog_for%  s    ##--0##&??D!,Du}~~t,##22D$SI##..T>C / E##22D9??D)D  < r   c                    t        j                         }|j                  d       | j                  j	                  |d       | j                  j                  |dd       t               | _        | j                  j                  d| j                         t        j                         }|j                  | j                         | j                  j	                  |d       | j                  j                          y )NFr   expandTsearch)r   r  set_drawr_   insertchild_set_propertyToolbarSearchEntryr  r   on_search_entry_searchToolItemr   r   )r.   	separator	tool_items      r   r  z"GUI.setup_toolbar_for_search_entry6  s    )),	E"Y+''HdC.1!!8T-H-HILLO	t(()Y+ r   c                 2    || _         | j                          y r'   )r  rA  )r.   UNUSEDtexts      r   rq  zGUI.on_search_entry_searchE  s    #' r   c                 N    |j                         | _        | j                          y r'   )get_namer  rA  )r.   rv  selected_actions      r   r   zGUI.on_filter_criterion_changedI  s    #2#;#;#> r   c                    |j                         }|j                  |      }|j                  |d      }|j                  |d      }| j                          	 | j                  j                  || j                  | j                  | j                         y # t        j                  $ rz}|j                  \  }}| j                          t        ||| j                         |t        j                  k(  r'd | _	        | j                          | j!                          Y d }~y d }~wt"        $ r- | j                          | j$                  j'                          Y y w xY w)NrS   r   r"   
encryptionparent)r_  get_iterra  desensitise_main_window_widgetsr>  r   r   r   rU   r    IPPErrorrC  sensitise_main_window_widgetsshow_IPP_ErrorIPP_SERVICE_UNAVAILABLErE  rA  r  r   update)	r.   iconviewr   rg  rh  rs   objectrW  ms	            r   r0  z!GUI.dests_iconview_item_activatedM  s   ""%~~t$a($*,,/	##T0C0C040D0D,0,?,? $ A }} 	VVFQ..1Aq$"5"56D000 	!!$!!$ 	..1 LL"	s   =B E(A0D6EEc                 $    | j                          y r'   r  r.   r1   s     r   r?  zGUI.on_properties_dialog_closedi      **-r   c                    d| _         | j                  j                         }|r|j                         }nd}|sy |j	                         }d}d}d}d}d}	|j                         }
|D ]g  }|
j                  |      }|
j                  |d      }|
j                  |d      }|j                  rd}|j                  rd}nd}|j                  rd}fd}	i t        |      }| j                  j                  d      j                  |dk(         | j                  j                  d      j                  |dk(         | j                  j                  d      j                  |dk(  xr |        t        j                          j#                         }|dk7  s|| j$                  k(  rd}nd}| j                  j                  d	      j                  |       | j                  j                  d
      }|j                  |dkD  xr |        |j'                         D ]9  }t)        |t*        j,                        s|j/                  |dkD  xr |xr |       ; |j1                  |xs |        | j                  j                  d      }|j                  |dkD  xr |        |j'                         D ]9  }t)        |t*        j,                        s|j/                  |dkD  xr |xr |	       ; |j1                  |xs |	        | j                  j                  d      j                  |dkD  xr |        | j                  j                  d      j                  |dkD         d| _         y )NTFr   rS   /edit-printerr   /duplicate-printer/rename-printer/set-default-printer/enable-printer/share-printer/delete-printer/create-class)r   r   get_permissionget_allowedget_selected_itemsr_  r  ra  
discoveredenabled	is_sharedrF  r   r   r   userdefaultUserDefaultPrintergetdefault_printerget_proxies
isinstancer   CheckMenuItemset_inconsistent
set_active)r.   r  
permissioncan_editpathsany_disabledany_enabledany_discovered
any_sharedany_unsharedrg  r   rh  r  rs   nuserdefset_default_sensitivityrL  widgets                       r   r1  z$GUI.dests_iconview_selection_changedl  s,    $''669
!--0HH++.
""% 	$D>>4(D__dA.F??D!,D  !%~~"#!
#	$ K""O4BBAFK""$89GGaP""$56DDF)>)	+ 00377:F_!5!5!=&+#&*#""$:;II#	% ++->?a!e:N(:;((+ 	QF63#4#45''Q)O;)O<P	Q 	>=-=>++-=>a!e:N(:;((+ 	PF63#4#45''Q)N:)N,O	P 	>=-=>""$56DDE(.(	* 	""O4BBAEJ %r   c           	      F    | j                   j                  d d d d d dd       y Nr   )r  popup_for_device)r.   r  s     r   r3  zGUI.dests_iconview_popup_menu  s%    !!22D$d,0!Q	8r   c           	         |j                   dkD  r|j                  t        |j                        t        |j                              }|j                         }||j                          nm||vri|j                          |j                  |       |j                         }|D ]   }t        |      t        j                  k(  s  n |j                  |d       | j                  j                  d d d d d |j                   |j                         yNr   F)buttonget_path_at_posintxyr  unselect_allselect_path	get_cellstyper   CellRendererTextrd  r  r  time)r.   r  event
click_pathr  cellsr]  s          r   r2  z%GUI.dests_iconview_button_press_event  s    <<!!113=36=BJ//2E!%%(5(%%($$j1 **-! DT{c&:&:: ##Zu=%%66dD$-15<<Mr   c                    t        j                         }|j                  t        j                  k(  s:|j                  t        j
                  k(  s|j                  t        j                  k(  r@|j                         |z  dk(  r*| j                  j                  d      j                          y|j                  t        j                  k(  r@|j                         |z  dk(  r*| j                  j                  d      j                          yy)Nr   r  Tr  F)r    accelerator_get_default_mod_maskkeyvalr   KEY_BackSpace
KEY_DeleteKEY_KP_Delete	get_stater   r   activateKEY_F2)r.   r  r  	modifierss       r   r/  z"GUI.dests_iconview_key_press_event  s    88;	\\S...\\S^^+\\S...oo)+1OO&&(9:CCF\\SZZ'oo)+1OO&&(9:CCFr   c                    |dk(  rs|j                         }|j                         }d}|D ])  }	||j                  |j                  |	      d      dz   z  }+ t	        |      dkD  r|j                  dd|       y y t                y )Nr   r   rS   
r      )r_  r  ra  r  rF  r   r   )
r.   r  contextselection_datainfo	timestamprg  r  selected_printer_namesr   s
             r   r:  z GUI.dests_iconview_drag_data_get  s    19&&)E//2E%'" F&OOU^^T%:A>EF&F *+a/""GQ0FG 0  r   c                     | j                   j                         }t        |j                               D ]4  }|j	                  |      }|j                  |j                  dd             6 y )Nr   r   )rZ   get_accessiblerangeget_n_accessible_childrenref_accessible_childset_nameget_text)r.   iv_acciaccs       r   #dests_iconview_set_accessible_namesz'GUI.dests_iconview_set_accessible_names  sZ    $$33688;< 	0A--q1CLL#,,2./	0r   c                 N   	 t        | j                  | j                  | j                        | _        | j                  j                  d| j                         y # t        j                  t        j                  f$ r Y y t        $ r | j                  j                          Y y w xY w)Nr|  zproblems-clicked)r   r   r   rU   serverSettingsr   on_problems_button_clickedr    r  rB  r  r   r  )r.   menuitems     r   r   zGUI.on_server_settings_activate  s    
	#"0t7J7J=A=Q=Q9=9L9L#ND '');)-)H)HJt~~. 	 	#LL"	#s   AA #B$?"B$#B$c                    t        | j                        }t               }| j                  j	                  t        d      |z         |rt        d      |z  }nt        d      }| j                  j                  | j                  |       | j                  | j                  fD ]  }|j                  |        dD ].  }| j                  j                  |      }|j                  |       0 |rc| j                  r| j                  j                          t        j                   d| j"                  | j$                        | _        | j                  j'                  d| j(                         | j                  j'                  d| j*                         | j                  j'                  d	| j,                         | j                  j'                  d
| j.                         | j                  j'                  d| j0                         t3        j4                  | j                  j6                         | j8                  j;                  | j                         |r\| j                  j=                         r&| j>                  jA                  | jB                         y | j>                  jA                  d        y | j>                  jA                  d        y )NzPrinters - %szConnected to %szNot connected)/server-settingsr   r   F)monitor_jobsr"   r}  r   zprinter-eventzprinter-removedzcups-connection-errorzcups-connection-recovered)"boolr    r#   rU   	set_titler   r^   pushr  r   r  r   r   r   r   cleanupMonitorr   r   r   printer_addedprinter_eventprinter_removedcups_connection_errorcups_connection_recoveredr   idle_addrefreshr>  set_monitor_using_polkitr   set_permissionr   )r.   	connectedr"   
status_msgr  rR  rL  s          r   rE  zGUI.setConnected   s&   O	#&%%a&84&?@,-4J?+J 6 6
C{{'') 	,F  +	,* 	-K __//=F  ),		- ||$$'"??151D1D7;7K7KMDL LL  /43E3EFLL  /43E3EFLL  "3T5I5IJLL  "9"&"<"<>LL  "="&"@"@BMM4<<//0**DLL9yy&&)""1143G3GH""1148 --t4r   c                    | j                   j                         }|r|j                         }nd}| j                  j	                  |       | j
                  j	                  |       dD ].  }| j                  j                  |      }|j	                  |       0 |r| j                  | j                         y dD ].  }| j                  j                  |      }|j	                  d       0 y )NT)r   r   )r  r  r  r  r  r  r  F)
r   r  r  r   r   r[   r   r   r1  rZ   )r.   r  rv  r  r  rL  rM  s          r   r   zGUI.polkit_permission_changed0  s    ''669
!--0HH!!8,--x8% 	)F//,,f5Cx(	)
 1143F3FG- * oo00&9!!5)*r   c                     | j                   j                  d        t        | j                         }|j                          |S r'   )r   discardlistsort)r.   known_serverss     r   
getServerszGUI.getServersK  s4    T"T\\*r   c                    0 t               0 j                  j                         } j                  j                         }|D ]6  }|j	                  |      }|j                  |d      }0j                  |       8  j                  rd} j                  j                  |        j                  j                  t        d             	 t        j                   j                         _         j                  j                          _         j                  j+                           j                  j                  d       |rd  _        ni  _        d  _         j                  j-                         D ].  \  }}
 j.                  j                  |
j1                                0 t3        j4                         j7                         }g }g }g }g } j8                  j;                  d      }|j=                  d         j                  }t?         j@                        dkD  r_i }tC        jD                   j@                  tB        jF                        } jH                  dk(  r0|jK                         D ]  }|jM                  |      ||   ||<    n jH                  d	k(  r=|j-                         D ])  \  }}
|jM                  |
jN                        "||   ||<   + n jH                  d
k(  r=|j-                         D ])  \  }}
|jM                  |
jP                        "||   ||<   + nV jH                  dk(  r=|j-                         D ])  \  }}
|jM                  |
jR                        "||   ||<   + n
tU                |} jV                  jY                         s.i }|j-                         D ]  \  }}
|
jZ                  r|
||<    |}t]        |j-                               D ]p  \  }}
|
j^                  r0|
j`                  r|jc                  |       0|jc                  |       B|
j`                  r|jc                  |       `|jc                  |       r |je                          |je                          |je                          |je                           jf                  ji                          t        d      dft        d      dft        d      dft        d      dft        d      dft        d      dft        d      dft        d      dfd}tj        jl                  jo                         }||||fD ]U  }|s|D ]I  }d}||   }|jZ                  r|j`                  rd}nd}n|j`                  rd}ntp        jr                  ju                  |jv                        }|jx                  dv r!|jz                  j}                  d      rd}nd}n|jx                  dk(  rd}np|jx                  dk(  rd }n^|jx                  d!v rd"}nM|jv                  j}                  d#      rd"}n/|jv                  j}                  d$      rd"}n|jx                  d%k(  rd}||   \  }}tk        j~                  tj        j                  j                        \  }}}	 |j                  ||d      }d }!d }"| j                  k(  rd)}!n||k(  rd*}!|"s|j                  }#|#j7                  d+g       }$d }%|$D ]>  }&|&d,k(  r n7|&d-k(  rd.}"t        j                  |j                  |&      }'|%|'}%7|'|%kD  s=|'}%@ |%r|%j                         }(|%j                  |(   }"|"s|j                  sd.}"|j                  rr|j                         })|)j                  d       |j                  |)dd|j                         |j                         ddd/d/t        j                  j                  d0       |)}|!rtk        j~                  tj        j                  j                        \  }}}	 |j                  |!|dz  d      }*|j                         })|*j                  |)dd|*j                         |*j                         ddd/d/t        j                  j                  d1       |)}|"rtk        j~                  tj        j                  j                        \  }}}	 |j                  |"|dz  d      }+|j                         })|+j                  |)|)j                         dz  |)j                         dz  |+j                         |+j                         |)j                         dz  |)j                         dz  d/d/t        j                  j                  d1       |)} jf                  jc                  ||||g3       L X  j                  j                         }0 fd4},|j                  |,d         j                  }- j                  r3 j@                  sÉ jf                  j                         s j                  }-n j                  }- j                  dk(  xs  j                  d   d5k7  }.d }/|.r( j                  j                         }.|.st        d6      }/nt        d7      }/ j                  j                  |.        j                  j                  |/        j                  j                  |-        j                          y # t        j                   $ rT}|j"                  \  }}	t%        ||	 j&                         i  _        d  _        |t        j(                  k(  rd}Y d }~
(d }~ww xY w# t        j                  $ r d }t        d&fD ]A  } 	 t        j                  j                  | |d'      } n# t        j                  $ r Y ?w xY w |h	 |j                  d|d      }nS#  t        j                  j                  t        j                  j                  dd(||      }|j                  d       Y nxY wY nw xY w# t        j                  $ r t        d2|!z         Y w xY w# t        j                  $ r t        d2|"z         Y w xY w)8NrS   Fzobtaining queue detailsTr  )labelr   r   r   r   r   zNetwork printer (discovered)zi-network-printerzNetwork class (discovered)Printerrp   FaxClasszNetwork printerzNetwork print share)discovered-printerdiscovered-classlocal-printer	local-faxlocal-classipp-printersmb-printernetwork-printerr  r  r  r	  )ippippsr   r
  smbr  hpfaxr  )socketlpddnssdr  zhp:/net/zhpfax:/net/implicitclassr   z.pngr  zemblem-defaultzemblem-favoritezprinter-state-reasonsnonepausedzmedia-playback-pauseg      ?      zNo %s icon available)rowc                 j    | j                  |d      }|v rj                  j                  |       y y NrS   ra  rZ   r  )rg  r   rh  rv  rs   selected_printersr.   s        r   maybe_selectz&GUI.populateList.<locals>.maybe_select\  s5    ??D!,D((##//6 )r   r   zService framework not availablez%Cannot start service on remote server)jr   rZ   r  r_  r  ra  r   r    _set_prompt_allowed_begin_operationr   cupshelpersgetPrintersr   
getDefaultr  r  rC  r  rU   r  _end_operationitemsr   r!   r  r  r  r   r   set_propertiesrF  r  recompileIr  keysrl  r  locationmake_and_modelr   rb   
get_activer  r  remoteis_classr
  r  r'  clearr   	IconThemeget_defaulturllibparseurlparse
device_urischemenetloc
startswithicon_size_lookupIconSizeDIALOG	load_iconr   r   iconpathr   r%  new_from_filer   
ColorspaceRGBfillother_attributesstatereasonStateReasonrs   	get_level
LEVEL_ICONr  	rejectingcopy	composite	get_width
get_height
InterpTypeBILINEAR
debugprintforeachDESTS_PAGE_DESTSr`  DESTS_PAGE_NO_PRINTERSDESTS_PAGE_NO_SERVICEr   r"  r8   r\   r   set_tooltip_textrY   set_current_pager  )1r.   prompt_allowedr  rg  r   rh  rs   kill_connectionrW  r  rp   r  local_printerslocal_classesremote_printersremote_classesdelete_actionprinters_setprinters_subsetpatternPRINTER_TYPEthemer   r  r  parsedtipiconresultwhpixbufp
def_emblememblemattrsreasonsworst_reasonreasonrlevelrI  default_emblemother_emblemr  pager8   tooltip_textr  s1   `                                               @r   rA  zGUI.populateListQ  s   E##669##--0 	)D>>4(D??D!,D!!4(	)
 99#OII))>:II&&*C(DE+ + 7 7		 B (,yy';';'>$ II$$'II))40 	DM#'D !]]002 	2MD'LLW..01	2 00377:224EF$$d$3}} (()A- Ojj$":":BDDAG''=8(--0 CD~~t,80<T0B-C ))-AA%1%7%7%: CMD'~~w||4@0<T0B-C ))->>%1%7%7%: CMD'~~w'7'78D0<T0B-C ))-BB%1%7%7%: CMD'~~w'='=>J0<T0B-C "$*L,,77: O!-!3!3!6 4g)),3OD)4 +L!,"4"4"67 	2MD'~~##^%:%:4%@%,,T2##]%9%9$%?$++D1	2 	 	   >?13   <=13  	l')  h')  j')   1213   5613   1213-2 )),'&(') H	GH X  CG&%d+$$13__(D#\\22F4E4EFF}}7!==33K@#2D#0D%/,'1**DD0**55jA0**55mD0/93*40d!$!5!5s||7J7J!KA,"__dAq9F* "
4///!1JW_!2J"33E#ii)@"EG#'L") -!V+!!X-%;F$'33V[[&I'/+,L-+,L- $ , 6 6 9!-!8!8!?fnn3F##!;;>DIIqM$$dAq&,&6&6&8&:K:K:M&'C&/&:&:&C&CSJ "F%(%9%93<<;N;N%ONVQI).*ac1)M%{{~&00$12@2J2J2M2@2K2K2N23Q25s2;2F2F2O2O257 "& %(%9%93<<;N;N%ONVQE',!Q'G%{{~$..040AA0E040BQ0F0<0F0F0I0<0G0G0J040AA0E040BQ0F03S090D0D0M0M03	5 "& $$664*E$FGCGH	GV ##--0	7 	|T* $$99,,MM00322--D,,; 7,,Q/36 L --77:	 #$%F#GL !HI  ..	:  11<@,,d3003g == +Aq!T%8%89 "'+$444&*O+d {{ ,!F&1 !!%.%5%5%C%CDEtFM &NF!#{{ ! !! ~,%*__iA%FF,%.%5%5%9%99;O;O;S;S591a&DF"KKO%,V  ;; I"$:Z$GHI&  ;; E"$:V$CDEs   
Ak 
l=A7p-B;p7l:&A	l55l:= p$npnpnp!n54p5Ap	pp!p43p47!qqc                 v    | j                   j                  t        |j                         xs d      dkD         y )Nr   r   )rg   r   rF  get_active_textr.   r  s     r   on_connect_servername_changedz!GUI.on_connect_servername_changed|  s,    %%sF,B,B,E,K'Lq'PQr   c                 x   | j                         }| j                  j                  xr$ | j                  j                  j                         xs t	        j                         }t        j                  t              }| j                  j                  |       | j                  j                  d       |D ]  }| j                  j                  |        | j                  j                          | j                  j                         j                  |       | j                  j!                  t	        j"                         t        j$                  k(         | j                  j                         j'                  d       | j                  j)                          | j*                  j-                  | j.                         | j*                  j1                         }| j*                  j3                          |t
        j4                  j6                  k7  ry | j                  j9                         r$t	        j:                  t        j$                         n#t	        j:                  t        j<                         t	        j"                         | _        | j                  j                         jA                         }| jB                  jE                  tG        d      |z         | jH                  j-                  | j.                         | jH                  j                          tK        jL                  d| jN                         || _(        t	        jR                  | jP                         t	        jT                  d       t	        jV                         | _,        t[        j\                  | j^                  | j.                  f      | _0        y )Nr   Tz<i>Opening connection to %s</i>(   r   )1r  r>  rp   r!   r    r   r#  r&  rf   r(  set_entry_text_columnappend_textr   	get_childset_textre   r  r   HTTP_ENCRYPT_ALWAYSset_activates_default
grab_focusrd   r   rU   runr   ResponseTypeOKr-  setEncryptionHTTP_ENCRYPT_IF_REQUESTEDr   r  ri   
set_markupr   rh   r   timeout_addupdate_connecting_pbarr   	setServersetUserr   r   _threadstart_new_threadr   connect_thread)r.   r  r   current_serverstoreserverresponse
servernames           r   r   zGUI.on_connect_activate  s   //#,,44 A,,44>>@.!^^- 	 s#$$U+00!4 	3F**62	3!$$&//@$$d&8&8&:&*&>&>'? 	@ 	$$&<<dC%%(,,d.A.AB%%))+!s''***'')t778t==>#114''113<<>
%%a(I&J)3'4 	5//0C0CD""$"d99:(t**+R LLN%66t||7;7J7J6LNr   c                     d}t        j                          	 | j                  j                  d      sd}n| j                  j                          t        j                          |S # t        j                          w xY w)NTvisibleF)r   threads_enterrh   get_propertyrj   pulsethreads_leave)r.   rets     r   r  zGUI.update_connecting_pbar  sd    	!((55yA##)), 
  s   8A& &A<c                 &    | j                  |       y)NT)on_cancel_connect_clickedr.   r  r  s      r   r   zGUI.on_connectingdialog_delete  s    &&/r   c                 F    d| _         | j                  j                          y)z
        Stop connection to new server
        (Doesn't really stop but sets flag for the connecting thread to
        ignore the connection)
        N)r  rh   r   rx  s     r   r  zGUI.on_cancel_connect_clicked  s     #""$r   c                    t        j                  | j                         | j                  d   dk(  r-	 t        j                  | j                  | j
                        }~	 t        j                  || j                  | j
                        }| j                  t        j                         k7  ryt        j                          	 | j                  j!                          | _         | j#                          | j%                          t        j(                          y# t        $ r t        j                  d       Y  t                Y xY w# t        $ r}| j                  t        j                         k7  rY d}~yt        j                          	 | j                  j!                          d| _         | j#                          | j%                          t'        d||       t        j(                          n# t        j(                          w xY wY d}~yd}~wt         j*                  $ r}|j,                  \  }}| j                  t        j                         k7  rY d}~yt        j                          	 | j                  j!                          d| _         | j#                          | j%                          t'        |||       t        j(                          n# t        j(                          w xY wY d}~yd}~w t                Y uxY w# t         j.                  $ rL}|j,                  \  }d| _         | j#                          | j%                          t1        ||       Y d}~Zd}~w t                Y lxY w)zV
        Open a connection to a new server. Is executed in a separate thread!
        r   r   )r"   r}  r   N)r    r  r   r   r   r   r  r  r   r  r  r  	get_identr   r  rh   r   rE  rA  r  r  r  rC  rB  rD  )r.   r~  
connectionrX  rW  s        r   r   zGUI.connect  s    	T&&'q!S(%!__43F3F9=9M9MO

 	!!,,V262E2E8<8L8LNJ> '"3"3"55v	!!!&&("DI 	o   -,%!$  	""g&7&7&996$%%**, 	!!#!!#tQ/!!#!!#}} 	VVFQ""g&7&7&996$%%**, 	!!#!!#q!V,!!#!!#	!  ~~ 	'66DQDIAv&&	! s   ,D  ,E	 AL E9E		L!H8HAG0H0HHL$0K/K/.AK<K/K''K//LM0AMM0c                     d}|dk  r2	 t        j                  d       | j                  j                          yyy# t        $ r |dz  }Y nw xY w|dk  rM)z0Reconnect to CUPS after the server has reloaded.r      N)r  sleepr    _connectr  )r.   attempts     r   	reconnectzGUI.reconnect  s]     l

1		""%	 
   1 ls   /; AAc                 8    | j                   j                          y)zClose Connect dialogN)ConnectWindowr   rx  s     r   on_btnCancelConnect_clickedzGUI.on_btnCancelConnect_clicked(  s    !r   c                     | j                   5	 t        j                  | j                        | _         | j                          | j                          y # t        $ r Y ,w xY wr'   )r    r  r   rU   r  rE  rA  r.   r  s     r   r  zGUI.on_btnRefresh_clicked.  sW    99$//0C0CD	    s   $A 	AAc                 \   t        j                         }|| j                  k(  r!|j                          | j	                          y t        j
                  | j                  | j                  |t        d      | j                  t        d      t        d      t        d      t        d      	       y )NzSet Default Printerz;Do you want to set this as the system-wide default printer?z'Set as the _system-wide default printerz"_Clear my personal default settingz#Set as my _personal default printer)	r  r  r  r0  rA  UserDefaultPromptset_default_printerr   rU   )r.   rs   r  s      r   "set_system_or_user_default_printerz&GUI.set_system_or_user_default_printer:  s     0034'''MM %%t'?'?'+'8'8'+'()>'?'+':':'( *L (M'( *; (<'()M'N'()N'O
	Qr   c                 R   | j                   |   }d}| j                  j                  t        d             	 |j	                         }| j                  j                          |r| j                          	 | j                          y # t        j
                  $ rH}|j                  \  }t        || j                         | j                  j                          Y d }~y d }~wt        j                  $ rJ}|j                  \  }}t        ||| j                         | j                  j                          Y d }~y d }~ww xY w# t        j
                  $ rU}|j                  \  }d | _        | j                          | j                          t        || j                         Y d }~y d }~ww xY w)NFzsetting default printer)r   r    r   r   setAsDefaultrB  rC  rD  rU   r$  r  r  r  rA  rE  )r.   rs   rp   reloadrW  rX  msgs          r   r  zGUI.set_default_printerO  sG   --%		""A&?$@A	)),F 			  # NN	4' ~~ 	66DQQ 3 34II$$'}} 	vvHQ1c4#6#67II$$'		 ~~ 	466DQDIAt2233	4s=   B 4D> D;>CD;1A D66D;>F&AF!!F&c                    | j                   rt        j                  | j                          d | _         | j                  r| j                  j	                          t        | j                        dkD  r6| j                  d   j                          t        | j                        dkD  r6| j                  j                          | j                  j                          t        j                          | `| `y r  )r   r   source_remover   r  rF  r  on_delete_eventr>  destroyr  r   	main_quitr'  r   r  s      r   r   zGUI.on_quit_activater  s    "" 7 78"&<<LL  #4??#a'OOA..1 4??#a' 	""%""%MMr   c                     | j                   |   j                  d      }t        |      dkD  r+t        t	        d      t	        d      | j
                         yy)	Nr   limitr   zCannot RenamezThere are queued jobs.r~  FT)r   
jobsQueuedrF  show_error_dialogr   rU   )r.   rs   jobss      r   is_rename_possiblezGUI.is_rename_possible  sR    }}T"--Q-7:>q1 !9:&*&9&9; r   c           
         | j                   |   j                  d      }t        |      dkD  rt        j                  | j
                  ddt        j                  j                  t        j                  j                  t        d            }|j                  t        d             |j                         }|j                          |t        j                  j                  k(  ryy)	z
        Renaming deletes job history. So if we have some completed jobs,
        inform the user and let him confirm the renaming.
        r   r  r   TzRenaming will lose historyr~  modaldestroy_with_parentmessage_typebuttonsrw  z;Completed jobs will no longer be available for re-printing.F)r   jobsPreservedrF  r   MessageDialogrU   MessageTypeWARNINGButtonsType	OK_CANCELr   format_secondary_textr  r  r  CANCEL)r.   rs   preserved_jobsdialogre  s        r   rename_confirmed_by_userzGUI.rename_confirmed_by_user  s    
 t,:::C!#&&t/B/B.258__5L5L030I0I-./K-L	NF ((! -L +M NZZ\FNN))000r   c                 ,   | j                   j                         }|y |\  }}}|y t        |      t        j                  k7  r\| j                   j                         }|D ]   }t        |      t        j                  k(  s  n t        |      t        j                  k7  ry | j                   j                         }|j                  |      }|j                  |d      }	| j                  |	      sy | j                  |	      sy |j                  dd       g }
|
j                  |j                  d| j                               |
j                  |j                  d| j                               |
| _        g | _        | j                   j%                  ||d       y )NrS   editableTzediting-startedzediting-canceled)rZ   
get_cursorr  r   r  r  r_  r  ra  r  r  set_propertyr
  r   printer_name_edit_startprinter_name_edit_cancelrename_sigidsrename_entry_sigidsrd  )r.   rv  tupleresr   r]  r  rg  rh  rs   idss              r   r   zGUI.on_rename_activate  sm   ##..1=!dD<;#...''114E ;#"6"66 T{c222##--0~~t$a(&&-,,d3:t,

DLL"3!%!=!=? 	@

DLL"4!%!>!>@ 	A #% &&dD9r   c                    t        dt        |      dt        |             t        |t        j                        r|j                  d| j                        }| j                  j                  ||f       | j                  j                         }|j                  |      }|j                  |d      }|j                  d| j                  ||      }| j                  j                  ||f       y y )Nzediting-started with cell=z, editable=r   rS   zediting-done)rO  reprr  r   Entryr   printer_name_editingr  r
  rZ   r_  r  ra  printer_name_editing_done)r.   r]  r  r   idrg  rh  rs   s           r   r  zGUI.printer_name_edit_start  s    4[8_& 	' h		*!!)T-F-FGB$$++h^<''114E>>4(D??D!,D!!."&"@"@"&.B $$++h^< +r   c                     |j                         x}}|j                  dd      }|j                  dd      }|j                  dd      }||k7  r#t        d|d   z         |j                  |       y y )Nr   r   # zremoved disallowed character %sr   )r  replacerO  r  )r.   entrynewnameorignames       r   r  zGUI.printer_name_editing  sn    "^^--(//#r*//#r*//#r*w9HRLHINN7# r   c                 F   t        t        |             |j                         }t        d|d|       	 | j                  ||       |j	                  d       |j                  dd       | j                  D ]  }|j                  |        | j                  D ]  \  }}|j                  |        y # |j	                  d       |j                  dd       | j                  D ]  }|j                  |        | j                  D ]  \  }}|j                  |        w xY w)Nzedited: z -> Fr  )	rO  r  r  rename_printerstop_editingr  r  
disconnectr  )r.   r  r]  rs   r  r  r1   s          r   r  zGUI.printer_name_editing_done  s   D$K ..#$89	$w/u%z51(( %$%33 $R#$	 u%z51(( %$%33 $R#$s   B4 4A,D c                    t        dt        |      z         |j                  d       |j                  dd       | j                  D ]  }|j                  |        | j                  D ]  \  }}|j                  |        y )Nzediting-canceled (%s)Tr  F)rO  r  r  r  r  r  r  )r.   r]  r  r1   s       r   r  zGUI.printer_name_edit_cancel  sx    +dDk9:4 :u-$$ 	!BOOR 	!// 	 GCNNB	 r   c                     |j                         j                         k(  ry 	  j                  j                  | j                   j                   j
                          j                  |      sy  j                  j                  t        d              j                  j                  j                   }|sx	  j                  j                  j#                  d        j                  |      s@ j                  j                  j#                  d        j                  j%                          y 	  j'                        r j(                  j+                          |sW j                  j                  rA	 | j                  j                  _         j                  j                  j#                  d        j                  j%                           j                          y  j                  j                  s+ j                  j%                           j                          y |s&	  j                  j                  j#                  d        j2                  |k(  r9d}	  j                  j                  j5                         }|r j7                          	  j                  j9                  |        j                  j%                           fd}	 j                           j:                  j=                         }
|
j?                  |	d        y # t        $ r Y t        j                  $ r@}|j                  \  }}t        || j
                          j                          Y d }~y d }~ww xY w# t        j                  $ rJ}|j                  \  }}t        || j
                          j                  j%                          Y d }~y d }~ww xY w# t        j.                  $ r/}|j                  \  }t1        | j
                         Y d }~Sd }~wt        j                  $ r1}|j                  \  }}t        || j
                         Y d }~d }~ww xY w# t        j.                  $ r/}|j                  \  }t1        | j
                         Y d }~Fd }~wt        j                  $ r1}|j                  \  }}t        || j
                         Y d }~d }~ww xY w# t        j.                  $ r/}|j                  \  }t1        | j
                         Y d }~d }~wt        j                  $ r1}|j                  \  }}t        || j
                         Y d }~d }~ww xY w# t        j.                  $ r/}|j                  \  }t1        | j
                         Y d }~d }~wt        j                  $ r1}|j                  \  }}t        || j
                         Y d }~2d }~ww xY w)Nr|  zrenaming printerFTc                 l    | j                  |d      }|k(  rj                  j                  |       y y r  r  )rg  r   rh  rv  rs   new_namer.   s        r   select_new_printerz.GUI.rename_printer.<locals>.select_new_printera  s4    ??D!,Dx##//6  r   ) lowerr>  loadr   r   rU   r  r    r  rC  r  rA  r  r   r   rp   rH  setAcceptingr$  duplicate_printerr   r  rs   rB  rD  r  r  r  deletePrinterrZ   r_  rP  )r.   old_namer  rW  r  rH  r  rX  r  r  rg  s   ` `        r   r  zGUI.rename_printer  s   >>x~~//	##X*.*=*=040D0D,0,?,? $ A &&1		""A&8$9:&&..88	
""**77?..9&&..;;TBII,,/ : !!8,LL" !3!3!;!;A6>D&&..3&&..;;TB II$$' !!))II$$'  =""**77> 8+F=++33@@C !	9II##X. 			  #	7 	##--0)40O  	}} 	VVFQAq$"5"56 		$ == 66C3(;(;<		((+	 ~~ =66DQ#Q(;(;<<}} A vvHQ"AsD,?,?@@A" >> 9vvD$7$788== =66C3(;(;<<= >> 9vvD$7$788== =66C3(;(;<<= ~~ 	566DQQ 3 344}} 	9vvHQAsD$7$788	9s   =L <A5M- 7A O &%Q $S U" 	M*M**6M%%M*-O
 A OO
Q $P

Q &QQS'$RS'&SSU.$TU.&UU"W&5$VW&5&W!!W&c                     || j                   j                  _        g | j                   j                  _        | j                   j	                  | j                   j                  d| j
                        }|S )NT)saveallr~  )r>  rp   rs   class_memberssave_printerrU   )r.   r  r  s      r   r  zGUI.duplicate_printerk  si    *2""'35""0   --d.@.@.H.H6:595H5H . J 
r   c                    | j                   }|j                         }| j                   j                         }|j                  |d         }|j	                  |d      }| j
                  j                  |       | j                  j                  | j                         | j                  j                         }| j                  j                          |t        j                  j                  k(  ry 	 | j                  j!                  || j"                  | j$                  | j                         | j3                  | j
                  j5                                | j6                  j9                          y # t&        $ r Y Ot(        j*                  $ r@}|j,                  \  }}	t/        ||	| j                         | j1                          Y d }~y d }~ww xY w)Nr   rS   r|  )rZ   r  r_  r  ra  rl   r  rk   r   rU   r  r   r   r  r  r>  r  r   r   r  r    r  rC  r  rA  r  r  r   r  )
r.   rv  r  r  rg  rh  rs   re  rW  r  s
             r   r   zGUI.on_duplicate_activateu  sv   &&++.##--0~~uQx(a(&&t,--t/B/BC$$((*  "S%%,,,	##T*.*=*=040D0D,0,?,? $ A 	 5 5 > > AB  	}} 	VVFQAq$"5"56 		s   0=E1 1	G<G6G		Gc                 2   |j                         }|}|j                  dd      }|j                  dd      }|j                  dd      }||k7  r|j                  |       | j                  j	                  t        j                  | j                  |             y )Nr   r   r  r  )r  r  r  rm   r   r  checkNPNamer   )r.   r  rw  new_texts       r   on_entDuplicateName_changedzGUI.on_entDuplicateName_changed  s     ##C,##C,##C,>OOH%))""4==(;	=r   c                 $    | j                          y r'   )delete_selected_printer_queuesr.   rv  s     r   r   zGUI.on_delete_activate  s    ++.r   c                    | j                   j                         }| j                   j                         }g }t        |      }|dk(  rs|j	                  |d         }|j                  |d      }|j                  |d      }|j                  rt        d      |z  }nt        d      |z  }|j                  |       nFt        d      }|D ]6  }	|j	                  |	      }|j                  |d      }|j                  |       8 t        j                  | j                  ddt        j                  j                  t        j                  j                  |      }
|
j!                  t        d	      t        j"                  j$                  t        d
      t        j"                  j&                         |
j)                  t        j"                  j$                         |
j+                         }|
j-                          |t        j"                  j&                  k7  ry 	 |D ]^  }| j.                  j1                  t        d      |z         | j.                  j3                  |       | j.                  j5                          ` 	 | j<                  j?                          y # t.        j6                  $ rJ}|j8                  \  }}| j.                  j5                          t;        ||| j                         Y d }~sd }~ww xY w)Nr   r   rS   zReally delete class '%s'?zReally delete printer '%s'?z$Really delete selected destinations?Tr  _Cancel_Deletezdeleting printer %s) rZ   r  r_  rF  r  ra  r/  r   r
  r   r  rU   r  r  r  NONEadd_buttonsr  REJECTACCEPTset_default_responser  r  r    r   r  r$  r  rC  r  r   r  )r.   r  rg  	to_deleter  itrr1   rs   message_formatr   r  re  rW  r  s                 r   r  z"GUI.delete_selected_printer_queues  sU   ##669##--0	K6..%(+C//3*C??C+D||"#$?"@4"G"#$A"BT"Id#EFN (nnd+Q/  $'( ""$*=*=)-4030G0G+.??+?+?(6	8
 	AiL#*:*:*A*AiL#*:*:*A*A	C##S%5%5%<%<=S%%,,,	8! ,		**A.C,Dt,KL		''.		((+, 	 }} 	8vvHQII$$'1c4#6#677	8s   A#J K/%A K**K/c                    | j                   ry |j                         }| j                  }|j                         }|j	                         }g }|D ]6  }|j                  |      }|j                  |d      }	|j                  |	       8 |D ]_  }	| j                  j                  t        d      |	j                  z         	 |	j                  |       | j                  j%                          a | j&                  j)                          y # t        j                  $ rU}
|
j                  \  }
}t        j                   |
|| j"                         | j                  j%                          Y d }
~
 ~d }
~
ww xY w)Nr   modifying printer %s)r   r-  rZ   r  r_  r  ra  r
  r    r   r   rs   
setEnabledr  rC  errordialogsr  rU   r$  r   r  )r.   toggle_actionenabler  r  rg  r   r   r  rp   rW  r  s               r   r   zGUI.on_enabled_activate  s8     )),&&++.""% 	&D..$'CoosA.GOOW%	&
   	(GII&&*@(AGLL(PQ""F+ II$$'	( 	 == A++Q43F3FG		((+s   >DE.A
E))E.c                    | j                   ry |j                         }| j                  }|j                         }|j	                         }g }|D ]6  }|j                  |      }|j                  |d      }	|j                  |	       8 d}
|D ]a  }	| j                  j                  t        d      |	j                  z         	 |	j                  |       d}
| j                  j#                          c |
rE|rC| j$                  '	 	j'                          |	j(                  d   }|| _        | j-                          | j/                          y # t        j                  $ rK}|j                  \  }}t        ||| j                          | j                  j#                          Y d }~ d }~ww xY w# t        j                  t*        f$ r Y w xY w)Nr   Fr  Tzserver-is-sharing-printers)r   r-  rZ   r  r_  r  ra  r
  r    r   r   rs   	setSharedr  rC  r  rU   r$  r   getAttributesrC  KeyErroradvise_publishdefer_refresh)r.   r  sharer  r  rg  r   r   r  rp   successrW  r  ri  s                 r   r   zGUI.on_shared_activate  s     ##&&&++.""% 	&D..$'CoosA.GOOW%	&
  	(GII&&*@(A*1,,)7 8!!5) II$$'	( u((0
)),001MNA01D- "
 	7 == Aq!T%8%89		((+& x0 s+    E &F( F%A F  F%(GGc                 r    | j                   s+t        t        d      t        d      | j                         y y )NzPublish Shared PrinterszShared printers are not available to other people unless the 'Publish shared printers' option is enabled in the server settings.r  )r   show_info_dialogr   rU   r.   s    r   r  zGUI.advise_publish#  s:    ((a 9: !B C &*%8%8: )r   c                     | j                   }|j                         }|j                         }	 |j                  |d         }|j                  |d      }| j                  |       y # t        $ r Y y w xY w)Nr   rS   )rZ   r  r_  r  
IndexErrorra  r  )r.   rv  r  r  rg  rh  rs   s          r   r   zGUI.on_set_as_default_activate-  st    &&++.""%	>>58,D a(//6	  		s   A& &	A21A2c                 v    | j                   j                         }| j                  | j                   |d          y r  )rZ   r  r0  )r.   rv  r  s      r   r   zGUI.on_edit_activate9  s0    ##669**D,?,?qJr   c                    | j                   j                         }g }| j                   j                         }|D ]6  }|j                  |      }|j	                  |d      }|j                  |       8 | j                  j                  d| j                  | j                  | j                        s| j                  j                          y | j                  j                  j                         }| j                  j                  j                         }	|j                         }|R|j!                  |      }
|j#                  |d      }|d   |v r"|	j                  |       |j%                  |       |
}|Qy y )NrS   classr|  r   )rZ   r  r_  r  ra  r
  r  initr   r   rU   r   r  tvNCNotMemberstvNCMembersr`  rf  r  r   )r.   rv  r  r  rg  r   rh  rs   	out_modelin_modelnextdatas               r   r   zGUI.on_create_class_activate=  sS   ##669##--0 	(D>>4(D??D!,D  $'	( !!&&-1-@-@373G3G/3/B/B ' D LL"&&55??B	%%11;;>''*&&-D==$*DAw-'&  $'D r   c                 2   | j                   j                         }t        |      rg }| j                   j                         }|D ]6  }|j	                  |      }|j                  |d      }|j                  |       8 t        j                  d d d|| j                        }|j                  d| j                         n?t        j                  d d d| j                        }|j                  d| j                         | j                  j                  |       y )NrS   F)my_jobsspecific_destsr~  finished)r0  r~  )rZ   r  rF  r_  r  ra  r
  	jobviewer	JobViewerrU   r   on_jobviewer_exitr  )	r.   rv  r  r1  rg  r   rh  rs   viewers	            r   r   z GUI.on_view_print_queue_activateW  s    ##669;N''114E -~~t,a0%%t,- (($e9G151D1DFF NNJ(>(>?(($e151D1DFFNNJ(>(>?'r   c           	          	 | j                   j                  |      }| j                   |= y # t        $ r0 t        dt	        |      dt	        | j                                Y y w xY w)Nz"Jobviewer exited but not in list:
r  )r  index
ValueErrorrO  r  )r.   r6  r  s      r   r5  zGUI.on_jobviewer_exitk  sZ    	L%%v.A" 	L$(&M43IK L	Ls   (+ 6A$#A$c                 $    | j                          y r'   )rA  r  s     r   $on_view_discovered_printers_activatez(GUI.on_view_discovered_printers_activatet  s    r   c                 j    d| j                   vr%t        j                  | j                        | _        y y )Ntroubleshooter)__dict__troubleshootr  on_troubleshoot_quitr=  rx  s     r   on_troubleshoot_activatezGUI.on_troubleshoot_activatew  s,    4==0"."2"2D4M4M"ND 1r   c                     | ` y r'   )r=  )r.   r=  s     r   r@  zGUI.on_troubleshoot_quit{  s    r   c                    | j                   j                  |       | j                  j                  |       | j                  j                  |       | j                  j                  |       | j
                  j                  |       | j                  j                  |       dD ],  }| j                  j                  |      j                  |       . | j                  d d        y )N)z/connect-to-serverr  r   r   r  r  r  r  r  r  r  r  z/filter-namez/filter-descriptionz/filter-locationz/filter-manufacturer)
rZ   r   r   r[   r  rb   r  r   r   r   )r.   	sensitiverL  s      r   r  z!GUI.sensitise_main_window_widgets~  s    ))95!!9---y9(()4%%33Y?''3/ 	JF  OO&&/==yI!	J$ 	&&d3r   c                 &    | j                  d       y NFr  r"  s    r   r  z#GUI.desensitise_main_window_widgets      **E2r   c                     | j                   j                  | j                         | j                   j                          | j                   j	                          y r'   )rc   r   rU   r  r   rx  s     r   on_about_activatezGUI.on_about_activate  s@    **D,?,?@r   c                     d| j                   vr5t        j                  | j                  |j	                               | _        y y )Nr=  r  )r>  r?  r  r@  
get_dialogr=  )r.   serversettingss     r   r  zGUI.on_problems_button_clicked  s;    4==0"."2"2D4M4M;I;T;T;W#YD 1r   c                 <   | j                   j                  |       | j                  j                  |       | j                  j	                  d      j                  |       | j                  j	                  d      j                  |       | j                  d d        y )Nr   r   )r   r   r[   r   r   r   )r.   rD  s     r   sensitise_new_printer_widgetsz!GUI.sensitise_new_printer_widgets  sr    !!9---y9""N3AA9M""L1??K&&d3r   c                 &    | j                  d       y rF  rN  r"  s    r   desensitise_new_printer_widgetsz#GUI.desensitise_new_printer_widgets  rG  r   c                 F   t        | j                         | j                          | j                  j	                  d| j
                  | j                  | j                        s*| j                          | j                  j                          t        | j                         y )Nrp   r|  )r   rU   rQ  r  r(  r   r   rN  r   r  r   r.   r  rv  s      r   r   zGUI.on_new_printer_activate  s    d!!",,/!!&&y,0,?,?262F2F.2.A.A ' C ..1LL"t""#r   c                     | j                          | j                  j                  d| j                  | j                  | j
                        s+| j                          | j                  j                          y y )Nr'  r|  )	rQ  r  r(  r   r   rU   rN  r   r  rS  s      r   r   zGUI.on_new_class_activate  si    ,,/!!&&w,0,?,?262F2F.2.A.A ' C ..1LL"Cr   c                 $    | j                          y r'   rP  r  s     r   r  zGUI.on_new_printer_not_added  r  r   c           
         t        d|z         | j                          | j                          || j                  vrt        d       y | j                  j                         }|j                         }||j                  |d      }||k(  r|j                  |      }| j                  j                  |ddd       | j                  j                          | j                  j                  |d d       | j                  j                  |       n|j                  |      }|| j                  j                  |       | j                  j                   rs| j                  j"                  j$                  sS| j                  j"                  j&                  s3	 | j)                  | j*                  || j                  j                          | j                  j                   rYt/        j0                  | j*                  ddt.        j2                  j4                  t.        j6                  j8                  t;        d	      
      }|j=                  t.        j>                  t.        j@                  jB                  t;        d      t.        j@                  jD                         |jG                         }|jI                          |t.        j@                  jD                  k(  rb| j                  jJ                  jM                          d}		 | jO                  |       d}	|	r%| j                  jR                  jU                          y y y y #  t-                Y xY w# tP        $ r Y Gw xY w)NzNew printer added: %szNew printer disappearedrS   Tr[  Fr\  ppdz$Would you like to print a test page?r  zPrint Test Page)+rO  rN  rA  r   rZ   r_  r`  ra  rb  rc  r  rd  r  rf  r>  r  rX  rp   r  r.  checkDriverExistsrU   r   r   r  r  QUESTIONr  r
  r   r  STOCK_CANCELr  NOYESr  r  r  r   ri  r  btnPrintTestPager   )
r.   r1   rs   rg  rh  r   r   qr  properties_showns
             r   r  zGUI.on_new_printer_added  s   +d23**-t}}$ 12 ##--0##&OOT1-E}~~t,##22D$SI##003##..T>C / E##//6??D)D  	&""##++66##++22$&&(;(;T,0,>,>,B,B ' D !!!!$*=*=)-4030H0H+.??+?+?()*P(Q	SA
 MM3++S-=-=-@-@./1A1A1E1EGuuxHIIL3++///""))..1#( 66='+$ $&&77??B $ 0 "	$!#* $ s   2L8 ;M
 8M
	MMc                     |j                  d       | j                  j                  | j                  | j                         y )NFrE   )r   r"  r>   on_start_service_replyr  s     r   r;  zGUI.on_start_service_clicked  s;    e$t/J/J/3/J/J 	  	Lr   c                 D    t        j                  d| j                         y )Nr   )r   timeout_add_secondsservice_started_try)r.   rC  s     r   rb  zGUI.on_start_service_reply  s      !T%=%=>r   c                     t        j                          	 | j                  d        t        j                          t	        j
                  d| j                         y# t        j                          w xY wr  )r   r  r  r  r   rd  service_started_retryr"  s    r   re  zGUI.service_started_try  sV    	!&&-   !T%?%?@  s   A A2c                     | j                   sVt        j                          	 | j                  d        | j                  j                  d       t        j                          yy# t        j                          w xY w)NTF)r    r   r  r  r\   r   r  r"  s    r   rg  zGUI.service_started_retry'  s[    yy %**D1$$22D9!!$ !!$s   ,A$ $A:c                 b   t        j                         }| j                  dk(  s| j                  d   dk(  sy|sF	 | j                   j                  |      }t        j                  |      }t        j                  |       t        j                  |      \  }}	t        |      dkD  st        |	      dkD  rd}
t        |      dkD  r	 t        j                         }d}
|
rt        |      dkD  r|d   }dt!        d      z   d	z   t!        d
      ||fz  z   }| j"                  }| j$                  j'                  |       |j)                  |       |j+                         }|j-                          |t.        j0                  j2                  k(  r	 j5                  dd|       yyt7        t!        d      t!        d      ||	|z   d   fz  |       yy# t         j                  $ rC}|j
                  \  }}|t         j                  k(  rY d}~y| j                  ||       Y d}~yd}~ww xY w#  Y LxY w#  Y yxY w)zCheck that the driver for an existing queue actually
        exists, and prompt to install the appropriate package
        if not.

        ppd: cups.PPD object, if already createdr   r   r   NFTz"<span weight="bold" size="larger">zInstall driverz	</span>

zGPrinter '%s' requires the %s package but it is not currently installed.zMissing driverzwPrinter '%s' requires the '%s' program but it is not currently installed.  Please install it before using this printer.)r    r!   r   getPPDr  rC  IPP_NOT_FOUNDr  PPDr   unlinkr!  missingPackagesAndExecutablesrF  installpackage
PackageKitr   rn   ro   r  r   r  r   r   r  r  InstallPackageNamer  )r.   r~  rs   rX  r  filenamerW  r  pkgsexescan_installpkpkginstall_textr  r  s                   r   rY  zGUI.checkDriverExists2  s!    "##{2##A&#- 	99++D1 ((8$CIIh"@@#Ft:>S$Z!^KDzA~'225B"&K sDzA~1g D !"2 3!46C!D ! #C !D#'+!.!.
 ++**<8((&1!::=s//222--q!S9 3 "1%5#6#$ &0 $1 %)%)D[!$4$6	$6 $*+; , == 66C***''3/($s5   G	 H" H* 	H"HHH"H'*H.c                 v   t        d|z         | j                  j                  |       | j                  j                  r	 | j	                  | j                  j
                  || j                  j                         	 | j                  j                  d   }|j                         ft        d       |j                          | j                  j                  j                  |       | j                  j                  | j                         y y y #  t                Y xY w# t        $ r Y y  t                Y y xY w)NzPrinter modified by user: %srW  mediazInvalid media option: resetting)rO  r>  r  rX  rY  r  r   server_side_optionsget_current_valueresetr   r   r  rp   r  )r.   r1   rs   ppd_has_changedoptions        r   r  zGUI.on_printer_modifiedw  s   2T9: 	&!!$&&(:(:(A(A(,$2D2D2H2H ' J
$++??H++.6 ABLLO&&..22F;&&33T\\B	 7 "$!#  $!#s   <D >BD  D 	D8+D8c                       fd} j                   rt        j                   j                          t        j                  d|       _         t	        d       y )Nc                      d  _         t        j                          	  j                  d       t        j                          y# t        j                          w xY wNF)rV  )r   r   r  rA  r  r"  s   r   deferred_refreshz+GUI.defer_refresh.<locals>.deferred_refresh  sL    &*D# %!!%!8!!$ !!$s   A A   zDeferred populateList by 200ms)r   r   r  r  rO  )r.   r  s   ` r   r  zGUI.defer_refresh  sF    	 "" 7 78"&"2"2C9I"J45r   c                 $    | j                          y r'   )r  r"  s    r   printer_added_or_removedzGUI.printer_added_or_removed  s    r   c                 $    | j                          y r'   r  r.   monrp   s      r   r  zGUI.printer_added      %%(r   c                     || j                   v rK | j                   |   j                  di | | j                  | j                         | j	                          y y )Nr   )r   r  r1  rZ   r  )r.   r  rp   	eventnamer  s        r   r  zGUI.printer_event  sO    dmm#)DMM'"))3U31143F3FG)), $r   c                 $    | j                          y r'   r  r  s      r   r  zGUI.printer_removed  r  r   c                 V    d | _         | j                          | j                  d       y r  )r    rE  rA  r.   r  s     r   r  zGUI.cups_connection_error  s&    	%0r   c                 X    t        d       t        j                  | j                         y )NzTrying to recover connection)rO  r   r  re  r  s     r   r  zGUI.cups_connection_recovered  s    23t//0r   )Tr'   )[r?   r@   rA   r    IPP_PRINTER_IDLEr   IPP_PRINTER_PROCESSINGIPP_PRINTER_BUSYIPP_PRINTER_STOPPEDprinter_statesrQ  rR  rS  r   ri  r  rq  r   r0  r?  r1  r3  r2  r/  r:  r  r   rE  r   r  rA  ry  r   r  r   r  r   r  r  r  r  r  r   r  r  r   r  r  r  r  r  r  r   r  r   r  r   r   r  r   r   r   r   r5  r;  rA  r@  r  r  rI  r  rN  rQ  r   r   r  r  r;  rb  re  rg  rY  r  r  r  r  r  r  r  r  __classcell__)rY  s   @r   rN   rN      s   ,,ai22AlO,,ai//9@N
 n#`"!8.F&P8&&!0#.5`*6g4V	R0Nd%IV$"	Q*4F$,!:F= $$ p1h>
=/-`:/b:
7K4((LO 463 Y43	$#.?CDL
?	C+J$<6"
)-)1
1r   rN   c                    t        j                  t        j                  j	                  dt        j
                                      t        j                          ddlm	}  |d       | r;t        j                  d d d| g      }|j                  dt        j                         n
t               }t        j                           	 t        j"                          t        j$                          y # t        j$                          w xY w)	N	CUPS_USERr   )DBusGMainLoopT)set_as_defaultF)r0  r1  r2  )r    r  r   r   r  r   r   threads_init	dbus.glibr  r3  r4  r   r   r  rN   r  mainr  )	show_jobsr  r6  
mainwindows       r   r  r    s    LL"**..+t||~>?'$'$$dD%6?[B
CMM2U

s   C. .D__main__)z	embedded=debugz
show-jobs=z--debugTz--show-jobsz
--embedded)`r   sysr   r  r'  r  r(   girequire_versiongi.repositoryr   r   r   r   r(  argvr  rW  r   exitr   StyleManagerr2  set_color_schemeColorSchemePREFER_LIGHTr   rF  r    requireppdSetConformancePPD_CONFORM_RELAXEDr   r   r   Errorr   gettextinstallr   r   r!  r   r   guir   r  urllib.requestr3  urllib.parseurllib.errorr?  ro  r3  r  r   r  r  rL  r   rp  SearchCriterionrD  r  r   r   r<  	ppdippstr
pkgdatadirpkgdatar   joinr>  r
  rI  r   set_prgnamer#   r%   rC   rH   rN   r  r?   getopt
gnu_getoptoptsrC  GetoptErrorr  optoptargset_debuggingset_debugprint_fnrO  r  r   r   r   <module>r     s  2      	Bx'$   ; & #	Bue$!Bue$!CHHchh	Bw$#EJJL	""$55e6G6G6T6TU= sxx=?sxx{h.LCHHaL  h    00 1 )FfmmR(  v~~1A1A B  !    1 1         )      "   	 


77<<(+  
   ( )9 9*1| 1	5, 	5T 1& T 1l@& z&V&&b)CD
d I 'V)4 )K)):6M!I,v;L' 	O- cEF  	#Q'	LMCHHaLL	, || )BJJxFfmmR()RD  !sU   M AM $A'N N #&O MN##NNN;OO(P	P	