+
    QDb c                   s   ^ RI t ^ RIt^ RIt^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
t^ RIt^ RIt^ RIt^ RI5 ^ RIt^ RIHt ^ RIHt ^ RIt^ RIt ^ RIsRs^ RIt^ RIHt ^ R	IHt ^ R
IHt ^ RIHt ^ RI5 ^ RI t ^ RI!t"^ RI#t"^ RI$H%t% ^ RI&5 ^ RI'H't' ^ RI(t(^ RI)t)^ RI*t*^ RI+t+^ RI,t,^ RI-t-]-P\                  ! ] P^                  ] P`                  R7       Rt1]2! R4      t3R t4R t5R t6R t7R-R lt8R t9R t:R t;R t< ! R R]4      t=R t>]?R8X  Ed.   ^ RI@t@ ]@P                  ! ]P                  R,          RR R!.4      w  tCtDRtGRtH]C F  w  tItJ]IR"8X  d   ]JtGK  ]IR#8X  g   K  ]JtHK  	  R$]P                  R%&   ^ RILtL]P                  ! ]P                  R4       ]LP                  ! 4        ]P! R4       ]P                  ! ]R4       ]=! 4       tSR& tT]SP                  R']T4       ]SP                  R(]T4       ]SP                  R)]T4       ]Ge   ]SP                  R*]G]HR+7       M]SP                  R,4       ]P                  ! 4        R# R#    Rs EL; i  ]@P                   d    ]>! 4        ]P                  ! ^4        EL7i ; i).    N)OpenPrintingRequest)*)Gdk)GtkTF)GObject)GLib)GtkGUI)OptionWidget)SMBURI)PhysicalDevice)domain	localedirg      .@z^The firewall may need adjusting in order to detect network printers.  Adjust the firewall now?c                sb    \         P                  P                  V 4      w  rVe   VR8X  d   R# R# )z*Returns True is the provided URI is valid. FT)urllibparse	splittype)urischemerest   &  ./usr/share/system-config-printer/newprinter.pyvalidDeviceURIr   L   s)    \\++S1NV~2    c                 s   V P                  4       pVP                  4       w  r4V Uu. uF"  p\        P                  P	                  W54      NK$  	  ppVP                  4       pV FX  pVP                  4       pVP                  V4      pVP                  V^ 4      p	VP                  V	4       VP                  V4       KZ  	  R# u upi r    N)get_selectionget_selected_rowsr   ZTreeRowReferencenew	get_modelget_pathget_itergetappendremove)
Ztreeview_fromZtreeview_to	selection
model_fromrowsrowZmodel_topathiterZrow_data
   &&        r   moveClassMembersr)   U   s    ++-I 224JAEF#C  $$Z5DF$$&H||~""4(>>$*!$ 	 Gs   (Cc                 s    V P                  4       pVP                  4       p. pV'       d<   VP                  VP                  V^ 4      ^ ,          4       VP	                  V4      pKC  VP                  4        V# r    )r   get_iter_firstr    r   	iter_nextsort)treeviewmodelr'   results   &   r   getCurrentClassMembersr1   c   s^     E!DF
eiia(+,t$
KKMMr   c                 s    V'       g   R # VP                  4       pV P                  4        F9  pVP                  '       d   K  VP                  P                  4       V8X  g   K8   R # 	  R# )FT)lowervaluesZ
discoveredname)printersr4   printer   && r   checkNPNamer8   m   sK    ::<D??$!!!gll&8&8&:D&@ % r   c                 s     V P                  4       pV'       dF   VP                  V4       \        P                  ! 4       '       d   \        P                  ! 4        K2  R # R #    \        4         R # ; iN)Z
get_window
set_cursorr   events_pendingmain_iterationnonfatalException)winZcursorZgdkwinr7   r   readyr?   u   sV    !v&$$''""% ( s   A! +A! A! !A0c                 s    \        V \        P                  P                  \        P                  P
                  4      4       R # r9   )r?   r   ZCursorr   Z
CursorTypeZWATCH)r>      &r   busyrA      s#    	3

s~~3345r   c                 &    V P                  4        R # T)hide)widgetevent   &&r   on_delete_just_hiderH      s    
KKNr   c                sD    \        V \        4      '       d
   V ^ ,          # V # )zwIf we don't know whether getPPDs() or getPPDs2() was used, this
function can unwrap an item from a list in either case.)
isinstancelist)xr@   r   
_singletonrL      s     1dtHr   c                s   V P                  R4      '       g   \        RV ,          4       R# Rp \        P                  P	                  V \
        R7      ;_uu_ 4       pVP                  ^8X  d    VP                  4       P                  R4      pRRR4       Tf   \        RT ,          4       R# \        P                  ! R	\        P                  4      pTP                  T4      pT'       d0   TP                  ^4      P                  4       P!                  R
R4      # R#   + '       g   i     L; i  \         d   p\        RT : RT: 24        Rp?LRp?ii ; i)zGet GPG fingerprint from URL.

Check that the URL is HTTPS with a valid and trusted server
certificate, read it, extract the GPG fingerprint from it, and return
it. Return None if the URL is invalid, not trusted, or the fingerprint
can't be found.
zhttps://z0Not a https fingerprint URL: %s, ignoring driverN)Ztimeoututf-8zCannot retrieve : zCannot retrieve %sz$ ((?:(?:[0-9A-F]{4})(?:\s+|$)){10})$ r   )
startswith
debugprintr   requesturlopenHTTPS_TIMEOUTstatusreaddecode	ExceptionreZcompileZMsearchgroupstripreplace)urlZcontentrespeZkeyid_rem   &     r   download_gpg_fingerprintrc      s    >>*%%EKLG8^^##C#??4{{c!))+,,W5 @ '#-.zzA244HH Awwqz!))#b11! @?  8sA6778s5   -D/ 1DD/ D,	'D/ ,D/ /E:EEc                   s  a  ] tR t^t o R]P
                  P                  RR3R]P
                  P                  R]33R]P
                  P                  R]]33R]P
                  P                  R]33R]P
                  P                  RR3/t	^ t
^t^t^t^t^t^t^tRtRtR	^ R
^ R^ R^ R^ R^ R^ R^ R^R^R^R^R^R^/tR tR tR tR tR tR tR tR tR tR  tRR! ltR" t R# t!R$ t"R% t#R& t$R' t%R( t&R) t'R* t(R+ t)R, t*R- t+R. t,R/ t-R0 t.R1 t/R2 t0R3 t1RR4 lt2R5 t3R6 t4R7 t5R8 t6R9 t7R: t8RR; lt9R< t:R= t;R> t<R? t=R@ t>RA t?RB t@RC tARD tBRE tCRF tDRG tERH tFRI tGRJ tHRK tIRL tJRRM ltKRN tLRO tMRP tNRQ tORR tPRS tQRT tRRRU ltSRRV ltTRW tURX tVRY tWRRZ ltXR[ tYR\ tZR] t[R^ t\R_ t]R` t^Ra t_Rb t`Rc taRd tbRe tcRf tdRg teRh tfRi tgRj thRk tiRl tjRm tkRn tlRo tmRp tnRq toRr tpRs tqRt trRu tsRv ttRw tuRx tvRy twRz txR{ tyR| tzR} t{R~ t|R t}R t~R tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tRtV tR# )NewPrinterGUIdestroyNprinter-addedprinter-modifieddriver-download-checkeddialog-canceledTFparallelusb	bluetoothhalbehhphpfaxdnssdsocketlpdscsiserialsmbnetworkc                s\   \         P                   P                  V 4       \        P                  ! \        P                  4      V n        / V n        \        4       V n        \        4       V n	        R V n
        R V n        RV n        RV n        RV n        R V n        . V n        RV n        RV n        RV n        R V n        . V n        RV n        / V n        RV n        R V n        R V n        V P7                  R. RNRNRNRNRNRNRNR	NR
NRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNR NR!NR"NR#NR$NR%NR&NR'NR(NR)NR*NR+NR,NR-NR.NR/NR0NR1NR2NR3NR4NR5NR6NR7NR8NR9NR:NR;NR<NR=NR>NR?NR@NRANRBNRCNRDNRENRFNRGNRHNRINRJNRKNRLNRMNRNNRORORP.RQ. RO/\8        P:                  RR7       V P<                  \?        RS4      RT.RURU.RVRV.RWRW.RXRX.RYRY.RZRZ.R[R[.R\R\..	3V P@                  \?        RS4      RT.\?        R]4      R^.\?        R_4      R`.\?        Ra4      Rb..3V PB                  \?        RS4      RT.RcRc.RdRd..3V PD                  \?        RS4      RT.\?        R]4      R^.\?        Re4      Rf.\?        Rg4      Rh.\?        Ri4      Rh..33 F  w  pp\F        PH                  ! \J        \J        4      pV F  pVPM                  V4       K  	  VPO                  V4       \F        PP                  ! 4       pVPS                  4        VPU                  VRj4       VPW                  VRk^ 4       K  	  \F        PX                  PZ                  p\F        PX                  P\                  p\F        PX                  P^                  p\?        Rl4      \F        PH                  ! \J        4      V P`                  V3\?        Rm4      \F        PH                  ! \J        4      V Pb                  V3\?        Rn4      \F        PH                  ! \J        4      V Pd                  V3\?        Ro4      \F        PH                  ! \J        4      V Pf                  V3\?        Rp4      \F        PH                  ! \J        \J        4      V Ph                  V3\?        Rq4      \F        PH                  ! \J        \J        4      V Pj                  V3\?        Rr4      \F        PH                  ! \J        4      V Pl                  V3\?        Rs4      \F        PH                  ! \J        4      V Pn                  V33 Ft  w  rr\F        PP                  ! 4       p\F        Pp                  ! W^ Rt7      pVPO                  V
4       VPs                  V4       VPu                  4       Pw                  V4       Kv  	  V Px                  P{                  Ru\|        4       V P~                  P{                  Ru\|        4      V n@        V P                  P                  R4       V P                  P                  R4       V P                  P                  R4       V P                  P                  R4       ^ V nF        R V nG        R V nH        V P                  p\F        PP                  ! 4       pVPU                  VRj4       VPW                  VRk^ 4       \8        P                  '       d0   V P                  V P                  3 F  pVP                  4        K  	  \        P                  P                  Rv4      '       g&   \        P                  P                  Rw4      '       d   Rx\8        nQ        RyV nR        MC\        P                  P                  Rz4      '       d   R{\8        nQ        R|V nR        MRj\8        nS        R} pV P                  V P                  V P                  3 F  pVP{                  R~V4       K  	  V P                  V P                  V P                  V P                  3 F  pVP{                  RR 4       K  	  V Pd                  Pu                  4       pVP                  V P                  R 4       V Pd                  P                  V P                  R 4       V Pd                  P{                  RV P                  4       V Pd                  P{                  RV P                  4       V P                  P{                  RV P                  4       V P                  P                  ^4       \F        P                  ! \         P                  4      V nd        V P                  P                  Rj4       \        '       g%   V P                  P                  \?        R4      4       V P                  PO                  V P                  4       \F        Pp                  ! \?        R4      4      p\F        PP                  ! 4       pVPU                  VR4       VP                  WPP                  R 4       V P                  Ps                  V4       \F        Pp                  ! \?        R4      4      p\F        PP                  ! 4       pVPU                  VR4       VP                  WPP                  R 4       V P                  Ps                  V4       V P                  Pu                  4       pVP                  V P                  R 4       V Px                  P                  V P                  4       V Pl                  P                  Rj4       V Pl                  P{                  RV P                  4       \F        P                  ! 4       pVP                  \?        R4      4       VP                  R4       VP                  R4       VP                  R4       VP                  R4       VP                  R4       V P                  P                  V4       \F        P                  ! 4       pVP                  \?        R4      4       VP                  R4       V P                  P                  V4       RV nw        RV nx        V P                  4        \        RV ,          4       R # )NFNewPrinterWindowntbkNewPrinter	btnNPBackbtnNPForward
btnNPApplyspinner	entNPNameentNPDescriptionentNPLocationtvNPDevices
ntbkNPTypelblNPDeviceDescriptionexpNPDeviceURIstvNPDeviceURIscmbNPTSerialBaudcmbNPTSerialParitycmbNPTSerialBitscmbNPTSerialFlowbtnNPTLpdProbeentNPTLpdHostentNPTLpdQueueentNPTJetDirectHostnameentNPTJetDirectPort	entSMBURIbtnSMBBrowse
tblSMBAuthrbtnSMBAuthPromptrbtnSMBAuthSetentSMBUsernameentSMBPasswordbtnSMBVerifyentNPTNetworkHostnamebtnNetworkFindlblNetworkFindSearchinglblNetworkFindNotFoundentNPTDevicetvNCMemberstvNCNotMembersbtnNCAddMemberbtnNCDelMemberntbkPPDSource	rbtnNPPPD	tvNPMakesrbtnNPFoomaticfilechooserPPDrbtnNPDownloadableDriverSearchentNPDownloadableDriverSearchbtnNPDownloadableDriverSearch#btnNPDownloadableDriverSearch_label$cmbNPDownloadableDriverFoundPrinters
tvNPModelstvNPDriversrbtnChangePPDasIsrbtnChangePPDKeepSettingsscrNPInstallableOptionsvbNPInstallOptionstvNPDownloadableDrivers"ntbkNPDownloadableDriverPropertieslblNPDownloadableDriverSupplier$cbNPDownloadableDriverSupplierVendorlblNPDownloadableDriverLicense$cbNPDownloadableDriverLicensePatents!cbNPDownloadableDriverLicenseFree"lblNPDownloadableDriverDescription&lblNPDownloadableDriverSupportContactshsDownloadableDriverPerfTexthsDownloadableDriverPerfLineArt hsDownloadableDriverPerfGraphicshsDownloadableDriverPerfPhotoZ$lblDownloadableDriverPerfTextUnknownZ'lblDownloadableDriverPerfLineArtUnknownZ(lblDownloadableDriverPerfGraphicsUnknownZ%lblDownloadableDriverPerfPhotoUnknown#frmNPDownloadableDriverLicenseTermstvNPDownloadableDriverLicenserbtnNPDownloadLicenseYesrbtnNPDownloadLicenseNo
WaitWindowlblWaitSMBBrowseDialog)r   ZDefaultr   Z1200Z2400Z4800Z9600Z19200Z38400Z57600Z115200NoneZnoneZOddZoddZEvenZevenZ8Z7zXON/XOFF (Software)ZsoftzRTS/CTS (Hardware)ZhardzDTR/DSR (Hardware)TtextzMembers of this classZOthersZDevicesZConnectionsZMakesZModelsZDriverszDownloadable Drivers)r   delete-eventz/etc/apt/sources.listz/etc/apt/sources.list.dZdebZaptz/etc/yum.confZrpmZyumc                 sN    \        V R R4      pVe   V P                  V4       R# R# )protect_activeN)getattr
set_active)Ztoggle_widgetactive   & r   protect_toggleZ.NewPrinterGUI.__init__.<locals>.protect_toggle  s*    m-=tDF!((&1 "r   clickedzchange-valuec                 s    R # rC    )rK   yZz   &&&r   <lambda>Z(NewPrinterGUI.__init__.<locals>.<lambda>  s    Dr   zrow-activatedzrow-expandedznotify::expandedzBrowsing requires pysmbc moduleZShareZCommentzquery-tooltipzQPostScript Printer Description files (*.ppd, *.PPD, *.ppd.gz, *.PPD.gz, *.PPD.GZ)z*.ppdz*.PPDz*.ppd.gzz*.PPD.gzz*.PPD.GZzAll files (*)r   r6   z+%s)r   tvSMBBrowserbtnSMBBrowseOk){r   __init__localeZ	getlocaleZLC_MESSAGESlanguageoptionssetchanged	conflictsdeviceppdremotecupsqueueexactdrivermatchinstallable_options
ppdsloaderinstalled_driver_filessearchedfordriverpackagesfounddownloadabledriversfounddownloadableppddownloadable_driver_for_printerdownloadable_printersnextnptab_rerunr5   recommended_model_selected_searchdialog_installdialogZ
getWidgetsconfigPACKAGEr   _r   r   r   r   	ListStorestrr    	set_modelZCellRendererTextclear
pack_startZadd_attributeZSelectionModeZMULTIPLEZSINGLEZBROWSEr   r   r   r   r   r   r   r   ZTreeViewColumnZappend_columnr   Zset_moder   connectrH   r   WaitWindow_handlerry   Zset_show_tabsr   r   r   spinner_countopreqopreq_handlersr   ZDOWNLOADABLE_ONLYFREEr   r   rD   osr&   ZexistsZpackagesystempackageinstallerDOWNLOADABLE_ONLYPPDr   r   r   r   r   Zset_select_functiondevice_select_functionZset_row_separator_funcdevice_row_separator_fndevice_row_activateddevice_row_expandedr   on_expNPDeviceURIs_expandedZset_expanded	TreeStoreTYPE_PYOBJECT	smb_storer   set_sensitivePYSMB_AVAILABLEset_tooltip_textr   Zset_cell_data_funcsmbbrowser_cell_sharesmbbrowser_cell_commentsmb_select_functionset_transient_forrx   Zset_has_tooltipon_NPDrivers_query_tooltipZ
FileFilterZset_nameZadd_patternr   Z
add_filterdevice_selecteddialog_modeZconnect_signalsrQ   )selfrE   optsstorer%   cellra   sZbr4   r/   r.   Zselection_modecolumncomboboxr   ZslctZcolZ
ppd_filters   &                  r   r   ZNewPrinterGUI.__init__   s?     $'((&*<*<=u$ %#( &(#).&(-%$)!/3,%'"$*/'!"+L90 L9.L9)L9 -L9 +	L9
 (L9 *L9 1L9 .L9 ,L9 +L9 7L9 0L9 /L9 1L9 3L9  1!L9" 1#L9$ /%L9& .'L9( /)L9* 8+L9, 4-L9. */L90 -1L92 +3L94 25L96 /7L98 /9L9: /;L9< -=L9> 6?L9@ /AL9B 8CL9D 7EL9F -GL9H ,IL9J /KL9L /ML9N /OL9P .QL9R *SL9T *UL9V /WL9X /YL9Z ?[L9\ >]L9^ >_L9` DaL9b EcL9d +eL9f ,gL9h 2iL9j :kL9l 8mL9n 3oL9p 8qL9r CsL9t @uL9v EwL9x ?yL9z E{L9| B}L9~ CL9@ GAL9B =CL9D @EL9F AGL9H >IL9J EKL9L HML9N IOL9P FQL9R DSL9T >UL9V 9WL9X 8YL9Z &*')*0eT1l  &~~m 	 V	/t --I,+ &) &) &) &)!7+!7+!7+"H-/	0 //I,+F)V,E(E*F)V,./ --I,+ss%&
 --I,+F)V,12F;016:016:	<=-V< MM3,Ec"  e$''*DLLOtT*  $2MR &&$$$$&'s);q"x[#--,d.A.A1Ey\3==-t/?/?C}s}}S143F3FJwZsC0$..Cx[#--S14??1Ey\3==-t/?/?B%&c(:))1.61D '')D'';Fu%""6*""$--n=#6* 	$$n6IJ"&//"9"9>;N#P 	))%0((/%%e,//==eD 
"<<##%T4(tVQ/'''AADDFF 77>>122bggnn%7' 7'#(F $)D!WW^^O,,#(F $)D! +/F'	2
 @@==@@BF NNI~6B
 88;;<<99;F NNN02	; --0  $"="=tD//1M1MtT  /43L3LM  .$2J2JK 	$$&8&*&F&F	H))!, (=(=>''... 3; 1< =##T^^4   !G*-##&e$&@&@$G''-  !I,/##&e$&B&BDI''-  ..1  $":":DA..t/D/DE((.  $2Q2QR^^%
Aqrsw'w'z*z*z*&&z2^^%
Ao./s#&&z2!$EDL!r   c                s*    \        R V ,          4       R# )z-%sN)rQ   r  r@   r   __del__ZNewPrinterGUI.__del__  s    EDL!r   c                s`   \        R V ,          4       V P                  '       d"   V P                  P                  4        RV n        V P                  '       d"   V P                  P                  4        RV n        V P                  '       d$   V P                  P                  4        RV n        R# R# )zDESTROY: %sN)rQ   r   re   rx   r   r  r@   r   
do_destroyZNewPrinterGUI.do_destroy   s    MD()  ((+#'D    !!)),$(D!???OO##&"DO r   c                s    V P                   ^ 8X  d5   V P                  P                  4        V P                  P                  4        V ;P                   ^,          un         R# r   )r   r}   showZstartr  r@   r   inc_spinner_taskZNewPrinterGUI.inc_spinner_task  sA    "LL LL!ar   c                s    V ;P                   ^,          un         V P                   ^ 8X  d7   V P                  P                  4        V P                  P                  4        R# R# )   N)r   r}   rD   stopr  r@   r   dec_spinner_taskZNewPrinterGUI.dec_spinner_task  sF    a"LL LL  #r   c                sp    \        V : R \        V4      : RV: R24       \        WV P                  R7      # )z: IPP error dialog (, Z)parent)rQ   reprshow_IPP_Errorrx   )r  Z	exceptionZmessager   r   r!  ZNewPrinterGUI.show_IPP_Error  s0    tT9=M7>@ 	Ay$:O:OPPr   c                sR   VP                  4       '       d   V P                  P                  V4       MV P                  P                  V4       VP                  '       d   V P                  P                  V4       MV P                  P                  V4       V P                  4        R # r9   )Z
is_changedr   addZdiscardr   setDataButtonState)r  optionrG   r   option_changedZNewPrinterGUI.option_changed   st    LLV$LL  (NNv&NN""6*!r   c                sl    V P                   P                  \        V P                  4      '       * 4       R # r9   )r{   r  boolr   r  r@   r   r#  Z NewPrinterGUI.setDataButtonState.  s"    ''D,@(@Ar   c                sl   VP                  RR4      pVP                  RR4      pVP                  RR4      p\        V P                  V4      '       gb   ^p\        V P                  VR,           \        V4      ,           4      '       g   V^,          pV^d8X  g   KE   VR\        V4      ,           ,          pV# )z-Make a suggested queue name valid and unique.rO   -/#)r]   r8   r5   r   )r  r4   Zsuffixr7   r   makeNameUniqueZNewPrinterGUI.makeNameUnique1  s    ||S#&||S#&||S#&DMM400F!4==$*sF|2KLL!S=C#v,&&Dr   c                s(    V P                  R 4       R# )re   N)emitr  r@   r   re   ZNewPrinterGUI.destroy?  s    		9r   c
                s.
   Wn         V P                   '       g   V P                  P                  R 4       Wn        W n        W@n        WPn        W`n        Wpn        W0n	        V'       g   \        P                  ! 4       V n        V'       g   \        P                  ! 4       V n        / V n        \        4       V n        \        4       V n        RV n        RV n        RV n        RV n        V P+                  4       '       g   \,        h \.        P0                  ! V P                  V P                  V P                  R7      V n
         \<        P>                  ! T P                  4      T n         T PF                  PI                  4        T PJ                  PM                  R4       T PJ                  PO                  R4       T PP                  PM                  R4       T PR                  PI                  4        T PT                  PW                  4       pTPY                  4        T PZ                  pTP]                  \^        P`                  ! \b        \b        4      4       T Pd                  PO                  R4       T Pf                  pTPO                  \i        R4      4       T Pj                  PO                  R4       T Pl                  Po                  R4       T	^ 8w  dR   T P                   '       d@   T P                  Pq                  4        T P                  Ps                  T P                   4       T P                  R8X  d   T Pu                  4        MT P                  R	8X  d   T Pw                  4        MT P                  R
8X  d   T Py                  4        MgT P                  R8X  d   T P{                  4        MET P                  R8X  d   T P}                  4        M#T P                  R8X  d   T P                  4        R# T	^ 8X  d.   T P                   '       d   T P                  Ps                  T4       T P                  P                  4        T P                  4        R#   \        P2                   d/   p
T
P4                  w  p\7        YP                   4        Rp
?
R # Rp
?
i\,         d    \7        RT P                   4        R # \8         d   p
\;        T
4        Rp
?
R # Rp
?
ii ; i  \        PB                   d1   p
T
P4                  w  r\E        YT P                   R7        Rp
?
R # Rp
?
ii ; i)FN)r  host
encryptionr  Tr   SearchZ9100r6   classr   printer_with_urir   download_driverr   )Br  rx   Zset_focus_on_mapr  _device_uriorig_ppddevid_host_encryption_namecupsZ	getServerZgetEncryptionr   r   r   r   fetchDevices_connppdsppdsmatch_resultprinter_finder_validInitParametersRuntimeErrorauthconn
Connection	HTTPErrorargsZshow_HTTP_ErrorrX   r=   cupshelpersgetPrintersr5   IPPErrorr!  r   rD   r   r  set_textr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   show_nowr
  _initialisePrinterMode_initialiseClassMode_initialiseDeviceMode_initialisePrinterWithURIMode_initialisePPDMode_initialiseDownloadDriverModer  setNPButtons)r  r  
device_urir4   r   r4  r,  r-  r  Zxidr`   r  ra   r/   r  labels   &&&&&&&&&&      r   initZNewPrinterGUI.initB  s   {{{!!22E:&%

%
*DJ#114Du!%	 $"((++	 ++D4I4I26**8<8H8HJDI	'33TYY?DM 	$$)),""00$7""++R0))40##((+ ((*<<CMM345**33R888($  ))&1))$/!8!!**,!!33T[[Ay(''*(%%()&&)!33..1&##&!22..1!8!!33V<""${ ~~ 	66DQQ, 	R- 	q!	 }} 	VVFQA5	sN    <Q =%S S#RSS,S5S6SST$%TTc                s    V P                   R9   d   V P                  RJ# V P                   R8X  d   V P                  R8g  # R# )r0  Nr1  r   T)r0  r   r   )r  r2  r4  r  r@   r   r=  Z"NewPrinterGUI._validInitParameters  sC    DD##4//!22::##r   c                s    V P                  R 4       V P                  P                  \        R4      4       V P	                  4        V P
                  P                  V P                  4       R# )r/  z	New ClassN)_initialiseWidgetsForModerx   	set_titler   fillNewClassMembersry   set_current_pagePAGE_DESCRIBE_PRINTERr  r@   r   rI  Z"NewPrinterGUI._initialiseClassMode  sP    &&0'';8  # 	,,d.H.HIr   c                sF   V P                  R 4       V P                  P                  \        R4      4       V P                  P                  V P                  4       V P                  4        V P                  P                  R4       V P                  V P                  4       R# )r6   New PrinterTN)rR  rx   rS  r   ry   rU  PAGE_SELECT_DEVICEfillDeviceTabr   r   on_rbtnNPFoomatic_toggledr  r@   r   rH  Z$NewPrinterGUI._initialisePrinterMode  sy    &&	2''=)9: 	,,d.E.EF&&-&&(;(;<r   c                s    V P                   P                  \        R 4      4       V P                  P	                  V P
                  4       V P                  V P                  4       R# )zChange Device URIN)rx   rS  r   ry   rU  rX  rY  r2  r  r@   r   rJ  Z#NewPrinterGUI._initialiseDeviceMode  sJ    ''+>)?@,,d.E.EFD,,-r   c                s   V P                  R 4       V P                  4        V P                  P                  \	        R4      4       V P
                  P                  V P                  4       V P                  P                  R4       V P                  V P                  4       V P                  P                  R4       V P                  4        V P                  ^ R7       R# )r6   rW  TstepN)rR  _initialiseDeviceFromURIrx   rS  r   ry   rU  PAGE_SELECT_INSTALL_METHODr   r   rZ  r   _initialiseAutoVariables	nextNPTabr  r@   r   rK  Z+NewPrinterGUI._initialisePrinterWithURIMode  s    &&	2%%(''=)9:,,d.M.MN&&-&&(;(;<&&1148%%(q!r   c                s    V P                   P                  \        R 4      4       V P                  P	                  V P
                  4       RV n        V P                  ^ R7       R# )zDownload Printer DriverTr[  N)rx   rS  r   ry   rU  PAGE_DOWNLOAD_DRIVERr   r`  r  r@   r   rM  Z+NewPrinterGUI._initialiseDownloadDriverMode  sL    ''+D)EF,,d.G.GH#q!r   c                s<   V P                  4        V P                  P                  \        R 4      4       V P                  '       g   \        V P                  P                  R^4      ^ ,          4      pV.pVR9   d   VP                  RR.4       \        P                  ! 4       V n        V P                  P                  \        R4      4       V P                  4        \        P                  ! V P                  VV P                   V P                   R7       V P"                  P%                  V P&                  4       V P(                  P+                  R4       V P-                  V P(                  4       V P.                  P+                  R4       V P1                  4        R# )	zChange Driver:snmprq   fetching device listZinclude_schemesreply_handlererror_handlerTNrr   rs   ipp)r]  rx   rS  r   r4  r   r2  splitextend	asyncconnr@  r9  _begin_operationr  rC  
getDeviceschange_ppd_got_devsry   rU  r^  r   r   rZ  r   r_  )r  r   Zschemesr   r   rL  Z NewPrinterGUI._initialisePPDMode  s<   %%(''?);< zzz$**00#q9!<=FhG11 12%.%9%9%<D"""33Q7M5NO!!$""D$:$:4;262J2J262J2JL
 	,,d.M.MN&&-&&(;(;<&&1148%%(r   c                s0   V P                   P                  V P                  V4      4       V P                   P                  4        V P                  V P
                  V P                  V P                  V P                  3 F  pVP                  R 4       K  	  R# r   N)	r~   rF  r*  Z
grab_focusr   r   r   r   r   )r  Z	mode_namerE   r7   r   rR  Z'NewPrinterGUI._initialiseWidgetsForMode  ss    !4!4i!@A!!$)),,~~t':':**,F OOR 	,r   c                sV    / p\         P                  ! V P                  3/ VB V n        R # r9   )rC  Devicer2  r   )r  device_dictr   r   r]  Z&NewPrinterGUI._initialiseDeviceFromURI  s$    !(($*:*:JkJr   c                s0    R V n         R V n        RV n        R# rp  )	auto_make
auto_modelauto_driverr  r@   r   r_  Z&NewPrinterGUI._initialiseAutoVariables  s    r   c                s   V P                   P                  4        V P                   P                  4        R V n         V P                  4        \	        V\
        4      '       d   / pMTpR pR pV P                  R8w  d   V P                  pMKVP                  V P                  P                  4      pV'       d   VP                  pVP                  pW`n        V P                  P                  V P                  4       V P                  ^ R7       R # )Nr   r[  )r9  _end_operationre   r  rI   rX   r4  r   r   r   idmake_and_modelry   rU  r^  r`  )r  connr0   Zcurrent_devicesr4  Zmmr   s   &&&    r   ro  Z!NewPrinterGUI.change_ppd_got_devs  s    --0&&)!% vy)) O$O::JJE$(($++//:F		**$ 	,,d.M.MNa r   c                s@   V P                  V4       V P                  '       g   R# VP                  '       d   RV n        \	        R4       RV n        V P                  P                  4       V P                  8X  d   V P                  ^ R7       R# V P                  4        R# )z
This method is called when the PPDs loader has finished
loading PPDs in preparation for the next screen the user will
see, having clicked 'Forward'.  We are creating a new queue,
and dialog_mode is either "printer" or "printer_with_uri".
NTz-Loaded PPDs this time; try nextNPTab again...r[  )
_getPPDs_replyr:  _jockey_has_answeredr   rQ   r   ry   get_current_pager^  r`  )r  r   rG   r   on_ppdsloader_finished_nextZ)NewPrinterGUI.on_ppdsloader_finished_next  sx     	Z(yyy***-1D*CD#//2d6U6UUNN1N%NNr   c                s   VP                   ! 4       pV'       d   VP                  ! 4         VhVP                  ! 4       pV'       dF   WPn        VP                  ! 4       V n	        VP                  '       d   VP                  ! 4       V n        MR V n        R V n	        VP                  ! 4        R V n        R #   \        P                   d+   pTP                  w  r4T P                  Y44        R p?R # R p?ii ; ir9   )Z	get_errorre   r8  rE  rB  r!  Zget_ppdsr:  Zget_ppdsmatch_resultr;  r{  Zget_installed_filesr   r   )r  r   excr`   ra   r:  s   &&    r   rz  ZNewPrinterGUI._getPPDs_reply5  s    ""%!	 ""%I$.$C$C$FD!....8.L.L.O+DI$(D!! == ##Q*s   B4 4C3	C..C3c                s   V P                   P                  4       pVP                  4        V P                  P                  4       pVP                  4         \        P
                  ! V P                  4      V n        V P                  P                  4        FO  pV P                  V,          P                  \        P                  ,          '       d   K=  VP                  V34       KQ  	  R #   \        P                   d    / T n         Li ; ir9   )r   r   r   r   rC  rD  r8  r5   rE  keystypeZCUPS_PRINTER_CLASSr    )r  r/   r6   r   r   rT  Z!NewPrinterGUI.fillNewClassMembersO  s      **,##--/	'33TYY?DM }}))+G==)..1H1HHHgZ( , }} 	DM	s   %C* *D	D	c                s    \        V P                  V P                  4       V P                  P	                  \        \        V P                  4      4      4       VP	                  R 4       R# FN)r)   r   r   r|   r  r&  r1   r  buttonrG   r   on_btnNCAddMember_clickedZ'NewPrinterGUI.on_btnNCAddMember_clicked]  sL    ,,d.>.>?%%'(8(89:	<U#r   c                s    \        V P                  V P                  4       V P                  P	                  \        \        V P                  4      4      4       VP	                  R 4       R# r  )r)   r   r   r|   r  r&  r1   r  rG   r   on_btnNCDelMember_clickedZ'NewPrinterGUI.on_btnNCDelMember_clickedc  sL    ))4+>+>?%%'(8(89:	<U#r   c                    VP                  4       pVf   R # VP                  4       w  r4V P                  P                  V. 8g  4       R # r9   )r   r   r   r  r  rE   r"   r#   r$      &&   r   on_tvNCMembers_cursor_changedZ+NewPrinterGUI.on_tvNCMembers_cursor_changedi  B    ((*	$668
))$"*5r   c                r  r9   )r   r   r   r  r  r  r    on_tvNCNotMembers_cursor_changedZ.NewPrinterGUI.on_tvNCNotMembers_cursor_changedq  r  r   c                s   V P                   '       d2   V P                   P                  4        R V n         V P                  4        V P                  '       d"   V P                  P                  4        R V n        V P                  '       d2   V P                  P                  4        R V n        V P                  4        V P                  P                  4        V P                  eW   V P                   F  pV P                  P                  V4       K   	  R V n	        V P                  P                  4        R V n        R V n        / V n        V P                  R4       R# )Nri   T)r9  re   r  r   r<  cancelrx   rD   r   r   
disconnectr   r5   r+  )r  rE   rF   handler   &&& r   on_NPCancelZNewPrinterGUI.on_NPCancel{  s   !!!""**-%)D"!!$???OO##&"DO&&)"&D!!$""$::!..

%%w/ / #'DJJ DJ		$%r   c                s(    V P                  R4       R# )r  Nr   r`  r  rE   rG   r   on_btnNPBack_clickedZ"NewPrinterGUI.on_btnNPBack_clicked  s    rr   c                rB   r9   r  r  rG   r   on_btnNPForward_clickedZ%NewPrinterGUI.on_btnNPForward_clicked  s    r   c           	     s   V P                  V4      pV'       g   R # VR,          pVR,          pVR,          p\        R4      V,          p\        P                  ! V P                  RR\        P
                  P                  \        P                  P                  VR7      V n	        V P                  P                  \        R4      4       V P                  P                  4       p\        P                  ! 4       pVP                  V4       VP                  4        WP                  n        V P                  P!                  RV P"                  4       V P                  P%                  4        V P'                  W4V4      p	V P                  '       d<   V P                  P)                  4        V P                  P+                  4        R	V n	        V	# )
Fr4   repokeyidzInstalling driver %sT)r  modaldestroy_with_parentr  buttonsr   zInstalling ...responseN)_getDriverInstallationInfor   r   MessageDialogrx   MessageTypeINFOButtonsTypeCANCELr   format_secondary_textZget_message_areaZProgressBarr"  r  _progress_barr   _installdialog_responseshow_alldo_installdriverpackagerD   re   )
r  driverZinstall_infor4   r  r  fmtZ
dialogareapbarretr(   r   installdriverpackageZ"NewPrinterGUI.installdriverpackage  sb   66?F#F#W%&'$.!//8M8M7;QU69oo6J6J9<9O9O69	; 	1115E3FG((99;
 t		 -1)##Z1M1MN$$' **D>$$'''*"&D
r   c           
     s&   \        R \        V4      : R\        V4      : R\        V4      : 24       \        P                  P	                  4       pRVR&   V'       d   RWV.pMRW.p\        R\        V4      ,           4       Rp \
        P                  ! WTR\
        P                  \
        P                  R7      V n	        V P                  P                  V P                  P                  rR	p	V P                  P                  p
V P                  P                  4       Ef-   VP                  4       P!                  4       p\#        V4      ^ 8  d   VR
8X  d   Rp	MVP%                  R4      '       d^    \'        VR,          4      pV^ 8  d   V
P)                  V^d,          4       MTV
P+                  V) ^d,          4       V
P-                  4        M*V P.                  P1                  VP3                  R4      4       \4        P6                  ! 4       '       d   \4        P8                  ! 4        K2  V'       d   EK0  \:        P<                  ! R4       EKI  V P                  P>                  ^ 8w  d   V	'       g   R	pT'       g   . T n        T#     L; i   R	p L; i)zInstalling driver: z; Repo: z
; Key ID: CLC_ALLzinstall-printerdriverzRunning command: T)env	close_fdsstdinstdoutFdones   Pr  NNrM   g?) rQ   r   r   environcopy
subprocessPopenDEVNULLPIPEpr  stderrr   r  ZpollZreadliner\   lenrP   ZfloatZset_fractionZset_pulse_stepZpulser   r    rW   r   r;   r<   timeZsleep
returncode)r  r4   r  r  new_environrB  r  r  r  r  r  lineZ
percentages   &&&&         r   r  Z%NewPrinterGUI.do_installdriverpackage  s   $K$K%L" 	# jjoo' #H+T?D+T8D'$t*45$	%%t-7-?-?.8oo?DF
 !%tvv}}VD&&44D&&++-')//1IMv~#..!).tBxJ)Q $ 1 1*S. A $ 3 3ZKO D $

 33::4;;w;OP((++&&)tJJ$vv  A%d
 *,D'
#! 	CsD   C)J
 11J "J
 #)J AJ
 J
 4;J
 0J
 JJ
 
Jc                s   VP                  R / 4      p\        VP                  4       4      p\        V4      ^ 8X  d   \	        R4       R# \        V4      ^8  d   \	        R\        V4      ,          4       R# W#^ ,          ,          p\        V4      ^8w  d   \	        R4       R# \        VP                  4       4      ^ ,          pRpVP                  R4      '       d   VP                  R4      ^ ,          pMMVP                  R4      '       d%   R	P                  VP                  R	4      ^ R 4      pM\        R
V,           4      hRpRW$,          9  d3   \        P                  '       d   V^ ,          R9  d   \	        R4       R# MQ\        W$,          R,          4      p\        P                  '       d$   V^ ,          R9  d   V'       g   \	        R4       R# W$,          P                  R/ 4      P                  V P                  4      pV'       g?   \	        RV P                  : R\        W$,          P                  R/ 4      4      : 24       R# RVRVRV/# )packageszNo packages for driverNzMReturned more than one matching architecture, please report this as a bug: %sz=Returned more than one package, this is currently not handledr   z.debr   z.rpmr'  zUnknown package type: Zfingerprintz?Not installing driver as it does not have a GPG fingerprint URLzANot installing driver as it does not have a valid GPG fingerprintZrepositorieszLocal package system z not found in r4   r  r  i)ZallZnoarch)r   rJ   r  r  rQ   r   endswithrj  join
ValueErrorr   ZDOWNLOADABLE_PKG_ONLYSIGNEDrc   r   )r  r  ZpkgsZarchesZpkgr4   r  r     &&      r   r  Z(NewPrinterGUI._getDriverInstallationInfo   s   zz*b)diik"v;!/0v;?fimouivvw1It9>VW499;"<<99S>!$D\\&!!88CIIcN1R01D5;<< 	)111fQiGX6X\],TY}-EFE111fQiGX6Xaf^_ y}}^R044T5J5JK--dimmNB?@B C  vtWe==r   c                :    V P                   P                  4        R # r9   )r  Z	terminater  dialogr  r   r   r  Z%NewPrinterGUI._installdialog_response1  s    r   c                s*	   V P                   P                  4       p\        R V,          4       RpV P                  R8X  g4   V P                  R8X  g#   V P                  R8X  g   V P                  R8X  d$   V P	                  V4      pW@P
                  8X  d   RpV'       g   \        R4       R# V P                  4       pWUP                  V4      V,           ,          pRp VP                  V P                  4      R8  d   W`P                  8H  ;'       d    V^ 8  p\        R	T,          4       T'       d   T P                  4       T n        RT n        T P                  f   R# \        T P                  \        P                   4      '       d   T P#                  4        M)T P                  pRT n        T P#                  4        Yn        T P                  '       g/   Y`P                  8X  d   YUP                  T4      ^,           ,          pY`P                  8X  d8   T P                  '       g&   T^ 8  d   YUP                  T4      ^,
          ,          p\        R
T,          4       T^ 8  d!   Y`P$                  8X  d   T P'                  4        T^ 8  Ed   Y`P(                  8X  Ed   Rp	Rp
 T P*                  P,                  '       d[   T P*                  P.                  R9   g@   T P*                  P0                  R,          : RT P*                  P0                  R,          : 2p	 T	f   \        T P                  \        P                   4      '       dy   T P                  P5                  R4      P6                  p\8        P:                  P=                  T4      w  rT'       d   T'       d   T: RT: 2p	MT'       g	   T'       d	   T: T: 2p	T	'       d   T	p
MRp	T P?                  T	4      p	T P@                  PC                  T	4       T
'       d   T PD                  PC                  T
4       T P                   PG                  T4       T PI                  4        R#   \         d     Y`P                  8H  ;'       d    T^ 8  p ELWi ; i   \3        4         ELl; i   \3        4         L; i)zNext clicked on page %dTr6   r0  r   r1  Fz9Interrupting execution of nextNPTab(): Operations pendingNzWill fetch ppd? %dzWill advance to page %dMFGrO   MDLZ	modelNamer   )rr   rs   ri  httphttpsrl   )%ry   r|  rQ   r  _handlePrinterInstallationModeINSTALL_RESULT_OPS_PENDING_getPagesOrderForDialogModeindex
PAGE_APPLYr  PAGE_INSTALLABLE_OPTIONSgetNPPPDr   r   rI   r8  PPDfillNPInstallableOptionsra  fillDownloadableDriversrV  r   rw  r  id_dictr=   findAttrvaluerC  r:  ppdMakeModelSplitr*  r~   rF  r   rU  rN  )r  r\  page_nrZ
keep_goingZinstall_resultorderZnext_page_nrZ	fetch_ppdr   r4   ZdescrZmnamemaker/      &&            r   r`  ZNewPrinterGUI.nextNPTab4  s   %%668-78
y(D,<,<@R,R%'4+;+;?P+P!@@$GN!@!@@ #
ST003[[1$67 		T{{DOO,r1(OO;II		 	(945}}DH',D$xx $((DHH----/ hh--/+++#@#@@#(\)B1)D#EL 888,,, \!:1!<=L-<=19)B)BB((+19)C)CCDE%KKNNN(( -K K&*kk&9&9%&@&@&*kk&9&9%&@BD
	%<J$(($C$C HH--{;AAE"-"2"2"D"De"LKD*.6)-u5  &&-DNN##T*%%..6,,\:Q  	T$(E(EESS$RS)I	TZ%!$%!$sV   4Q Q Q2 ;AQ2 BR 	R $R ,R 4R Q/%Q/.Q/2RRc                s
   . pV P                   R 8X  d&   V P                  V P                  V P                  .pV# V P                   R8X  d   V P                  .pV# V P                   R8X  Ed&   V P
                  '       d   V P                  V P                  .pV# V P                  '       d   V P                  P                  4       '       g   V P                  '       d1   V P                  V P                  V P                  V P                  .pV# V P                  V P                  V P                  V P                  V P                  V P                  .p V# V P                  '       dF   V P                  P                  4       '       g&   V P                  V P                  V P                  .pV# V P                  P                  4       '       d<   V P                  V P                  V P                  V P                  V P                  .pV# V P                  P                  4       '       d1   V P                  V P                  V P                  V P                  .pV# V P                  V P                  V P                  V P                  V P                  .p V# V P                   R8X  d   V P                  P                  4       '       d1   V P                  V P                  V P                  V P                  .pV# V P                  P                  4       '       d&   V P                  V P                  V P                  .pV# V P                  V P                  V P                  V P                  .p V# V P                   R8X  d   V P                  .pV# V P
                  '       d   V P                  .pV# V P                  '       d   V P                  P                  4       '       gt   V P                  '       d&   V P                  V P                  V P                  .pV# V P                  V P                  V P                  V P                  V P                  .p V# V P                  '       d;   V P                  P                  4       '       g   V P                  V P                  .pV# V P                  P                  4       '       d1   V P                  V P                  V P                  V P                  .pV# V P                  P                  4       '       d&   V P                  V P                  V P                  .pV# V P                  V P                  V P                  V P                  .pV# )r/  r1  r6   r   r   )r  rV  PAGE_CHOOSE_CLASS_MEMBERSr  ra  r   rX  r   r   
get_activer   r  r^  PAGE_CHOOSE_DRIVER_FROM_DBr   r   )r  r  r   r   r  Z)NewPrinterGUI._getPagesOrderForDialogMode  s*   w&**..ET K !22))EH C *###++..~ w ///99DDFF(((//115522	Ep a //1177775522Eb S '''99DDFF++11..N E $$//11++333311..B u **,,++3311..	r a ++33--11..b U &""--//3333OO11	P E **,,33OO11B s 33--OO11	t i )''Ef _ ###..\ W ///99DDFF(((115522EP C 1177775522ED 7 '''99DDFF11..2 + $$//11333311..	(  **,,3311..  33--11..	 r   c                s   \        V P                  4       V P                  P                  4       pV P                  P                  4       pV P                  pW P
                  8X  g   W P                  8X  d   V^ 8  g(   W P                  8X  g   W P                  8X  d   V^ 8X  d   V P                  W!4      pW P                  8X  d   V P                  P                  '       gq    V P                  P                  4       P                  4       w  rEVP                  V^ 4      ^ ,          pV P!                  V4      pV P"                  P%                  V4       \)        V P                  4       V#    \'        4         L%; ir*   )rA   rx   ry   r|  INSTALL_RESULT_DONErX  ra  r^  _handlePrinterInstallationStager  r   rw  r   r   get_selectedr   r*  r~   rF  r=   r?   )r  r\  r  r0   r/   r'   r4      &&     r   r  Z,NewPrinterGUI._handlePrinterInstallationMode(  s(   d##$%%669%%669 ))000222q888222	 997IF555;;>>>)"&//"?"?"B".,/  E 99T1-a0D..5DNN++T2 	t$$%	)%(s   "A/E( (E6c                s   V P                   R 8w  dg   V P                  P                  pV'       dI   VP                  R4      '       d2   \	        VR,          R7      P                  4       pV P                  4        WP                  8X  g   WP                  8X  d   V P                  X4       M1WP                  8X  d"   V P                  R8X  d   V P                  4        RpV P                  '       d   V P                   R8X  d   V P                   R 8w  d   V P                  P                  pV'       g   V P                  pV'       g   RpV P                   f0   V P                   R 8w  d   V P#                  VX4       V P$                  # RV n        WP                  8X  g   WP                  8X  d   V P'                  4        V P)                  WAV4      # )r1  rv      NNr   FNr   )r  r   r   rP   r	   Zsanitize_uri_installSMBBackendIfNeededrX  r^  _selectDeviceForInstallationra  r   _handleDriverInstallationr   rw  r4  r:  _loadPPDsForDevicer  _installHPScannerFilesIfNeeded_installPrinterFromDeviceID)r  r  r\  r   r4  s   &&&  r   r  Z-NewPrinterGUI._handlePrinterInstallationStageK  s^   00++//Cs~~u--#b'*77://2---<[<[1[--s3111d6J6Je6S**-###t'7'75'@#44

yy T%5%59J%J''4 666$---<[<[1[//2//FFr   c                s   V P                   R 8X  d   V P                  '       g   V P                  R8X  g   V P                  ^ ,          R8X  dd   \        P                  ! R\        P
                  4      '       g7   \        R4        \        P                  ! 4       pVP                  ^ ^ R4       R# R# R# R# R#    \        4         R# ; i)F	localhostr(  z/usr/lib/cups/backend/smbz$No smb backend so attempting installzsamba-clientN)r   r   r5  r   accessZF_OKrQ   installpackage
PackageKitInstallPackageNamer=   r  pkr   r   r  Z(NewPrinterGUI._installSMBBackendIfNeededm  s      E)$2P2P2P

k)TZZ]c-A999277CC>?%#..1%%q!^< D .B 3Q)%!$s   (B6 6Cc                s
   V P                  4        V P                  4       V P                  n        V P                  '       d2   V P                  P                  4        R V n        V P                  4        V P                  '       d2   V P                  P                  4        R V n        V P                  4        V P                  P                  '       g,   V P                  P                  R9   d   V P                  4        R V n        \        P                  ! RV4      pV'       Ed   VP                  4       p\!        V^,          4      ^ 8  d   \#        V^,          R,          4      pMRp \%        R4       \&        P(                  P+                  V^ ,          V4      pVP-                  RRV^,          ,          4       VP/                  4       pVP0                  ^8X  d   V^,          V n        VP3                  4       p\4        P6                  ! 4       ;_uu_ 4       pVP9                  V4       VP;                  4         \<        P>                  ! VP@                  4      p	 R R R 4        \<        PH                  p
\<        PJ                  ! T^ ,          TT
R7      pR	R
.pTPM                  TTR7      pTPO                  R	R4      pTPO                  R
R4      p\!        T4      ^ 8  d   T PP                  PS                  T4       \!        T4      ^ 8  d   YP                  n*        R # R # VPY                  R4      '       g   VPY                  R4      '       dT   VP[                  R4      R8w  d<   V P                  P\                  '       d   V P                  P\                  V n        R # R # R # R #   \<        PB                  \D        3 d    \G        R4      hi ; i  + '       g   i     ELy; i    EL; i  \D         d     R #  \W        4         R # ; i)Nz"ipp://(\S+?)(:\d+|)/printers/(\S+)r  iw  z$Download ppd file from remote serverZGETz/printers/%s.ppdzServer's ppd file is corrupted.)r,  portr-  zprinter-infozprinter-location)r   Zrequested_attributesr   dnssd:mdns:/cupsrh  r   )/r_  getDeviceURIr   r   r9  re   r  r<  r  rw  r  getNetworkPrinterMakeModelr   rY   rZ   groupsr  intrQ   r  ZclientZHTTPConnectionrR   ZgetresponserU   rV   tempfileNamedTemporaryFilewriteflushr8  r  r4   rE  r>  ZIOErrorZHTTP_ENCRYPT_IF_REQUESTEDr@  ZgetPrinterAttributesr   r   rF  locationr=   rP   findinfo)r  r   resresgr  ry  r_   
ppdcontenttmpfr   r-  ZcZrZattrsr  r  s   &&              r   r  Z*NewPrinterGUI._selectDeviceForInstallationz  s   %%(++. !!!""**-%)D"!!$&&)"&D!!$KK 88 ++.  $ii>D3::<DDG}q DGBK(AB{{11$q'4@U$6a$@A'');;#%+/7D(!YY[
0033tJJz*JJLI"hhtyy1	 4%!;;
OO$q'*.0:< $%78..CEF / Hyy."5 99&8"=:>))22D9>A%+3KK( & ~~x((CNN7,C,C'"b(T[[-=-=-=#';;#3#3D  .>( -D7 !MM<8 I%&GHHI 433(   %!$sP   (B.O "O
9 N O #B6O&  'OO

O	O O O#&P4Pc                s`   V P                   pVP                  4       P                  4       w  r#R pVe   VP                  V^4      pVe   V^ 8X  g   RV9  d   R # V P	                  V4      pV'       d   \        V P                  4      ^ 8X  d   R # R V n        V P                  R8w  d   V P                  P                  '       gk   V P                  P                  '       d   V P                  P                  R8X  d2   V P                  '       d   V P                  V P                  n        R # R # R # R # R # Nr  r1  Unknownr   r   r  	get_valuer  r  r   r:  r  r   rw  rx  r   )r  r.   r/   r'   r  r0   rb   r   r  Z'NewPrinterGUI._handleDriverInstallation  s    //,,/<<?__dA.F>Vq[Jf,D **F3T889Q>
 	 11;;>>>;;---1K1Ky1X222)-)M)MDKK& 3 2Y " 2r   c                s   \        V P                  R 4      '       d   V P                  P                  '       d   \        P                  ! R\        P
                  4      '       gd   \        P                  ! R\        P
                  4      '       g7   \        R4        \        P                  ! 4       pVP                  ^ ^ R4       R# R# R# R# R#     R# ; i)hp_scannablez/etc/sane.d/dll.d/hpaioz/etc/sane.d/dll.d/hplipz+No HPLIP sane backend so attempting installzlibsane-hpaioN)
hasattrr   r  r   r  ZR_OKrQ   r  r  r  r  r   r   r  Z,NewPrinterGUI._installHPScannerFilesIfNeeded  s    T[[.11dkk6N6N6NII8"''BBII8"''BB - .#..1%%q!_= C C 7O1s   (C Cc                s    \        R 4       \        P                  ! VVV P                  V P                  V P
                  R7      pW0n        VP                  RV P                  4       VP                  4        R# )znextNPTab: need PPDs loaded)	device_idrO  r  r,  r-  finishedN)	rQ   r   Z
PPDsLoaderrx   r5  r6  r   r}  run)r  r4  r   r  r  r   r  Z NewPrinterGUI._loadPPDsForDevice  s^    12!!U.1*.*?*?(,

.2.>.>	@
 			:d>>?	r   c                s   R p. V n          V P                  R8X  d   RpRpEMV P                  '       dS   V P                  f	   RpW@n        V P                  pV P	                  V4      pV P
                  P                  V4       RpEMV P                  P                  '       gA   V P                  P                  '       d   V P                  P                  R8w  g
   V'       Ed   V P                  P                  '       d   V P                  P                  pMV'       d   \        P                  ! V4      pMa/ p\        P                  P                  V P                  P                  4      w  VR&   VR&   R	VR
&   . VR&   RVR,          : RVR,          : R2pV P                  P                  VR,          VR,          VR
,          VR,          V P                  P                   V P                  P                  4      p\#        R\%        V4      ,          4       V P                  P'                  \)        VP+                  4       4      V P,                  WxR7      p	\#        R\%        V	4      ,          4       Wn         V	^ ,          pW,          pEMV P                  R8X  Ed%   V P.                  '       Ed   V P.                  P1                  R4      p
V
'       g   V P.                  P1                  R4      p
V
'       d   V
P2                  '       d   V
P2                  pVP5                  R4      '       d   VR R p\        P                  P                  V4      pVw  rV P                  P7                  W4      pVP9                  4        F)  w  pp\;        VP=                  R4      4      V8X  g   K'  Tp M	  V'       d   RpM_RpW@n        RpMTV P                  R8X  d   RpW@n        RpM8V P                  P?                  RRR. V P                  P                   4      w  rTRp V'       d7   V P                  '       d   V P                  R8X  d   V PC                  WXW#4      # V PD                  #    \A        4         LX; i)Nr1  downloadZgenericrawexactr	  r  r  r   DESZCMDMFG:;MDL:;zSuitable PPDs found: %s)r4  fitzPPDs in priority order: %sr   ZNickNameZ	ModelName (recommended)ppd-make-and-modelGenericZPrinterzGeneric Printeri)#id_matched_ppdnamesr  r   r   r*  r~   rF  r   rw  rx  r  rC  parseDeviceIDr:  r  ZgetPPDNamesFromDeviceIDr   rQ   r   orderPPDNamesByPreferencerJ   r  r   r3  r  r  r  getInfoFromModelitemsrL   r   ZgetPPDNameFromDeviceIDr=    _installPrinterOrSearchForDriverr  )r  r4  r  r\  ppdnamerU   r4   r  r  ZppdnamelistZattrr  Zmfgmdlr  r/   r:  r   r     &&&&              r   r  Z)NewPrinterGUI._installPrinterFromDeviceID  s   #% Y	!#44$"%%% 88##G&H++**D1''. ++...;;---;;--:%;;>>>"kk11G)77?G G'2'7'7**DKK,F,FG%WU^U^%'GEN%'GEN0707@E ii++WU^-4U^-4U^-4U^-1[[__-1[[-G-GI  5S	AB"ii--tCHHK/@/3/J/J5< . G  84;LLM+6(%a.""e+}}--j9==11+>DDJJJ JJE~~'788 %ds(--??GF$*MT  9955tCD%)ZZ]	T&(+-A(BD!" '*G! &3 $F#G&H&F!!U*" $(II**I,5,=,.,0KKOO	= " # %%%)9)9U)B88%&RY`` '''	! s~   Q Q AQ Q "Q >#Q "Q >Q E(Q $Q ,"Q "Q 2Q "Q 'A5Q !Q /Q 2
Q =Q 7Q Q)c           	     s    VR 8w  dr   V P                   P                  V4      p\        VR,          4      p\        P                   P	                  V4      w  rWn        Wn        W n        V P                  W4       VR8X  g   VR8X  d.   V P                  R8w  d   RV n
        V^ 8X  d   V P                  pEMRV n
        V P                  R8w  Ed   V P                  R8X  Ed   V'       Ed   \        V4      ^ 8  Edp   VP                  R4      ^ 8  EgY   VP                  R4      ^ 8  EgB   VP                  R	4      ^ 8  Eg+   VP                  R
4      ^ 8  Eg   VP                  R4      ^ 8  Eg   VP                  R4      ^ 8  Eg   VP                  R4      ^ 8  Eg   VP                  R4      ^ 8  Eg   \        R4       \        RV,          4       RV n        RV n        \#        R4      p
\$        P&                  ! V P(                  RR\$        P*                  P,                  \$        P.                  P0                  V
R7      V n        V P2                  P5                  \#        R4      4       \7        4       V n        V P2                  P;                  RV P<                  4       V P2                  P?                  4        . V n         V P@                  PC                  V P8                  P;                  RV PD                  4      4       V P@                  PC                  V P8                  P;                  RV PF                  4      4       RV n$        V P8                  PK                  V4       V PL                  # V P                  R8X  g4   V P                  R8w  d3   V PP                  '       g!   W@PR                  8w  d   V PU                  4        V PV                  #    \O        4         Ln; i)r  r  r  z	exact-cmdr   TFzMFG:generic;zMFG:Generic;zMFG:unknownzMFG:UnknownzMDL:unknownzMDL:UnknownzMFG:;zMDL:;z7nextNPTab: No exact driver match, querying OpenPrintingznextNPTab: Searching for "%s"	Searchingr  r  r  Zmessage_typer  r   zSearching for driversr  r  errorr1  ),r:  getInfoFromPPDNamerL   rC  r  rs  rt  ru  fillDriverListr  r   r  r   r  r  rQ   _searchdialog_canceledr   r   r  rx   r  r  r  r  r   r  r   r   r   _searchdialog_responser  r   r    opreq_id_search_doneopreq_id_search_erroropreq_user_searchsearchPrintersr  r=   r   ra  fillMakeListr  )r  r4  r"  rU   r  r\  ppddictZ
make_modelr  r/   r  s   &&&&&&     r   r!  Z.NewPrinterGUI._installPrinterOrSearchForDrivera  s#   D	!*$))66@'1E)FG
$$66
C !%"'#* ##D07"f&;  E)(,%19";;G(-%$$-22e;Ec%j1nN3q8N3q8M2a7M2a7M2a7M2a7G,1G,1  YZ ?% GH59D227D/K.C),):):#44",0%(__%9%9 # 6 6 *"D& &&<<124 "5!7DJ&&.."D$?$?A&&//2*,D'''..

**& 5578 ''..

**# 6689 .3D*JJ--u5  ::: %!!%66)))g9R9R.R '''	! s   B1O	 53O	 )I?O	 	Oc                s:   V P                   P                  R 4       V P                  P                  \	        R4      4       . V n        R V n        RV n        RV n        \        V P                  4       \        P                  ! V P                  P                  4       R# )Tr.  FN)r   r  r   rF  r   r   r   r   r   r?   rx   r   idle_addr   r  r  r   r   r*  Z$NewPrinterGUI._searchdialog_response  sv     	**88$?00991X;G&(#)-&(-%$)!t$$% 	tzz(()r   c                s,   V P                    F  pVP                  V4       K  	  \        P                  ! 4         R V n        RV n         RV n        V P                  P                  4        V P                  P                  4        RV n        \        V4      ^8  dQ   \        V P                  4       R V n        V P                  R8X  d   V P                  R4       MV P                  4        MW n        W0n        RV n         V P                  P%                  4        V P'                  4        V P)                  4       '       gQ   \        V P                  4       R V n        V P                  R8X  d   V P                  R4       MFV P                  4        M5V P                  R8X  d   V P                  ^ R7       MV P                  4         \        P,                  ! 4        R#    \+        4        T P                  4         L5; i  \        P,                  ! 4        i ; i)FNr1  Tr[  )r   r  r   threads_enterr-  r   r   rD   re   r  r?   rx   r   r  r  r`  r   downloadable_driversr  rN  r  r=   threads_leave)r  r   r5   driversr  s   &&&& r   r+  Z"NewPrinterGUI.opreq_id_search_done  s   **Gg& + 	,	!%*D""&DDJ##&&&)!%D H~!t,,-05-##'88$$T*NN%-5*,3)04-&))..0%%'7799t4458=5++/@@ ,,T2 NN-++/@@ NN1N5 NN-  &%(NN%  sI   CG< ?A>G =G< >G G< #G 2G< 3G G< G97G< <Hc                    \        R V\        V4      3,          4       V P                  V\        4       \	        4       4       R# z$OpenPrinting request failed (%d): %sN)rQ   r   r+  rJ   dictr  r   rU   err   &&&&r   r,  Z#NewPrinterGUI.opreq_id_search_error  s9    :f>BCj>J J 	K!!5$&$&9r   c                s\   V P                   pVP                  4       P                  4       w  r#R pVe   VP                  V^4      pVe   V^ 8X  g   RV9  d   R # V P	                  V4      '       d   \        V P                  4      ^ 8:  d   R # R V n        V P                  R8w  d   V P                  P                  '       gk   V P                  P                  '       d   V P                  P                  R8X  d2   V P                  '       d   V P                  V P                  n        R # R # R # R # R # r  r
  )r  r.   r/   r'   r  s   &    r   &_installSelectedDriverFromOpenPrintingZ4NewPrinterGUI._installSelectedDriverFromOpenPrinting  s    //,,/<<?__dA.FNfkZv-E ((&11D//0A5 	00KKNNN[[///++44488 * 5 # 1r   c                s   V P                   P                  4       pV P                  R 8X  d   V P                  P	                  4        V P
                  P	                  4        V P                  P                  4         V P                  4       p\        V4      pV P                  P                  V4       R# V P                  R8X  Edv   WP                  8X  d   V P                  '       gB   \        R4       V P
                  P	                  4        V P                  P                  4        R# V P
                  P                  4        V P                  P	                  4        R# WP                  8X  d7   V P
                  P	                  4        V P                  P                  4        R# V P
                  P                  4        V P                  P	                  4        WP                   8X  Ed8   V P                  P	                  4        V P
                  P                  4        RpV P"                  P%                  4       '       dM   V P&                  pVP)                  4       pV'       d)   VP+                  4       P-                  V^4      '       d   RpV P
                  P                  \/        V P0                  P%                  4       ;'       d,    V P2                  P5                  4       ^ ,          RJ;'       g%    V P6                  P9                  4       ;'       g    T4      4       R# V P                  P                  4        V P                  R8X  d|   V P                  P	                  4        V P
                  P	                  4        V P                  P                  4        V P;                  4       pV P                  P                  V4       R# WP<                  8X  dU   Rp V P                  4       p\        V4      pT P
                  P                  T4       T P                  P	                  4        MV P                  P                  4        V P
                  P                  4        V P                  P	                  4        WP@                  8X  EdD   V P                  P                  4        V P                  R8X  g   V P                  R8X  d|   V P
                  P	                  4        V P                  P                  4        V P                  P                  \C        V PD                  V PF                  PI                  4       4      4       V P                  R	8X  d   V P                  P	                  4        V P                  R8X  dQ   V PJ                  '       g%   V PL                  '       d-   V P                  '       g   V P                  P	                  4        WP                   8X  Ed   RpV P"                  P%                  4       '       dM   V P&                  pVP)                  4       pV'       d)   VP+                  4       P-                  V^4      '       d   RpV P
                  P                  \/        V P0                  P%                  4       ;'       g%    V P6                  P9                  4       ;'       g    T4      4       V P                  R8X  d   V P                  P	                  4        WPN                  8X  dO   V PP                  PS                  4       PU                  4       w  rV P
                  P                  \/        V4      4       WPV                  8X  dl   V P
                  P	                  4        V P                  P                  4        V P                  P                  \/        \Y        V PZ                  4      4      4       WP                  8X  d>   V P                  R8X  d-   V PL                  '       d   V P                  P	                  4        WP\                  8X  d.   V P;                  4       pV P
                  P                  V4       R# R#   \         d    Rp ELi ; i   \?        4         ELr; i)
r   FNr   zNo installable optionsTr1  r6   r0  r/  )/ry   r|  r  rz   rD   r{   r|   r  r  r   AttributeErrorr  r  r   rQ   r  r^  r   r  r   get_active_iterr   r  r&  r   r   
get_cursorr   get_filename_is_driver_license_acceptedrX  r=   rV  r8   r5   r~   get_textr   r   r  r   r   r  r  r1   r   ra  )	r  nrr   ZvalidZdownloadable_selectedr  r'   Zacceptedr/   s	   &        r   rN  ZNewPrinterGUI.setNPButtons  sL     113x'NN!""$OO  "''*&, OO))51u$__$///  89%%**-OO((+  %%**-OO((+444!!&&($$&!!&&($$&444##%!!&&((-%66AADD#HHH#336D 2 2 5 ? ?q I I04-!!//,,779 D D224Q7tC. .++88:. . .	1/ 0
 ##%00NN!""$OO  "779HOO))(3 (((E%''*&, ++E2NN"NN! +++NN!9,$$(::!!&&($$&--t~~/F/F/HIK7* ##&#55)))///"&":":":##&000$)!22==@@DD//2H..1;;T1EE,0)++D##..0 & &##002& &%-' ( #55##%000**88:GGIKE++DJ7///""$OO  "OO))+D,<,<=>@...#55)))##&***779H++H5 +k " x%!$s   ;a a aaa&c                sP   V P                   P                  4       pWP                  8X  d   V P                  P	                  4       # V P
                  pVP                  4       P                  4       w  r4V'       g,   VP                  4       w  rVV'       d   VP                  V4      pVR J# r9   )
r   r|  rX  r   r  r   r   r  r?  r   )r  Zcurrent_pager.   r/   r'   r&   r  s   &      r   rA  Z)NewPrinterGUI._is_driver_license_accepted  s    >>OOQ22200;;>>//,,/<<?#..0LD~~t,4r   c                s   VP                  4       pTpVP                  R R4      pVP                  RR4      pVP                  RR4      pW#8w  d   VP                  V4       V P                  R8X  d2   V P                  P                  \        V P                  V4      4       R# V P                  P                  \        V P                  V4      4       R# )r(  r   r)  rO   r6   N)	rB  r]   rF  r  r|   r  r8   r5   r{   )r  rE   r   new_texts   &&  r   on_entNPName_changedZ"NewPrinterGUI.on_entNPName_changed  s     ##C,##C,##C,>OOH%y(OO))DMM846 ++DMM846r   c                s  a a \        R 4       S P                  4        . ROpS P                  pVR8X  d.   VV 3R lp\        P                  ! S P
                  VVVR7       R# VV 3R lp\        P                  ! S P
                  VVVR7       R# )fetchDevicesFc                 (   < SP                  WS4      # r9   )local_devices_replyrK   r   current_urir     &&r   r   ,NewPrinterGUI.fetchDevices.<locals>.<lambda>  s    !%!9!91;F"Hr   )Zexclude_schemesrf  rg  c                 rG  r9   )network_devices_replyrI  rK  r   r   rL    s    !%!;!;Q=H"Jr   re  N)rq   rc  
driverlessbjnprl   )rQ   r  error_getting_devicesrC  rn  r9  )r  rw   rJ  Znetwork_schemesrg  rf  s   f&f   r   rF  ZNewPrinterGUI.fetchDevices  s    N#  O22eHM ""D$:$:4C2?2?A
JM ""D$:$:4C2?2?Ar   c                s    \        R \        V4      ,          4       V P                  4        V P                  P	                  4        V P                  P                  4        RV n        R# )zError fetching devices: %sN)rQ   r   r  r9  rv  re   )r  ry  r~  r   r   rP  Z#NewPrinterGUI.error_getting_devices  sL    04:=> --0&&)!%r   c                sn    V P                  4        V P                  R VR7       V P                  W#4       R# )Trw   rJ  N)r  rF  add_devices)r  ry  r0   rJ  r;  r   rH  Z!NewPrinterGUI.local_devices_reply  s3      	4[A 	&.r   c                s,  a a S P                   P                  4        S P                   P                  4        R S n         Rp/ pVP                  4        F$  w  rgVP	                  R4      '       g   K  WuV&   RpK&  	  VP                  4        F  pW& K  	  S P                  VSVR7       \        V4      ^ 8  d>   \        P                  ! V4      pS P                  4        VP                  VV 3R lR7       S P                  4        S P                  4        R # )NTzdnssd://Fno_morec                 s(   < SP                  SV 4      # r9   )dnssd_resolve_reply)devicesrJ  r  s   &r   r   Z5NewPrinterGUI.network_devices_reply.<locals>.<lambda>  s    "&":":K<C#Er   rf  )r9  rv  re   r   rP   r  rR  r  dnssdresolveZDNSSDHostNamesResolverr  Zresolver  check_firewall)	r  ry  r0   rJ  rT  Zneed_resolvingr   r   Zresolvers	   f&&f     r   rM  Z#NewPrinterGUI.network_devices_reply  s    --0&&)!% !<<?KC~~z**&,s# +
 "&&)C * 	&+w?!##::NKH!!$ -E F 	 r   c                sl    V P                  W!R R7       V P                  4        V P                  4        R# )TrS  N)rR  r  rY  )r  rJ  rV  r   r   rU  Z!NewPrinterGUI.dnssd_resolve_reply  s-    '= r   c           	     s   \         P                  P                  4       pR VR&   RVR&   RRRRV,           .p\        VR,           \	        V4      ,           4        \
        P                  ! W2R	\
        P                  \
        P                  \
        P                  R
7      pVP                  4       w  rVRpTP                  4       P                  R4       Ff  pTP                  R4      R8X  d   K  \        P                  ! RT4      p	T	'       d$   T	P                  4       p
 \!        T
^ ,          4      pT^ 8  g   Kf   M	  T^ 8:  d   R# T^8X  d   R# R#     R# ; i   Rp L/; i)r  r  r   ZDISPLAYzhp-infoz-xz-i-drN   T)r  r  r  r  r  N
zfax-typez(\d+)zMFG:HP;MDL:Fax 2;DES:HP Fax 2;zMFG:HP;MDL:Fax;DES:HP Fax;r   )r   r  r  rQ   r   r  r  r  r  communicaterW   rj  r  rY   rZ   r  r  )r  faxurir  rB  r  r  r  Zfaxtyper  r  r  s   &&         r   get_hpfax_device_idZ!NewPrinterGUI.get_hpfax_device_id  s/   jjoo' #H!#I4tf}5FTMDJ./	  $4(2(:(:)3)3:A  !}}/V
 MM$**D1Dyy*%+))Xt,Czz|!!$q'lG !| 2 a<\3/-	! Gs   AE EEEc                s   R RRRV.p\        VR,           \        V4      ,           4        \        P                  ! VR\        P                  \        P
                  \        P
                  R7      pVP                  4       w  rEVP                  ^ 8w  d   R#  TP                  4       P                  4       pTP                  R^4      p\        T4      ^8  d   R# T^,          pTR	8X  d   R# T#     R# ; i)
zhp-queryz-kz	scan-typerZ  rN   Tr  r  r  r  N=Z0)rQ   r   r  r  r  r  r\  r  rW   r\   rj  r  )	r  r   rB  r  r  r  Z	scan_typeZfieldsr  	   &&       r   get_hplip_scan_type_for_uriZ)NewPrinterGUI.get_hplip_scan_type_for_uri&  s    D+tS9C$Jd+,
	  $$(2(:(:)3)3:A  !}}/V||q  ! MM$**-	#q)<!q	C<	s   A(C, ,C1c                s   VR 8X  d   RpMVR8X  d   RpMRpRW1.p\        VR,           \        V4      ,           4       Rp \        P                  ! VR\        P                  \        P
                  \        P
                  R7      pVP                  4       w  rxVP                  ^ 8w  d   R#  TP                  4       P                  4       pT#     R# ; i)	printz-cfaxz-fz
hp-makeurirN   NTr_  )
rQ   r   r  r  r  r  r\  r  rW   r\   )	r  r,  ZmodeZmodrB  r   r  r  r  s	   &&&      r   !get_hplip_uri_for_network_printerZ/NewPrinterGUI.get_hplip_uri_for_network_printer@  s    7?$CU]$Ccc(D4K$t*,-
	  $$(2(:(:)3)3:A  !}}/V||q  ! mm$$'
	s    A(C Cc           	     s
   RpVf   V P                   pVf   VP                  P                  R4      pVR8w  d   V^,          pVP                  VR P                  R4      pVR8X  d   VP                  VR P                  R4      pVR8X  d   VP                  VR P                  R4      pVR8X  d   \        VP                  4      pVP                  WDV,            pV'       Ed   RV.p\	        VR,           \        V4      ,           4       Rp \        P                  ! VR\        P                  \        P                  \        P                  R	7      pVP                  4       w  ryVP                  ^ 8w  d   RpTEeL    TP                  R
4      P                  4       p
\        P                   ! T
4      p\        T4      pT^8  d    TP#                  . RO4       TR,          p^pMT^8  d   TR,          p^pT^8X  d
   Tw  rppppMT^8X  d	   Tw  rpppMT^8X  d   Tw  rrT^8X  dG   \	        R4       \$        P&                  P)                  X4      w  ppRT: RT: RT: RT: R2	Tn        M\	        RX,          4       TTn        \$        P,                  ! TP*                  4      Tn        XTn        XTn        T^8X  d   XTn        W3#     ELX; i  \         d&    TP                  RRR7      P                  4       p
 ELei ; i)z
Try to determine the make and model for the currently selected
network printer, and store this in the data structure for the
printer.
Returns (hostname or None, uri or None).
N://rb  r(  ?z/usr/lib/cups/backend/snmprN   Tr_  rM   z
iso-8859-1Zignore)ZencodingZerrors:Ni   N:Nr  NzNo Device ID from snmp backendr  r  z;DES:rO   r  zGot Device ID: %sr   )r   r   r   r   )r   r   r  r  rQ   r   r  r  r  r  r\  r  rW   r\   ZUnicodeDecodeErrorprobe_printerZwordseprk  rC  r:  r  rw  r  r  rx  r  r  )r  r,  r   r   r  r`   rB  r  r  r  r  Zwordsndevice_classrx  r  r  Zdevice_locationZmkZmd   &&&                 r   r  Z(NewPrinterGUI.getNetworkPrinterMakeModelV  s    >[[F<

'ABwQJJqrN''-7

12 3 3S 9A7

12 3 3S 9A7VZZ 0Azz!aC(40$7Dtd4j01F
$$dd,6,>,>-7__-7__> $%==#3 <<1$!F
 ![!=='288;D
 &--t4Kq5LL-0!"IEAU!"IEA69>7\9o!V(-&\9!V@E=\6  @A*//))>: R>@">@"!FFI  3i ?@ )FI!,!:!:FII!F(6%"6&5FO{a
 * [ "==<=QWWZD[s   A*K
 =K 
K,LLc                s   RV n         \        P                  ! \        \        P
                  \        4      p\        P                  ! R/ R\        R4      /B p\        V4      pV.V n        VP                  RVP                  4       VR.R7      pVP                  R\        R4      RR.R7      pRR	R\        R
4      /p\        P                  ! R/ VB pVP                  VVR,          \        V4      R.R7      p	VP                  Wi. ROR7       RR	R\        R4      /p
\        P                  ! R/ V
B pVP                  VV
R,          \        V4      R.R7      pVP                  W. ROR7       WPn        Wn        W`n        RV n        V P&                  P)                  V4       V P*                  P-                  R4       V P.                  P1                  4        V P&                  P3                  ^ 4      pV P&                  P5                  \        P6                  ! 4       VR4       Wn        RV n        \=        R4       V P?                  4        R# )r  r   device-infoz	Enter URINFr%   zNetwork Printerdevice-classrw   zFind Network PrinterWindows Printer via SAMBAzFetching devicesr   )r   rw   )r   NT)rv   ) r  r   r  r   r   r  r&  rC  rq  r   r
   rV  r    get_infoZinsert_afterdevices_uri_iterdevices_find_nw_iterdevices_network_iterdevices_network_fetchedr   r   r   rF  r   rD   
get_columnr:   TreePathrJ  firewallrQ   start_fetching_devices)r  rJ  r/   ZotherZ	physotherZuri_iternetwork_iterZnetwork_dictrw   find_nw_iterZsmbdev_dictZsmbdevZfind_smb_iterr  r  r   rY  ZNewPrinterGUI.fillDeviceTab  s-   !s&44#% ""I-;)HI"E*	!{<<I,>,>,A,5u,>< ?||T2C0D040507| 8 (&*@(AD$$@<@||\*6}*E*8'*BE*K $ L 	L<LM&	%q)D'EH##:k:l*5m*D*8&*A5*J % K 	L=MN ($0!$0!',$""E*""B'!!$!!,,a0##S\\^VUC&&'##&r   c           
     sL   V P                   pR p VP                  4       pVP                  4       pT;'       d    Tp\        R,           pV'       g@   VR\	        R4      ,           R,           ,          pVP                  \        P                  4       V'       g@   VR\	        R4      ,           R,           ,          pVP                  \        P                  4       V'       Eg   \        RV,          4       \        P                  ! V P                  R R \        P                  P                  \        P                  P                   \	        R4      R7      pVP#                  V4       VP%                  \	        R	4      \        P&                  P(                  \	        R4      \        P&                  P*                  4       VP-                  R
V P.                  4       VP1                  4        T'       d   \        R4       R# R#   \2        P4                  \6        3 d    \9        4         L>i ; i)T

- z%Allow all incoming IPP Browse packetsr[  zAllow all incoming mDNS trafficz,Asking for permission to adjust firewall:
%sAdjust Firewallr%  Do It Laterr  z"Firewall all OK, no changes neededN)rx  Zcheck_ipp_client_allowedZcheck_mdns_allowedTEXT_adjust_firewallr   add_servicefirewallsettingsZIPP_CLIENT_SERVICEZMDNS_SERVICErQ   r   r  rx   r  QUESTIONr  NONEformat_secondary_markupadd_buttonsResponseTypeNOYESr   adjust_firewall_responser  dbusDBusExceptionrX   r=   )r  datafallowedZipp_allowedZmdns_allowedsecondary_textr  r  r   on_firewall_readZNewPrinterGUI.on_firewall_read  s   MM	!447K//2L"33|G1F:N4#$%L#M$N#'$( ) /BBC4#$%F#G$HJN$O P/<<=7K*+ ,**43H3H26D9<9Q9Q47OO4H4H234E2F	H
 ..?""Am$4c6F6F6I6I$%&7$8#:J:J:N:NP
D,I,IJ <=  ""I. 	! 	!s+   (G; G; AG; AG;  DG; ;%H#"H#c                s   VP                  4        V\        P                  P                  8X  df   V P                  P                  4       pV'       g*   V P                  P                  \        P                  4       V P                  P                  4        \        R 4       \        P                  ! 4       V n        V P                  P                  \        R4      4       V P!                  RR7       R# )z7Fetching network devices after firewall dialog responserd  Trp  N)re   r   r  r  rx  Zcheck_ipp_server_allowedr  r  ZIPP_SERVER_SERVICEr  rQ   rl  r@  r9  rm  r   rF  )r  r  r  Zipp_server_allowedr  r   r  Z&NewPrinterGUI.adjust_firewall_response  s    s''+++!%!G!G!J%))+;+N+NOMM"MN!*!5!5!8//3I1JK4(r   c                s    \         P                  ! 4       V n        V P                  P                  \	        R 4      4       V P                  RV P                  R7       V =R# )rd  FrQ  N)rl  r@  r9  rm  r   rF  rJ  r  r@   r   ry  Z$NewPrinterGUI.start_fetching_devices	  sL    !*!5!5!8//3I1JK5d6F6FGr   c           
     s   V'       d|   W!9   d   VP                  V4      pMcVP                  R R4      V9   d%   VP                  R R4      pVP                  V4      pM(V'       d   \        P                  ! V4      pRVn        MRp\        VP                  4       4      pV F7  pVP                  R8X  g   K  VP                  P                  R R4      Vn        K9  	  R p\        \        Wa4      4      p\        \        V4      ^,
          4       F  p\        V^,           \        V4      4       F  pW,          p	W,          p
V	P                  R8X  g   V
P                  R8X  d   K7  V	P                  V
P                  8X  g   KT  V	P                  '       g
   RV	n        Ko  V
P                  '       g
   RV
n        K  \        V	P                  4      \        V
P                  4      8  d
   RV	n        K  RV
n        K  	  K  	  V Uu. uF  qP                  R9  g   K  VNK  	  pp. pV EF5  p\        RVP                  ,          4       \        VR4      '       d   \        R	VP                  ,          4       \        VR
4      '       d   \        RVP                   ,          4       \#        V4      p\        R\%        V4      ,          4        V P&                  P)                  V4      p\        RV,          4       V P&                  V,          P+                  V4       \        R\%        V4      V\%        V P&                  V,          4      3,          4       \        R4       EK8  	  V P&                  P1                  4        V'       d^   \#        X4      p V P&                  P)                  V4      pV P&                  V,          P+                  V4       V P&                  V,          pMRpV P2                  P5                  4       pV P6                  pV P8                  pV EF  pRp V P&                  P)                  V4      pV P&                  V,          pTP;                  4       pT^ ,          P<                  R8H  pTP?                  4       pY^8X  d   T\A        R4      ,          pTTR.pT'       d   T^ ,          P                  T^ ,          P                  8w  dI   TPC                  TTTR7      pY^8X  d.   TPE                  T4      pT P2                  PG                  TR4       MTP/                  TTR7      pMxTPE                  T4      pTPI                  4       pTPE                  T4      T8w  d.   TPK                  T^4      pTT8  d   MTPM                  T4      pKC  TPC                  RTTR7      pY^8X  g   EK  TPE                  T4      pT P2                  PO                  TRR7       T P2                  PQ                  ^ 4      pT P2                  PS                  TTR4       EK  	  ^ pV'       dz   V PT                  P5                  4       pVPI                  4       p^ pV'       dD   VPK                  V^4      pVVP                  8X  d   TpR# VPM                  V4      pV^,          pKK  R# V PV                  '       g   V P2                  PQ                  ^ 4      pV P2                  PS                  \X        PZ                  ! 4       VR4       V PT                  PQ                  ^ 4      pV PT                  PS                  VVR4       R# R# u upi   \,         dM    T P&                  P/                  T4       TP/                  T4       \        R\%        T4      ,          4        EKg  i ; i  \,         d1    T P&                  P/                  T4       TP/                  T4        ELi ; i  \,         d!    \        R\%        T4      ,          4        EK  i ; i)z:9100r   zCurrent deviceNrr   c                 sj    V P                   R 8X  d
   RV n         V # V P                   R8X  d   RV n         V # )zhp:/no_device_foundro   zhpfax:/no_device_foundrp   r  r   r@   r   replace_genericZ2NewPrinterGUI.add_devices.<locals>.replace_generic!	  s8    zz22!
 M 77$
Mr   deletezAdding device with URI %saddressz   Device address %shostnamez   Device host name %sz   Created physical device %sz)   Physical device %d is the same printerz;   New physical device %s is same as physical device %d: %sz   Joining devicesz0   Physical device %s is a completely new devicezQERROR: Cannot identify new physical device with its entry in the device list (%s)rw   
 (Current)Frm        ?)Z	row_align)	ro   rp   rm   rn   rv   rt   r  rO  r  ).Zpopr]   rC  rq  r  rJ   r3   r  r   ZmapZranger  rw  rQ   r  r  r  r
   r   rV  r  
add_devicer  r    r-   r   r   rt  rs  get_devicesrj  rq  r   insert_beforer   
expand_rowr+   r  r,   scroll_to_cellrv  r:   r   r  r   rw  )r  rV  rJ  rT  Zcurrentr   r  iZjZdevice1Zdevice2rK   Z
newdevicesphysicaldeviceZcurrent_devicer/   rz  r{  Z	newdeviceZdevsrw   r  r%   r'   network_pathphysdevZdevice_select_pathr  Zconnection_select_pathdevs   &&&&                          r   rR  ZNewPrinterGUI.add_devices	  s   %!++k2$$gr2g=)117B?!++k2%,,k:/"w~~'(F{{h&#ZZ//"=
 	 sO56 W)*AAE3=1!*!*;;(*gkkX.E;;'++-#JJJ&.%jjj&.wzz*S'**-==&.&. 2 +  & Bg 7A *A11g B 
F2VZZ?@++1FNNBC,,3fooEF+V4N7$~:NNO
gLL&&7G!KLQ**F3Y!.11d4<<?6KLM N01 ( 	+W5N3LL&&7Q**G4!%a
 "N  **-0000#IFLL&&	2a
 %%(D1g**i7G??%D','vu%C7;;$q',,. ..l47 / 9D /',~~|'D((33\5I !<<3<?D  %~~|<++.nnd+|;#ootQ7G' ??D1D**D$C*@'%*^^T%:"  //1C;> 0 @))44a8  ++-?Oa $d "#''114E''*DAootQ/#'')-.*-Q  %%%%%00!4F''G ((33Q7F**,BFER &SB(  g##^4!!>2NQUVdQeeffg  3##^4!!>23  n	?+ ,sE   >\-\-B\2	A^ ._
2A^	^	7__
&_54_5c                s   \         '       d   R # \        R4        \        P                  ! 4       pVP	                  ^ ^ R4        ^ RIsR s \        R4       R #   \
         d1   p\        R4       \        RP                  T4      4        Rp?R# Rp?ii ; i  \         d1   p\        R4       \        RP                  T4      4        Rp?R# Rp?ii ; i)	Tz3No SMB client library present so attempting installzpython3-smbcz.Error during installation/setup of SMB client.z{}NFzSMB client setup failed.z-SMB client successfully installed and set up.)	r  rQ   r  r  r  r  ZformatpysmbZModuleNotFoundError)r  r  r`   r   r   install_python3_smbc_if_neededZ,NewPrinterGUI.install_python3_smbc_if_needed	  s     ?IJ	**-B!!1a8	 O 	CD  	HIt{{1~&	 # 	23t{{1~&	s/   (A B B"%BBC %CCc                sr   V P                   pVP                  4        \        V P                  4        ! R R4      pV! 4       p\        P
                  P                  Vn        \        R4      Vn	        RVn
        VP                  RV.4       \        P                  ! 4       '       d   \        P                  ! 4        K2  ^ p\        4       '       d   ^
p\        P                   ! V P                  4      p\        P
                  P#                  VVP$                  R7      pRp VP'                  4       ^ 8  d#    VP)                  R4      P+                  4       pK7   TP                  4        T'       ds   T Fl  p
T
P                  \        P
                  P>                  \        P
                  P@                  39   g   KH  TP                  RT
.4      pTP                  T4      pKn  	  \C        T PD                  PG                  4       R	7      pTPI                  4       w  rppp\K        T4      ^ 8  d    ! R
 R4      pT! 4       p\        P
                  P@                  Tn        TTn	        RTn
        TP                  RT.4      pTP                  T4      pTPM                  T4      pT PN                  PQ                  T^ 4       \S        T P                  4       TPU                  4       fG   T P                  PW                  4        \Y        \        R4      \        R4      T PZ                  R7       R# R#   \,         d   pTP/                  T4        Rp?EK,  Rp?ii ; i  \0         dK   pTP2                  w  rT\4        P6                  8w  d   \9        R\;        Y34      ,          4        Rp?ELLRp?i \=        4         EL^; i)zInitialise the SMB tree store.c                       ] tR tRtRtR# ))NewPrinterGUI.browse_smb_hosts.<locals>.Xi	  r   N__name__
__module____qualname____firstlineno____static_attributes__r   r   r   Xr  	  s    r   r  zScanning...r   NdebugZauth_fnsmb://Runtime error: %sr  c                   r  )1NewPrinterGUI.browse_smb_hosts.<locals>.FakeEntryi	  r   Nr  r   r   r   	FakeEntryr  	  s    r   r  zNo Print Sharesz{There were no print shares found.  Please check that the Samba service is marked as trusted in your firewall configuration.r  ).r  r   rA   r   r  smbcPRINTER_SHARE	smbc_typer   r4   commentr    r   r;   r<   get_debuggingAuthContextContextcallbackperform_authenticationopendirgetdentsrX   failedr>  rB  errnoENOENTrQ   r   r=   	WORKGROUPSERVERr	   r   rB  separater  r   r   r  r?   r+   rD   show_info_dialogrx   )r  r  r  Zdummyr  	smbc_authctxentriesr`   r  entryr'   r  Zspecified_urir[   r,  shareuserpasswordr  Ztoplevelr&   s   &                     r   browse_smb_hostsZNewPrinterGUI.browse_smb_hosts	  s   T!!"	 	**22}%
TE7#  ##!E%%t';';<	jj  *3*<*< ! >	!2259)!kk84==@G : 	 ??uzz';';',zz'8'8': : <<w7Dd+A	 ! DNN$;$;$>?/</E/E/H,eT8:>  |H!&!2!2H HM!H<<z2Dd#A >>4(D(($2d""#"*  %%(a 12 !1 2 &*%:%:< +K ! )$$a(() 	AVVFQELL /$-?@	! sB    M 6L) M )M4MM MM N6?N$$N6c                sx    V P                   P                  V4      pV P                   P                  V4      '       * # )z9Don't allow this path to be selected unless it is a leaf.)r  r   iter_has_child)r  r"   r/   r&   Zpath_selectedr  r'   s   &&&&&& r   r	  Z!NewPrinterGUI.smb_select_function
  s.    ~~&&->>00$777r   c                r    VP                  V^ 4      pRpVe   VP                  pVP                  RV4       R# r    r   Nr   )r  r4   set_property)r  r  r  r/   r'   r  r  r     &&&&&&  r   r  Z#NewPrinterGUI.smbbrowser_cell_share
  s6    q)JJE65)r   c                r  r  )r  r  r  )r  r  r  r/   r'   r  r  r  r  r   r  Z%NewPrinterGUI.smbbrowser_cell_comment!
  s6    q)mmG67+r   c                sv   V P                   pVP                  V4      pVP                  V^ 4      pV'       dF   VP                  \        P
                  P                  8X  d   V P                  P                  4        R# VP                  V4      '       d   VP                  V4       R# V P                  WV4       R# )z*Handle double-clicks in the SMB tree view.N)r  r   r  r  r  r  r  r   r   row_expandedcollapse_rowon_tvSMBBrowser_row_expanded)r  viewr&   r  r  r'   r  s   &&&&   r   on_tvSMBBrowser_row_activatedZ+NewPrinterGUI.on_tvSMBBrowser_row_activated(
  s    ~~t$q)U__

(@(@@''*d##t$--t4@r   c                s
   VP                  4       pVP                  V^ 4      pVf   R# VP                  \        P                  P
                  8X  Ed    V P                  '       d   R#  \        T P                  4       RTP                  ,          p^ p\        4       '       d   ^
p\        P                  ! T P                  4      p\        P                  P                  TTP                  R7      p	. p
 TP                  4       ^ 8  d#    T	P                  T4      P!                  4       p
K7   TP5                  T4      '       d&   TP7                  T^ 4      pTP9                  T4       K<  T
 F  pTP                  \        P                  P:                  \        P                  P<                  39   d   TP?                  Y%.4      pTP                  \        P                  P:                  8X  g   K  TP?                  X4      pK  	  TPA                  T^ 4       T =\C        T P                  4       R# VP                  \        P                  P:                  8X  Ed    V P                  '       d   R#  \        T P                  4       RTP                  ,          p^ p\        4       '       d   ^
p\        P                  ! T P                  4      p\        P                  P                  TTP                  R7      p	. p TP                  4       ^ 8  d#    T	P                  T4      P!                  4       pK7   TP5                  T4      '       d&   TP7                  T^ 4      pTP9                  T4       K<  T FU  pTP                  \        P                  P<                  8X  g   K.  TP?                  TT.4      p\/        \1        T4      4       KW  	  TPA                  T^ 4       T =\C        T P                  4       R# R#    ^T n         EL; i  \"         d   pTP%                  T4        Rp?EK1  Rp?ii ; i  \&         dK   pTP(                  w  rT\*        P,                  8w  d   \/        R\1        Y34      ,          4        Rp?ELQRp?i \3        4         ELc; i   ^T n         EL1; i  \"         d   pTP%                  T4        Rp?EK  Rp?ii ; i  \&         d`   pTP(                  w  rT\*        PD                  8w  d2   T\*        PF                  8w  d   \/        R\1        Y34      ,          4        Rp?ELRp?i \3        4         EL; i)z1Handler for expanding a row in the SMB tree view.Nz	smb://%s/r  r  )$r   r  r  r  r  r  expanding_rowrA   r   r4   r  r  r  r  r  r  r  rX   r  r>  rB  r  r  rQ   r   r=   r  Ziter_nth_childr!   r  r  r    r  r?   ZEACCESZEPERM)r  r  r'   r&   r/   r  r   r  r  r  r  r`   r  r  ri  Zsharesr  s   &&&&             r   r  Z*NewPrinterGUI.on_tvSMBBrowser_row_expanded7
  s   !q)=??ejj222
'%%% &
 $&&'

*CE))4+?+?@I**$$E.7.@.@ % BCG$669A=-"%++s"3"<"<"? > &&--(($2a  ??uzz'8'8',zz'?'?'A AdG4A??ejj&7&77a(A ! OOT1%"4''(__

 1 11'%%% &
 $&&'

*CE))4+?+?@I**$$E.7.@.@ % BCF$669A=-!$c!2!;!;!> > &&--(($2a ??ejj&>&>>dUG4Ae-  
 OOT1%"4''(S 2Q'%&" % -!((!,,- E$ 3dQFm CD$!#,'%&" % -!((!,,- E$ekk)9 3dQFm CD$!#s   O2 3P, 	P (P, R 6S R  +S 2	O>P)P$P, $P))P, ,R7?Q<<R	R S+S<S SS UAT00Uc                s    V P                   P                  V4       \        '       d	   V'       g.   V P                   P                  \	        R 4      R,          4       R# R# )z#Verification requires the %s moduleZpysmbcN)r   r  r  r  r   )r  ZonrG   r   set_btnSMBVerify_sensitivityZ*NewPrinterGUI.set_btnSMBVerify_sensitivity
  sL    '',b.. 3> 1?AI1J K ')r   c                s   \         P                  \         P                  ,           R ,           pV P                  W4       VP	                  4       p\        VR7      P                  4       w  rErgpV'       d   V P                  P                  V4       V'       d   V P                  P                  V4       V'       g	   V'       dI   \        WEVR7      P                  4       pVP                  V4       V P                  P                  R4       M:V P                  P	                  4       R8X  d   V P                  P                  R4       V P                  \        V4      4       V P!                  4        R# )z	_-./:%[]@r  r[   r,  r  Tr   N)stringascii_lettersdigitsentry_changedrB  r	   r  r   rF  r   get_urir   r   r   r  r&  rN  )	r  entallowed_charsr   r[   r,  r  r  r  ra  r   on_entSMBURI_changedZ"NewPrinterGUI.on_entSMBURI_changed
  s    ,,V]]:;F3.llo/53/?/H/H/K,e8(($/(((38>FFICLL**40  )),2""--d3))495r   c                sN   V P                   P                  4       pVf   R # VP                  4       w  r4RpV'       dB   VP                  V^ 4      pV'       d(   VP                  \
        P                  P                  8H  pV P                  P                  VR J;'       d    T4       R # )NF)
r   r   r  r  r  r  r  r  r   r  )r  rE   r"   r  r'   is_sharer  r  r   on_tvSMBBrowser_cursor_changedZ,NewPrinterGUI.on_tvSMBBrowser_cursor_changed
  s    %%335	,,.OOT1-E ??ejj.F.FF))$d*:*G*GxHr   c           
     sx    V P                  4       '       g   R# V P                  P                  R4        \        P                  ! 4       pVP
                  '       g   \        P                  ! 4       pVP                  4       p\        R,           pV'       EgN   \        P                  ! V P                  RR\        P                  P                  \        P                  P                  \!        R4      R7      pVR\!        R4      ,           ,          pVP#                  V4       VP%                  \!        R	4      \        P&                  P(                  \!        R4      \        P&                  P*                  4       VP-                  4       pVP/                  4        V\        P&                  P*                  8X  d0   VP1                  \        P2                  4       VP5                  4        T P>                  PA                  4        T PC                  4        R#   \6        P8                  \:        3 d    \=        4         LSi ; i)
<Check whether the needed SMB client library is available andNFr|  Tr~  r%  r}  z*Allow all incoming SMB/CIFS browse packetsr  )"r  r   r  r  	FirewallDrunningSystemConfigFirewallZcheck_samba_client_allowedr  r   r  rx   r  r  r  r  r   r  r  r  r  r  r  re   r  ZSAMBA_CLIENT_SERVICEr  r  r  rX   r=   r   r  r  )r  r  r  r  r  r  r  r  r   on_btnSMBBrowse_clickedZ%NewPrinterGUI.on_btnSMBBrowse_clicked
  s   "2244))%0	! !**-A999$99<225G1F:N7**43H3H26D9<9Q9Q47OO4H4H123D1E	G
 4#$ &6 $7$7 8 ..?""Am$4c6F6F6I6I$%&7$8#:J:J:N:NP!::=!s//333MM#3#H#HIGGJ 	!!#	 ""I. 	! 	!s   &H :H EH %H98H9c                sX   V P                   P                  4       P                  4       w  r#R pV'       dB   VP                  V^ 4      pV'       d(   VP                  \
        P                  P                  8H  pV'       d	   V'       g   V P                  P                  4        R# VP                  V4      pVP                  V4      pVP                  V^ 4      pVP                  V^ 4      p	V'       d   VP                  V^ 4      P                  p
MRp
\        V
V	P                  VP                  R7      P                  4       pV P                  P                  R4       V P                   P                  R4       V P"                  P                  V4       V P                  P                  4        R# )FNr   r  )r   r   r  r  r  r  r  r  r   rD   Ziter_parentr4   r	   r  r   rF  r   r   )r  r  r  r'   r  r  Zparent_iterZdomain_iterr  r,  r[   r   s   &&          r   on_btnSMBBrowseOk_clickedZ'NewPrinterGUI.on_btnSMBBrowseOk_clicked
  s>   ''557DDFOOT1-E ??ejj.F.FF8  %%'''.''5q)Q/OO[!499EEE99!JJ((/
 	 	$$b)$$b)%!!#r   c                r  r9   )r   rD   )r  rE   rB  s   &&*r   on_btnSMBBrowseCancel_clickedZ+NewPrinterGUI.on_btnSMBBrowseCancel_clicked  s    !!#r   c                rB   r9   )r  r  rG   r   on_btnSMBBrowseRefresh_clickedZ,NewPrinterGUI.on_btnSMBBrowseRefresh_clicked	  s    r   c                sX    V P                   P                  VP                  4       4       R # r9   )r   r  r  r  rG   r   on_rbtnSMBAuthSet_toggledZ'NewPrinterGUI.on_rbtnSMBAuthSet_toggled  s    %%f&7&7&9:r   c                s  aaa  V P                  4       '       g   R# V P                  P                  4       p\        VR7      P	                  4       w  or4rVRoRoRpV P
                  P                  4       pV'       d5   V P                  P                  4       oV P                  P                  4       oRp	Rp
\        V P                  4        ^ p\        4       '       d   ^
pV'       d]   VVV3R lp\        P                  P                  WR7      p RVn        VP#                  RV: R	V: 2\$        P&                  R
4      pRp	M\        P(                  ! V P                  SSSR7      p\        P                  P                  VVP*                  R7      pVP-                  4       ^ 8  d/    VP#                  RV: R	V: 2\$        P&                  R
4      pRp	KC  V	'       g   Rp
\=        V P                  4       V	'       d-   \?        \A        R4      \A        R4      V P                  R7       R# V
'       g9   \A        R4      pV'       d   Tp\C        \A        R4      VV P                  R7       R# R#   \          d     ELai ; i  \.         d   pTP1                  T4        Rp?EK  Rp?ii ; i  \2         d:   pTP4                  w  pp\7        R\9        TT34      ,          4       Tp Rp?ELRp?i \;        4         EL; i)r  Nr  r   Fc                 s   < SSS3# r9   r   )ZsvrZshrZwgZunZpwr[   passwdr  s   &&&&&r   do_authZ6NewPrinterGUI.on_btnSMBVerify_clicked.<locals>.do_auth)  s    !400r   r  Tr  r(  i  )Z	workgroupr  r  zError accessing share: %szPrint Share VerifiedzThis print share is accessible.r  z#This print share is not accessible.zPrint Share Inaccessible)"r  r   rB  r	   r  r   r  r   r   rA   rx   r  r  r  r  ZoptionUseKerberosr=  Zopenr   ZO_RDWRr  r  r  rX   r  r>  rB  rQ   r   r=   r?   r  r   show_error_dialog)r  r  r   r,  r  ur  ZreasonZauth_setZ
accessibleZcanceledr  r  r  r  r  r`   r  r   r[   r  r  s   &&                 @@@r   on_btnSMBVerify_clickedZ%NewPrinterGUI.on_btnSMBVerify_clicked  s   "2244nn%%(%+%5%>%>%A"Q&&113&&//2D((114F
d##$*	 E1jj(((G,0C)
 HHtU; ii0!
 "--t/D/D9>486<>	 jj((2;2D2D ) F669A=-HHtU&C&(ii8%)
 "#H 	t$$%a 67 AB%)%:%:< :;Dq!;<d&*&;&;=	 O & ( % -!((!,,-
  	VVFQ3dQFmCDF	 sy   J' '(J' I* +J' A$J' (+I< 	J' J' *I95J' 8I99J' <J$JJ' J$$J' 'K82.K&&K8c                s    VP                  4       pTpV F8  pWR9  g   K  VP                  VR4      p\        R\        V4      ,          4       K:  	  W48w  d   VP	                  V4       R# R# )zARemove all chars from entry's text that are not in allowed_chars.r   zremoved disallowed character %sN)rB  r]   rQ   r   rF  )r  r  r  ZorigtextrD  Zchars   &&&   r   r  ZNewPrinterGUI.entry_changed\  s`    >>#D(#++D"5=dKL  NN8$ r   c                    \         P                  \         P                  ,           R ,           pV P                  W4       V P	                  4        R# )z_-./:%[]()@?=&+Nr  r  r  r  rN  r  r  r  r7   r   on_entNPTDevice_changedZ%NewPrinterGUI.on_entNPTDevice_changedg  s6    ,,V]]:;LL3.r   c                r  )_-.:%[]Nr  r  r7   r   "on_entNPTJetDirectHostname_changedZ0NewPrinterGUI.on_entNPTJetDirectHostname_changedl  s5    ,,V]]:9D3.r   c                sf    V P                  V\        P                  4       V P                  4        R # r9   )r  r  r  rN  r  r  rG   r   on_entNPTJetDirectPort_changedZ,NewPrinterGUI.on_entNPTJetDirectPort_changedq  s"    3.r   c                s    VP                  4       pVP                  V4      w  rErgVP                  4       pVP                  WVWg4       R # r9   )Z
get_parentZquery_child_packingZget_expandedZset_child_packing)r  rE   UNUSEDr  ZexpandZfillZpaddingZ	pack_types   &&&     r   r   Z)NewPrinterGUI.on_expNPDeviceURIs_expandedu  sM     ""%%996B		$$'  &$")	6r   c                s&    VP                  V^4      # )i   )r  )r  r/   r'   r  r;  r   r   Z%NewPrinterGUI.device_row_separator_fn  s    a((r   c                s~    VP                  V4      '       d   VP                  V4       R# VP                  VR 4       R# r  )r  r  r  )r  r  r&   r  r;  r   r   Z"NewPrinterGUI.device_row_activated  s/    d##t$OOT5)r   c                s   V P                   pVP                  4       pV'       g   R # VP                  V P                  4      pVP	                  V4      '       g   R # V P
                  e   R # V P                  ^ 8  d   \        R4       R # V P                   FW  pVP                  4        F@  pVP                  R8X  g   K  VP                  VP                  8w  g   K3  \        R4         R # 	  KY  	   V P                  R8X  g   V P                  ^ ,          R8X  d   \        P                  ! 4       V n        V P
                  P                   '       g   \        P"                  ! 4       V n        \        R4       V P
                  P%                  V P&                  R7       R # R #   \(        P*                  \,        3 d    \/        4         R # i ; i)Nz3Skipping firewall adjustment: discovery in progressrw   z4Skipping firewall adjustment: network printers foundr  r(  zExamining firewallrW  )r   r   r   rt  r  rx  r   rQ   rV  r  rj  r   r  r5  r  r  r  r  rV   r  r  r  rX   r=   )r  r  r/   r  r  r   rb   r   rY  ZNewPrinterGUI.check_firewall  s_   !~~t'@'@A  ,//==$! 0 1 ||G!--0''94JJ&++- !9 : 1 $
	!

k)

1$ 0 : : =}},,,$4$I$I$LDM01""$2G2G"H % ""I. 	! 	!s   1AF AF %GGc                s    VP                  4       pV'       d	   V'       g   R # VP                  V P                  4      pW58X  d   V P                  4        R # R # r9   )r   r   rt  rY  )r  r  r'   r&   r/   r  s   &&&&  r   r   Z!NewPrinterGUI.device_row_expanded  sA    !D~~t'@'@A"  r   c                s    V P                   P                  4       pVP                  V4      pVP                  V^4      e   R# V P	                  V P                   VR4       R# )zt
Allow this path to be selected as long as there
is a device associated with it.  Otherwise, expand or collapse it.
NTF)r   r   r   r  r   )r  r"   r/   r&   r  r'   s   &&&&* r   r   Z$NewPrinterGUI.device_select_function  sU    
   **-~~t$??D!$0!!4#3#3T4@r   c                s`   . V n         R V n        R V n        R V n        . V n        V ;P
                  ^,          un        VP                  4       w  r#Vf   R# VP                  4       pVP                  V4      pVP                  V^4      pVf   R# RpVP                  4        EF  pVP                  R8X  d   \        R4      Vn        K'  VP                  R8X  d   \        R4      Vn        KJ  VP                  R8X  d|   \        VR4      '       dX   VP                  P!                  4       P#                  R	4      RD8  d*   \        R
4      R,           \        R4      ,           Vn        K  \        R4      Vn        K  VP                  R8X  d   \        R4      Vn        K  VP                  R8X  d   \        R4      Vn        EK  VP                  R8X  d+   \        R
4      R,           \        R4      ,           Vn        EKX  VP                  R8X  d   \        R4      Vn        EK|  VP                  R8X  d   \        R4      Vn        EK  VP                  R8X  d   \$        P&                  P)                  VP                  4      w  r\$        P&                  P+                  V
4      w  r\$        P&                  P-                  V
4      w  rVR8w  d2   V^ ,          R8X  d
   VR,          p\        R4      V,          Vn        EKV  \        R4      Vn        EKi  VP                  R8X  d   \        R4      Vn        EK  VP                  R8X  Ed   \$        P&                  P)                  VP                  4      w  r\$        P&                  P+                  V
4      w  r\$        P&                  P-                  V
4      w  rVR8w  d8   V^ ,          R8X  d
   VR,          pVP/                  R4      '       d
   VR ,          pR!VP0                  9   d   R"pRVn        MRpVR8w  d*   R#\        R$4      ,           R%,           W3,          Vn        EK  R#\        R$4      ,           V,          Vn        EK  VP                  R&8X  g   VP                  R'8X  d   \        R(4      Vn        EK  VP                  R)8X  g   VP                  R*8X  Eda   \$        P&                  P)                  VP                  4      w  r\$        P&                  P+                  V
4      w  r\$        P&                  P-                  V
4      w  rVR8w  d   V^ ,          R8X  d
   VR,          pVR+8X  dR   \        R,4      Vn        VP0                  R8w  d.   V;P                  R%VP0                  ,          ,          un        EK  EK  RpVP#                  R-4      RD8w  d   R$pM1VP#                  R.4      RD8w  d   R/pMVP#                  R04      RD8w  d   R1pVe   \        R24      V,          Vn        EK]  \        R34      Vn        EKp  R pVP                  Vn        EK  	  \4        P6                  ! \8        \:        P<                  4      pV P>                  PA                  V4       \C        VR4R4      R8w  Ed   R pR pR pR pRpR5R6/pVPD                  '       d   VPD                  pVP                  4        EF  pVP                  R8X  d)   RpV PG                  VP                  4      '       d   Rp EMVP                  RE9   g   KP  Vf   VP                  RF9   ds   \$        P&                  P)                  VP                  4      w  r\$        P&                  P+                  V
4      w  rVe#   \$        P&                  PI                  V4      w  ppV'       g   K  RpVP                  P/                  R74      ;'       g$    VP                  P/                  R84      ;'       d    VP                  PK                  R94      pVPL                  '       d   VPL                  R:8X  d   V'       g   V PO                  VVR;7       VP0                  VR<&   VPL                  VR=&   VPP                  VR>&   VPR                  VR?&   EK  	  V'       Eg   V'       Ed   V'       Eg   XPL                  '       dq   VPL                  R:8X  g`   VPL                  P!                  4       P/                  R4      '       g1   VPL                  P!                  4       P/                  R@4      '       Ed$   \        VRA4      '       d    VPT                  '       d   VPT                  pMTpV PW                  VRB4      pV'       d   \X        PZ                  ! V3/ VB pRVn        VP]                  V4       V PG                  VP                  4      '       d   RpV PW                  VR	4      pV'       dk   V P_                  V4      pVVR>&   \        R
4      VR<&   \X        PZ                  ! V3/ VB p\        R
4      R,           R,           Vn        VP]                  V4       V'       d   RVn0        RVn1        \C        VRCR4      Xn0        ^ pVP                  4        F)  pVPe                  VP                  V34       V^,          pK+  	  V P>                  Pg                  ^ 4      pV P>                  Pi                  \4        Pj                  ! 4       VR 4       V'       d   V Pl                  Po                  4        R# V Pl                  Pq                  4        R# )GFNTrj   zParallel Portru   zSerial Portrk   r   rd  Fax - USBrl   Z	Bluetoothro   z%HP Linux Imaging and Printing (HPLIP)rp   rm   z Hardware Abstraction Layer (HAL)rr   zAppSocket/HP JetDirectrs   r   r(  r  zLPD/LPR queue '%s'zLPD/LPR queuerv   ro  ri  z	printers/:i	   NNrN  zDriverless z%sIPPz (%s)r  r  ZHTTPrq   mdnsr8  Remote CUPS printer via DNS-SD._ipp	._printerLPD._pdl-datastreamAppSocket/JetDirect%s network printer via DNS-SDNetwork printer via DNS-SDchecked_hpliprn  rw   r  r  r  r	  )r,  r   rl  zdevice-make-and-modelz	device-idzdevice-locationZhewlettdnssd_hostnamerc  r  r   )rr   rs   ri  rq   r   rh  )9r   r   r   r   r   r  r?  r   r   r  r  r  r   	menuentryr  r   r2   r  r   r   r   	splithost
splitqueryrP   r  rN  r   r   r   r   r  r   r   r   Z_network_hostrb  Z	splitportr  rx  r  rw  r  r
  re  rC  rq  r  r^  r  r	  r    rv  r:   rw  r   r  rD   )r  rE   r&   r  r/   r'   r  Z	show_urisr   r   r   hostportZqueueZdrvlessr4   	cupsqueueprotocolZhp_drivabler  Z
is_networkZ
remotecupsr,  rr  r  Z	hpliphostZhplipurir  r]  ZfaxdevidZfaxdevri  s   &&                             r   on_tvNPDevices_cursor_changedZ+NewPrinterGUI.on_tvNPDevices_cursor_changed  s   &(#).&(-%$)!%'"!((+<  #~~t$$2!	$003F{{j(#$_#5 (#$]#3 %FE**JJ$$&++E2R7'(x%'7!E('BF$'(xF$+#$[> $#$%L#M '#$U8e#3=>$? %#$%G#H (#$%=#> %!'!7!7!D#)<<#9#94#@  & 7 7 >B;Qx3 %b	()*>(?*/)0F$ ()'9F$%#$%@#A %!'!7!7!D#)<<#9#94#@  & 7 7 >B;Qx3 %b	''44 %b	6;;.+G(,F% GB;)-%7)B)0(8)9F$ *.%G(CF$&&++*@#$V9 '6;;&+@!'!7!7!D%||55t<$*LL$;$;T$B!?y|s': )"I&'()I'JF${{b(((Gfkk,AA(( )  $Hyy)R/#(;/25#(#56"<#8+,-.M,N.6-7( :; ( "	#):: i 4l s&446%%u- NOT:dBK LJJD*I7K+++%33(447;;$&"&K 77DD'+[[$MM|7O(O)/)?)?)L+1<<+A+A4+H(#/+1<<+A+A8+LLT4t%)
'-zz'<'<X'F (F (F'-zz'<'<W'E'C 'C&,jj&9&9'&B # !' 5 5 5"11Y>% ;;CI < K5;[[M2@F@N $$;<3999K09?$56? 8B ;::jj)))%%2%%++.994@@%%++.999EE^-=>>"111 . = =I $IAA9CJL%,,hF+FC$KCM"--s3 77DD'+ "CCYEJLF#'#;#;V#D3;K056uXM2!,!3!3V!K{!K+,U8e+;C,D(&116:.2++/N(%~~tL $003FLL6++V45FA 4 $$//3&&F  )),  %%(r   c                sR   VP                  4       w  r#Vf   R # VP                  4       pVP                  V4      pVP                  V^4      pW`n        V P
                  P                  R4       V P                  P                  VP                  V P                  4      pV P                  P                  V4       \        RVP                  ,          4       RpVP                  p	VP                  P                  R^4      R8,          p
WpP                   8X  Ed   VP                  R8X  d   \#        R4      pEMFVP                  R8X  d   \%        VR4      '       dc   VP                  P'                  4       P)                  R4      R88  d5   \#        R	4      R
,           \#        R4      ,           Vn        \#        R4      pEM\#        R4      pEMVP                  R8X  d   \#        R4      pEMVP                  R8X  d   \#        R4      pEMxVP                  R8X  d   \#        R4      pEMZVP                  R8X  d   \#        R4      pEM<VP                  R8X  g   VP                  R8X  Ed   \,        P.                  P1                  VP                  4      w  r\,        P.                  P3                  V4      w  r\,        P.                  P5                  V4      w  rVR8w  d   V^ ,          R8X  d
   VR,          pVR8X  d   \#        R4      pM{R pVP)                  R4      R88w  d   RpM1VP)                  R4      R88w  d   RpMVP)                  R 4      R88w  d   R!pVe   \#        R"4      V,          pM\#        R#4      pMVP                  pV P
                  P                  V4       EMVP                  R$8X  d   \,        P.                  P1                  VP                  4      w  rRpR%pVR$8X  d   \,        P.                  P3                  V4      w  pp\,        P.                  P7                  VVR&7      w  pp\        R'V: R(\9        V4      : 24       VP:                  R8w  d   VP:                  pMTpV P<                  P                  V4       V P>                  P                  \A        V4      4       EMVP                  R)8X  Ed   VPB                  '       Egt   VP                  P                  R*^4      p\E        V4      ^8  d   V^,          pMRpVP                  ! R+4      p/ pV F  pVP                  R,4      w  ppVVV&   K  	  V PF                  R-3V PH                  R.3V PJ                  R/3V PL                  R033 F  w  rVV9   d   VP                  4       pVPO                  4       p^ pV'       dW   VP                  V^4      ^ ,          p\A        V4      \A        VV,          4      8X  d   MVPQ                  V4      pV^,          pK^  V'       d   VPS                  V4       K  VPS                  ^ 4       K  VPS                  ^ 4       K  	  EM0VP                  R18X  Ed   V PT                  P                  R4       V PV                  P                  R4       V PV                  PY                  R 4       V PZ                  P]                  R24       \E        VP                  4      ^8  d   VP                  R3,          pVP)                  R4      pVR88w  d   VV^,           R  pVR V pMRpV PT                  P                  V4       V PV                  P                  V4       TpV PZ                  P]                  R44       EMVP                  R58X  d8   V P^                  P                  R4       V P`                  P]                  R24       MVP                  R58X  du   V Pb                  P                  R4       V Pd                  P                  R4       V P^                  P                  VP                  R3,          4       V Pg                  R44       M7VP                  '       d&   V Ph                  P                  VP                  4        \E        V4      ^ 8X  dp   V P                  Pj                  R68X  dU   V Pl                  R78X  g   V Pl                  ^ ,          R8X  d    \n        Pp                  ! 4       pV^,          pMV Pl                  pV Pr                  P                  V4       T Pw                  4        R #    \u        4         L ; i)9Nr   z!Selected connection type. URI: %srb  rj   z)A printer connected to the parallel port.rk   r   rd  r  r  r  zUA fax machine or the fax function of a multi-function device connected to a USB port.z"A printer connected to a USB port.rl   z"A printer connected via Bluetooth.ro   zUHPLIP software driving a printer, or the printer function of a multi-function device.rp   zUHPLIP software driving a fax machine, or the fax function of a multi-function device.rm   z?Local printer detected by the Hardware Abstraction Layer (HAL).rq   r   r(  r  r8  r  r  r  r  r  r  r  r  r  rr   i#  )Zdefportzsocket: host is z
, port is ru   rg  +r`  baudbitsparityflowrs   Fr  Trv   Zdirectr  r   )<r?  r   r   r  r   r   rF  new_printer_device_tabsr   r  rX  r   rU  rQ   r   rj  rV  r   r  r2   r  r  r   r   r   r  r  Z
splitnportr   r  r   r   r   Zis_classr  r   r   r   r   r+   r,   r   r   r   set_completionr   r  r   r   r   r   r  r   rj  r5  r   Zunamer   r=   rN  )r  rE   r&   r  r/   r'   r   pager  r  r^   r   r   r   r4   r  r  r,  r  r  Zpartsr   Zoption_dictr$  r  rC  r  r6   r  s   &&                           r    on_tvNPDeviceURIs_cursor_changedZ.NewPrinterGUI.on_tvNPDeviceURIs_cursor_changed  s>   ((+<  #~~t$q)##,,b1++//d>U>UV((.6CD{{jjsA&r*--- {{j(DE%FE**JJ$$&++E2R7'(x%'7!E('BF$ . /D ABD+=>$ O P' K L% = >'6;;&+@!'!7!7!D%||55t<$*LL$;$;T$B!?y|s': )"I&=>D#Hyy)R/#(;/25#(#56"<#8+ !@AHL !=>zz''00$7[[("#\\33VZZ@NVDD!#)<<#9#94#@ 4%||66$6Ot@DdM N??b(%H#H((1148$$--sDz:[[("???

((a0;?#AhG G!--, %F"(,,s"3KD%(-K% &
 **F3**F3,,h7**F3	%5LF
 {* & 0 0 2$335"$)IId1$5a$8E"E{c;t3D.EE %#(??4#8D!GB"--b1"--q1))!,+%50 [[%'',(("-..5--u5FJJ!#zz"~IIsO7"1q56lG8D G""++T2##,,g6##1148ZZ5 NN##B'++E2[[E!(("-(("-NN##FJJrN3--t4zzz!!**6::6	!H~"t{{'?'?8'KJJ+-JJqMS(A tH#zzH ''2 		! s   ,Bd d&c                s    VP                  4       pV P                  P                  \        V4      ^ 8  4       V P	                  4        R# r   )rB  r   r  r  rN  )r  r  r  r7   r   on_entNPTLpdHost_changedZ&NewPrinterGUI.on_entNPTLpdHost_changed@  s6    <<>))3>A+=>r   c                rB   r9   rN  r  rG   r   on_entNPTLpdQueue_changedZ'NewPrinterGUI.on_entNPTLpdQueue_changedE      r   c                s&  a	 V P                   P                  4       p\        P                  ! V4      o	V P                  P                  R \        R4      ,           R,           \        R4      ,           4       V P                  P                  V P                  4       V P                  P                  4        \        V P                  4       V	3R lpV P                  P                  V P                  4       V P                  P                  RV4      pS	P                  4       pV P                  P                  V4       V P                  P                  R\         4      V n        V P                  P#                  4        \$        P&                  ! \(        4      pV F  pVP+                  V.4       K  	  \$        P,                  ! 4       pVP/                  V4       VP1                  ^ 4       VP3                  ^ 4       V P4                  P7                  V4       R# )z"<span weight="bold" size="larger">r$  z	</span>

zSearching for printersc                 s(   < SP                  4        R # rC   )re   )rE   rF   servers   &&r   r  Z5NewPrinterGUI.on_btnNPTLpdProbe_clicked.<locals>.stopS  s    NNr   r   N)r   rB  rh  Z	LpdServerr   
set_markupr   r   r
  rx   rG  rA   r  r   r   ZproberH   rD   r   r   r   r    ZEntryCompletionr   Zset_text_columnZset_minimum_key_lengthr   r  )
r  r  r  r  Zsignalr5   r/   r6   Z
completionr  s
   &&       @r   on_btnNPTLpdProbe_clickedZ'NewPrinterGUI.on_btnNPTLpdProbe_clickedH  s   %%..0((2!E!";"02?"@!"#;!<"= 	> 	))4+@+@A  #doo	 	""D$;$;<((.$?<<>""F+"&//"9"9>;N#Ps#GLL7)$   ((+
e$""A&))1-**J7r   c                s    VP                  4       pVP                  R 4      R8w  d   VP                  R4       \        RV,          4       V P                  P                  V4       V P
                  P                  4       pVP                  V P                  4      pV P
                  P                  VRR7       V P                  P                  ^ ^ 4       V P                  P                  R4       R# \        P                  \        P                  ,           R,           pV P                  W4       VP                  4       pV P                   P#                  \%        V4      ^ 8  4       V P&                  P)                  4        V P+                  4        R# )rb  r   zURI detected (%s) -> Enter URIF)r&   Zstart_editingNr  r   )rB  r  rF  rQ   r   r   r   r   rr  r:   Zselect_regionZset_positionr  r  r  r  r   r  r  r   rD   rN  )r  r  r   r/   r&   r  r  r  r    on_entNPTNetworkHostname_changedZ.NewPrinterGUI.on_entNPTNetworkHostname_changedj  s*   ||99c?b LL"84?@&&-$$..1E>>4#8#89D''d7< ( >++Q2**B/,,V]]:9D3.LLO))37Q;7##((+r   c                s  a  S P                   P                  4       pV 3R  lpS P                  P                  R4       S P                   P                  R4       ^ S n        S P
                  P                  4        S P                  P                  4        \        P                  ! 4       pS P                  4        VP                  W#4       VS n        R# )c                 sj   < SP                   f   R # \        P                  ! SP                  V 4       R # r9   )r<  r   r1  found_network_printer_callback)
new_devicer  s   &r   found_callbackZ?NewPrinterGUI.on_btnNetworkFind_clicked.<locals>.found_callback  s&    ""*MM4>>
Kr   FN)r   rB  r   r  network_foundr   rD   r   r  rh  ZPrinterFinderr  r  r<  )r  r  r,  r%  Zfinders   f&   r   on_btnNetworkFind_clickedZ'NewPrinterGUI.on_btnNetworkFind_clicked  s    ))225	L 	))51""00%8##((+$$--0,,/ T*$r   c                s   \         P                  ! 4        V'       d   V ;P                  ^,          un        \        V4      p V P                  P                  V4      pV P                  V,          P                  V4       V P                  P                  4       w  rEV'       do   V P                  P                  4       pVP                  V4      pVP                  V^4      V P                  V,          8X  d   V P                  V P                  4       MRV n        V P/                  4        V P0                  P3                  4        V P4                  P7                  R4       V P8                  P7                  R4       V P                  ^ 8X  dM   V P:                  P=                  R\?        R4      ,           R,           4       V P:                  PA                  4        \         PB                  ! 4        R#   \         d    RTn        T P                  P                  T4       T P                  P!                  4        T P                  P                  4       pTP#                  RT P$                  TP'                  4       TR.R7      pT P                  ^8X  d/   TP)                  T4      pT P                  P+                  TRR4        Li ; i)r  TNFrm  z<i>z%No printer was found at that address.z</i>)"r   r2  r&  r
   rV  r  r  r   r?  r   r   r  r  r  r	  r    r-   r  rs  rq  r   r:   r<  r  r   rD   r   r  r   r   r   r   r  r4  )r  r$  r  r  r&   r  r/   r'   r  r   r#  Z,NewPrinterGUI.found_network_printer_callback  s8   !# *-CDLL&&, Q**J7!%!1!1!<!<!? ,,669E >>40Da0DLLOC::D<L<LM #'D!!$((--0&&44d;--t4!!Q&++6689 ;E 9F9F IO9O P ++0035  D$(!##S)!!$((225**D$2K2K14#u0M + O %%* >>40D$$//tUCDs   CG. .CK ?K c                s   V P                   R9   d   V P                  P                  # V P                  P                  pV P                  P                  WP                  4      pTpW P                  8X  d   V P                  P                  pV# VR8X  dg   V P                  P                  4       pV P                  P                  4       pV'       d)   VRV,           ,          pV'       d   VRV,           ,          pV# VR8X  dg   V P                  P                  4       pV P                  P                  4       pV'       d)   VRV,           ,          pV'       d   VRV,           ,          pV# VR8X  d   . pV P                  R3V P                  R3V P                  R	3V P                   R
33 F`  w  rVP#                  4       p
VP%                  4       pV
P'                  V^4      pVR8w  g   K@  VP(                  ! V	R,           V,           4       Kb  	  RP+                  V4      pV P                  P                  P-                  R4      ^ ,          pV'       d   VR,           V,           pV# VR8X  d   V P.                  P                  4       p\1        VR7      P3                  4       w  rpppRpRpV P4                  P7                  4       '       d5   V P8                  P                  4       pV P:                  P                  4       p\1        WVVVR7      P=                  4       pV'       d   VRV,           ,          pV# V P>                  P                  4       pV# )r0  rr   rf  rb  rs   r(  ru   r  r  r  r  r   r`  r  rg  rv   r  )r[   r,  r  r  r  )r0  r   ) r  r   r   r  r  r   rX  rV  r   rB  r   r   r   r   r   r   r   r   r>  r  r    r  rj  r   r	   r  r   r  r   r   r  r   )r  r  r  r   r,  r  r6   r   rE   r4   r/   r'   r$  r   r[   r  r  r  r  r     &                   r   r  ZNewPrinterGUI.getDeviceURI  s   ::;;??"{{++//7N7NO---[[__FZ Y X//88:D++446D%$,&cDj(FL K U]%%..0D))224G%$,&cGm+F> = XG&&/&&/(((3&&/	!1
 ((+--/$2R<NN4#:#67!1 hhw'Gkkoo++C03F#/  U]..)),C)/S)9)B)B)E&U%ADH""--00**336..77:#h88?
 %#+%  &&//1Fr   c                s   V P                   P                  4       pV P                  P                  4       pV P                  P                  4       pV P                  P                  V4       V P                  P                  V4       V'       d   V P                  pV'       d   V P                  pV'       d   V P                  pV P                  P                  X4       V'       g   V P                  '       d   V P                   F  pV P                  P                  V4       K   	  R V n        V P                  P                  4        R V n        V P                   P                  R4       V P"                  P%                  \'        R4      4       \(        P*                  ! \,        \,        4      pV P.                  pVP1                  V4       VP                  R4       V P2                  V P.                  3 F  pVP                  V4       K  	  V P                   P                  T;'       d    V P                  R J 4       V P5                  4        R # )NTr.  F)r   r  r   r   r   r  r   rV  rX  r^  r   rU  r   r   r  r  r   r   rF  r   r   r   r   r   r   r   rN  )	r  rE   Zrbtn1Zrbtn2Zrbtn3r  r  r/   r  ra  r   rZ  Z'NewPrinterGUI.on_rbtnNPFoomatic_toggled  s   ##..0))+33>>@$$U+))%0--D**D22D++T2..

%%w/ / #'DJJ DJ..<<dC44==q{KMM3,E@@H&""E*99@@BF  'B 	**M599djjD&8:r   c                rB   r9   r  r  rG   r   #on_filechooserPPD_selection_changedZ1NewPrinterGUI.on_filechooserPPD_selection_changed#  r  r   c                sH   R V n         V P                  eW   V P                   F  pV P                  P                  V4       K   	  RV n        V P                  P	                  4        RV n        VP                  R4       V P                  pVP                  \        R4      4       V P                  P                  4       p\        R\        V4      ,          4       \        4       V n        . V n        V P                  P                  V P                  P                  RV P                   4      4       V P                  P                  V P                  P                  RV P"                  4      4       V P                  P%                  V4       V P&                  P                  R4       R# )TNFr$  zSearching for "%s"r  r&  )r   r   r   r  r  r  r   rF  r   r   rB  rQ   r   r   r    r   opreq_user_search_doneopreq_user_search_errorr.  r   )r  rE   r  rP  Z
searchtermr  r   (on_btnNPDownloadableDriverSearch_clickedZ6NewPrinterGUI.on_btnNPDownloadableDriverSearch_clicked&  sE   )-&::!..

%%w/ / #'DJJ DJe$88+'77@@C
(4+<<=(+
 ""JJ
 $ ; ;=	> 	""JJ $ < <>	? 	

!!:.11??Gr   c                sT   V P                    F  pVP                  V4       K  	  R V n        RV n         RV n        R V n        W n        W0n        V P                  pV P                  p\        P                  ! 4         VP                  \        R4      4       VP                  R 4       \        P                  ! \         \         4      p\#        V P
                  4      ^8w  di   \#        V P
                  4      ^8  d   \        R4      pM\        R4      pVP%                  R4      p	VP'                  V	^ V4       VP'                  V	^R4       . p
V P
                   F  w  rV
P%                  W34       K  	  V
P)                  \*        P,                  ! R 4      R7       V P.                  P1                  4       P3                  4       p^ pV
 Fl  w  ppVP%                  R4      p	VP'                  V	^ V4       VP'                  V	^V4       VP3                  4       V8X  g   KT  VP5                  V	4      ^ ,          pKn  	  V P6                  pVP9                  V4       VP;                  V4       VP                  R 4       V P=                  4        \        P@                  ! 4        R#    \?        4         L%; i)TNr.  z -- Select from search results --z-- No matches found --r   c                 sL    \         P                  ! V ^,          V^,          4      # r  )r8  Z	modelSort)rK   r   rG   r   r   Z6NewPrinterGUI.opreq_user_search_done.<locals>.<lambda>a  s    DNNTUVWTXZ[\]Z^D_r   )key)!r   r  r-  r   r   r   r3  r   r   r   r2  rF  r   r  r   r   r   r  r    	set_valuer-   	functoolsZ
cmp_to_keyr   rB  r2   r   r   r   r   rN  r=   r4  )r  r   r5   r5  r  r  rP  r/   Zfirstr'   Zsorted_list
printer_idZprinter_nameZsoughtZselect_indexrw  r4   r  r#  r   r*  Z$NewPrinterGUI.opreq_user_search_done@  s2   **Gg& + "&"
(,%%-"$+!3388!	 NNAhK(  $'MM3,ED../14223a7@AE67E||T*q%0q"-K,0,F,F(
""Z$>? -G )"6"67_"`a77@@CIILFL'D||T*q$/q"-::=F*#(>>4#8#;L ( @@H&.""D)  		 s   ;FJ A+J J'c                r6  r7  )rQ   r   r*  rJ   r8  r9  r;  r   r+  Z%NewPrinterGUI.opreq_user_search_errort  s9    :f>BCj>J J 	K##UDFDF;r   c                sp   V P                  4        V P                  e   V P                   F  pV P                  P                  V4       K   	  R V n        V P                  P	                  4        R V n        V P
                  P                  R4       V P                  P                  \        R4      4       R # R # )NTr.  )
rN  r   r   r  r  r   r  r   rF  r   )r  rE   r  r7   r   /on_cmbNPDownloadableDriverFoundPrinters_changedZ=NewPrinterGUI.on_cmbNPDownloadableDriverFoundPrinters_changedy  s    ::!..

%%w/ / #'DJJ DJ..<<dC44==q{K "r   c                s2   \        R 4       RV n        V P                  R8X  d   V P                  pVP	                  4       pVP                  4       pV'       d   VP                  V^4      pVP                  V^ 4      pVR8X  dS   VP                  ^4       VP                  4       pV'       d&   VP                  V^4      pVP                  V^ 4      pMRpRpMRpRpMV P                  ^ ,          w  rEVf#   V P                   Uu. uF  qf^ ,          NK  	  ppMV.pV'       d   WPn        \        P                  ! \        \        P                  4      pRpRp	V F  pV P                  V,          p
V
P                  4        F  pRV9   d   \!        VR,          4      ^ 8:  dI   \"        P$                  '       g   V P'                  V4      '       g   \)        RVR,          ,          4       Ki  VP+                  R4      pV	f   Tp	VP-                  V^ VR,          4       VP-                  V^V4       VR,          '       g   K  TpK  	  K  	  V	f   R# V P.                  P1                  4       '       gR   V P2                  R	8w  dA   VP+                  R4      pVP-                  V^ \5        R
4      4       VP-                  V^^ 4       Vf   T	pV P6                  pVP9                  V4       Ve    VP;                  4       P=                  V4       V P?                  V4       R# u upi )ZfilldownloadableDriversNTr   r:  zRemoved invalid driver entry %sr4   recommendedFr1  zLocal Driver) rc  r   r-  r   r   r>  r  r   r   r   r   r   r   r  r3  r3   r  r   r   r  rQ   r    r/  r   r  r  r   r   r   r   Zselect_iter)on_tvNPDownloadableDrivers_cursor_changed)r  rE   r/   r'   r1  Zprinter_strrK   Zprinter_idsZrecommended_iterZ
first_iterr5  r  r.   s   &            r   r  Z%NewPrinterGUI.fillDownloadableDrivers  s   ()/3,!!T)>>F$$'E)),D"__dA6
#ootQ7#%%q)!114D%*__dA%>
&+ootQ&?%)
&*!
"&*&@&@&C#J *.)C)CD)CAQ44)CKDK%,K3>0s&446
%J//
;G!..+6)(A-000996BB A &v!/ 0||T*%!%Jq&.9q&1-(('+$! , &( 22==??00<<&DOOT1a&78OOT1a(#)//E"'""%113CD66x@a Es   Lc                rB   r9   r  r  rG   r    on_rbtnNPDownloadLicense_toggledZ.NewPrinterGUI.on_rbtnNPDownloadLicense_toggled  s    r   c                s<   R V n         V P                  P                  4       pV P                  P	                  4       pVP                  4        R pV P                  '       d+   \        P                  P                  V P                  4      pMRpV F  pT;'       d#    \        P                  P                  V4      V8H  pV P                  '       d8   V P                  P                  '       d   V'       d   V\        R4      ,           pMTpVP                  Wu34      pV'       g   K  VP                  V4      p	V P                  P                  V	RR 4       V P                  P                  V	RRRR4       RpK  	  V'       gP   V P                  P                  \         P"                  ! 4       RR 4       V P                  P                  ^ RRRR4       Rp
V P                  '       d   V P                  P$                  '       d   V P                  P$                  pVR,          '       d/   VR,          '       d    VR,          R	,           VR,          ,           p
M1VR
,          '       d   VR
,          p
MVR,          '       d
   VR,          p
V
R8X  dI   V P                  e;   WP                  ,          p
V P&                  e   V
R	V P&                  ,           ,          p
V
P)                  R4      '       g   V
P)                  R4      '       d   Rp
V P*                  P-                  V
4       R# )FNr  Tr          r   r  r  rO   r  r  r	  )recommended_make_selectedr:  ZgetMakesr   r   r   rs  rC  	normalizer   rx  r   r    r   r:   r  r   rw  r  rt  rP   r   rF  )r  Zmakesr/   ZfoundZauto_make_normr  r3  r   r'   r&   rZ   Z
devid_dict   &           r   r/  ZNewPrinterGUI.fillMakeList  sZ   ).&		""$((*>>>(--77HN!ND) O O&++55t<N {{{t{{999ka 011<<.D{~~d+))4u=--dD.2C>   NN%%s||~tUCNN))!T4cB ;;;4;;...,,J%  Z%6%6#E*S0:e3DDE""#E*E""#E*R<DNN6nn$F*#//i((i((F**33V<r   c                s   VP                  4       w  r#Ve   V P                  e   VP                  4       pVP                  V4      pVP	                  V^4      ^ ,          V n        V P                  ;'       dT    \        P                  P                  V P                  4      \        P                  P                  V P
                  4      8H  pW`n	        V P                  4        R # R # R # r9   )r?  r:  r   r   r   NPMakers  rC  r8  r7  fillModelList)r  r   r&   r  r/   r'   Zrecommended_maker  r   on_tvNPMakes_cursor_changedZ)NewPrinterGUI.on_tvNPMakes_cursor_changed  s     ++-		 5''*E>>4(D))D!,Q/DK $ !I !I + 0 0 : :DNN K + 0 0 : :DKK H!I  .>*  !6r   c                sv   R V n         V P                  P                  V P                  4      pV P                  P                  4       pVP                  4        R p\        P                  P                  V P                  4      \        P                  P                  V P                  4      8H  pV'       d*   \        P                  P                  V P                  4      pV F  pT;'       d#    \        P                  P                  V4      X8H  pV P                  '       d8   V P                  P                  '       d   V'       d   V\        R4      ,           pMTpVP                  W34      p	V'       g   K  VP                  V	4      p
V P                  P!                  V
RR 4       V P                  P#                  V
RRRR4       RpK  	  V'       gP   V P                  P!                  \$        P&                  ! 4       RR 4       V P                  P#                  ^ RRRR4       V P                  P)                  4        R# )Fr  NTr  r6  )r   r:  Z	getModelsr:  r   r   r   rC  r8  rs  rt  r   rx  r   r    r   r:   r  r   rw  columns_autosize)r  Zmodelsr/   ZselectedZis_auto_makeZauto_model_normpmodelr3  r   r'   r&   s   &          r   r;  ZNewPrinterGUI.fillModelList  s   */'$$T[[1))+#((22DKK@#((22DNNCD)..88$//JOF' + +&++55v>*+  {{{t{{999k"2 33<<0D{~~d+**D$>..tT/3S#?   OO&&eDOO**1dD#sC((*r   c                s	   W n         V P                  P                  4       pVP                  4        V P                  '       d   V P                  P
                  pMR pV P                  '       d   V P                  P                  '       ds   V P                  '       da   V P                  '       dO   V P                  P                  pV P                  V n	        \        R\        V P                  4      ,          4       EMV P                  '       d   VR,           V,           pV P                  P                  W4      p\        VP                  4       4      pV P                   p V P                  P#                  VVVV4      V n	        T P&                  '       dc   T P                  '       dQ   . p	T P                   F8  p
YP&                  8X  d   T	P)                  ^ T
4       K'  T	P+                  T
4       K:  	  Yn	        M\        R4       . V n	        . p. p^ pV P                   EF\  pV P                  P-                  V4      p\/        VR,          4      p
V
P1                  RR4      p
 R\/        VR,          4      ,          pV
V,          p
W9   pV P                  '       d   V P                  P                  '       g   V P&                  V8X  d   VP+                  V
4       VP+                  V4       V^,          pVP+                  V
\5        R	4      ,           34      pVP7                  V4      pV P                  P9                  4       P;                  V4       V P                  P=                  VR R
RR4       EKR  V P                  '       d   V^ 8X  d   VP+                  V
4       VP+                  V4       V^,          pVP+                  V
\5        R4      ,           34      pVP7                  V4      pV P                  P9                  4       P;                  V4       V P                  P=                  VR R
RR4       EK  V'       d   EK  VP+                  V
4       VP+                  V4       V^,          pVP+                  V
34       EK_  	  Wn	        V P                  P?                  4        R #    \%        4        Ypn	         EL1; i  \2         d     ELCi ; i)NzID matched PPDs: %srO   zNo PPDs available?r  r  r   z [%s]zppd-natural-languager  Tr  r6  ) NPModelr   r   r   r   r  rx  r   r  	NPDriversrQ   r   r:  r  rJ   r  r   r  r=   ru  Zinsertr    r'  rL   r]   ZKeyErrorr   r   r   Zselect_pathr  r=  )r  Zpmaker>  r/   r4  rx  r:  ZppdnamesZfilesr5  r  Z
driverlistr@  r  r"  r   ZlpostfixZ	duplicater'   r&   rk  r   r(  ZNewPrinterGUI.fillDriverList7  s     **,;;;KK''EEKKKDKK666+++$$$![[77N "55DN-dnn0EEFYYY #S[61N99--e<DDIIL)H//E*!%!D!DXEJESEJ"L DKKK"nnF!1!1162/	 - ") ,-DN
	~~G))..8C%9!:;F^^$4b9F"Z5K1L%MM(" ,I[[[T[[%?%?%?  G+!!6*  '*Q||f&'o'6 &8 9~~t,  ..0<<TB  //dD#sKa!!6*  '*Q||f&'(8&9': &< =~~t,  ..0<<TB  //dD#sK!!6*  '*QfZ(M &P #))+*!$!)8  s   #R "R6R36SSc                s   V'       d   VP                  4       ^ ,          pVf   R# M3VP                  W#4      w  rxVP                  Wx4      p	V	f   R# V	^ ,          pV P                  V^ ,          ,          p
V P                  P                  V
4      p\        VR,          4      pV
P                  R4      '       d   VR,          pV\        R4      ,          pVP                  V4       R# )r    Fr  z	foomatic:rO   z"This PPD is generated by foomatic.T)
r?  Z#convert_widget_to_bin_window_coordsZget_path_at_posr@  r:  r'  rL   rP   r   r   )r  ZtvrK   r   Zkeyboard_modeZtooltipr&   Zbin_xZbin_yr  Z
drivernamer0  Zmarkups   &&&&&&       r   r  Z(NewPrinterGUI.on_NPDrivers_query_tooltip  s    ==?1%D|  AA!GLE$$e3C{q6D^^DG,
))..z:W%9:;!!;//cMFa<==F6"r   c                s   VP                  4       w  r#Ve   VP                  4       pVP                  V4      pVP                  V^4      ^ ,          pV P                  ;'       d@    V P
                  ;'       d,    V P
                  P                  4       VP                  4       8H  pWpn        V P                  V P                  V4       V P                  V P                  4       R # R # r9   )r?  r   r   r   r7  rt  r2   r   r(  r:  on_tvNPDrivers_cursor_changedr   )r  rE   r&   r  r/   r'   r>  Zrecommended_modelr  r   on_tvNPModels_cursor_changedZ*NewPrinterGUI.on_tvNPModels_cursor_changed  s    ((*$$'E>>4(DYYtQ'*F "&!?!? "M "M!%"M "M!%!6!6!9V\\_!L  /@+V4..t/?/?@ r   c                rB   r9   r  r  rG   r   rA  Z+NewPrinterGUI.on_tvNPDrivers_cursor_changed  r  r   c                s   V P                   P                  R 4       V P                  P                  R 4       V P                  P                  R 4       V P                  P                  R 4       V P
                  P                  R4       V P                  P                  4        VP                  4       pVf   R# VP                  4       w  r4V'       g/   VP                  4       w  rVV'       d   VP                  V4      pMR# VP                  V^4      pV^ 8X  d8   V P                  P                  V P                   4       V P#                  4        R# V P                  P                  V P$                  4       VP'                  R\)        R4      4      pV P*                  p	VR,          p
R pV! W4       V P                   P                  V4       VP'                  R\)        R4      4      pV P,                  pV P.                  pV! WR	,          4       V! WR
,          4       V P                  P                  V4       VP'                  R\)        R4      4      pV P                  P1                  V4       RV9   d   VR,          pR F  pVP3                  4       pRpV P4                  P'                  RV,          4      pV P4                  P'                  RV,          4      pVV9   d_   V'       dW    \7        VV,          4      pVP9                  ^ ^d4       VP;                  V4       VP=                  4        VP                  4        Ve   K  VP                  4        VP=                  4        K  	  R pRV9   d   VR,           F  pVR,          '       g   K  RVR,          ,           pR pVR,          '       d   VVR,          ,           pVR,          '       d+   V'       d   V\)        R4      ,           pVVR,          ,           pV'       g   K  V\)        R4      V,          ,           pV'       d
   VR,           pVV,           pK  	  V'       g   \)        R4      pV P                  P                  V4       RV9   d`   V P                  P?                  4        VP'                  R\)        R4      4      pV P@                  PC                  4       P                  V4       MV P                  P                  4        VR,          '       g`   VR	,          '       gQ   V PD                  P                  R4       V PD                  P                  4        V P
                  P                  4        MV P
                  P                  R4       V PD                  P?                  4        V P
                  P?                  4        V P                  P?                  4        VP'                  R\)        R4      4      pV P@                  PC                  4       P                  V4       RV9   d    \G        VR,          4      ^ 8  d	   RV n$        MRV n$        V P#                  4        R#     EL; i)r   TNsupplierZOpenPrintingZmanufacturersuppliedc                 s4    Wn         V P                  V4       R # r9   )r   r   )rE   r   rG   r   set_protect_activeZSNewPrinterGUI.on_tvNPDownloadableDrivers_cursor_changed.<locals>.set_protect_active  s    $*!v&r   licenseZDistributablepatentsZfreesoftwareZshortdescriptionr   functionalityzhsDownloadableDriverPerf%sz"lblDownloadableDriverPerf%sUnknownsupportcontactsr4   r  r^   Zlevelr  z
(%s)r[  zNo support contacts knownZlicensetextzNot specified.Znonfreesoftwarer:  F)ZGraphicsZLineArtZPhotoZText)%r   rF  r   r   r   r   r   r   rD   r   r  r?  r   r  r   rU  rV  rN  rX  r   r   r   r   r   r   r2   Z__dict__r  Z	set_ranger/  r  r  r   Z
get_bufferr   r  r   )r  rE   r"   r/   r'   r&   r  r  rC  Zvendorr   rD  rE  rF  ZfreeZdescriptionrG  Zfieldr.  r  ZhsZunknownrH  ZsupportentryZsupportcontactZsupportcontact_extraZtermss   &&                         r   r4  Z7NewPrinterGUI.on_tvNPDownloadableDrivers_cursor_changed  s   ,,55r:++44b9//88"=33<<bA$$//600558((+	,,/!,,.LD~~t,$*Q;33DDdF`F`a//@@$BYBYZ::j!N*;<::./	' 	F+,,55x@**Y/(:;;;55GI%67D"89++44g>jj!3QvY?//::KHf$"?3MAkkn]]&&(Du(LM--++-Q/4.5 6-'!$'s);$<ELL!S1LL%0KKN#LLO =GGJ$$'' B* & &'8 9 9''%*\&-A%AN+-(#E**/C(/00,#G,,/3G!D'3Q0/C(102,++)7hK*>>*?*.=.DO*9N*J# !:$  ;<O33<<oNF"4499<JJ}a0@.ABE..99<EEuM4499<'((	1B1B))44d;))..1((--0((33T:))..1((--04499<JJ}a0@.ABE..99<EEuMVF6N 3a 7(,D%(-D%k! s   (AY  Yc           	     s$   R p V P                   P                  4       '       g   \        V P                  4      ^ 8  di   V P                  R8X  dX   V P
                  P                  4       P                  4       w  r#VP                  V4      ^ ,          pV P                  V,          pEMV P                  P                  4       '       d1   \        P                  ! V P                  P                  4       4      pEMTV P                  pVP                  4       P                  4       w  r#VP!                  V^4      pV^ 8w  Ed   RV9   Ed   \        VR,          4      ^ 8  d   VR,          ^ ,          p\#        RV,           R,           4       VP%                  4       p\        V4      ^ 8  d   \&        P(                  P+                  V4      pVP-                  4       p	VP/                  4        \0        P2                  ! 4       ;_uu_ 4       p
V
P5                  V	4       V
P7                  4        \        P                  ! V
P8                  4      pR R R 4       \#        R\A        V4      ,           4       \[        V\\        4      '       d   V P                  P_                  \C        R4      4        VR8w  dH   V P                  Pa                  V4      p\        P                  ! V4      p\b        Pd                  ! V4       T P                  Pk                  4        V#   + '       g   i     L; i  \:        \&        P<                  P>                  3 Ed   p\#        R\A        T4      ,           4       T P                   P                  4       '       d   \C        R4      p\C        R4      pT P
                  P                  4       P                  4       w  r#TP                  T4      ^ ,          pT P                  T,          pTPE                  R4      '       d   \C        R	4      R
,          pEMYT PF                  T PH                  3,          pMT P                  P                  4       '       d   \C        R4      pT P                  P                  4       p\C        R4      R,           p \J        PL                  ! RRT.R\J        PN                  \J        PP                  \J        PP                  R7      pTPS                  4       w  ppTTPU                  4       ,          pM   h ; i\C        R4      p\C        R4      p\W        YT PX                  4        R p?R # R p?ii ; i  \:         d    \g        4        \#        R4        ELt\        Ph                   d    \g        4        \#        R4        ELi ; i)NFr:  zppd file to download [Z]zRuntimeError: zDatabase errorz4The '%s' driver cannot be used with printer '%s %s'.Z
gutenprintzFYou will need to install the '%s' package in order to use this driver.zgutenprint-foomaticz	PPD errorz2Failed to read PPD file.  Possible reason follows:r[  z/usr/bin/cupstestppdz-rvvTr_  zDownloadable driverszFailed to download PPD.zppd: zfetching PPDr  z/libcups from CUPS 1.3 not available: never mindz)CUPS 1.3 server not available: never mind)6r   r  r  r   r   r   r   r  r   r@  r   r8  r  r   r@  r   r  rQ   r\   r   rR   rS   rV   Zcloser  r  r  r   r4   r>  r&  rA  r   r   rP   r:  r?  r  r  r  r  r\  rW   r  rx   rI   r   rm  ZgetServerPPDr   unlinkr=   rE  rv  )r  r   r/   r'   rC  r.   r  Zfile_to_downloadZ	ppdurlobjr  r  r`   Z	err_titleZerr_textr:  filenamer  r  r  r  r(  r   r  ZNewPrinterGUI.getNPPPD5  sH   K	$$//11334q8))U2"..<<>KKM^^D)!,nnR(**,,hht22??AB  77&447DDG$2Q;6V#3F6N+a/+1&>!+<("$<?O$OQT$TU+;+A+A+C( 01A5(.(>(>?O(PI)2)9J%OO-!)!<!<!?!?4 $

: 6 $

&*hhtyy&9 "@j 	7T#Y&'c3II&&.(9:
I%<		..s3A((1+CIIaL II$$'
O "@!?
 fll445 .	(4834""--//./	 : ;#//==?+|~ ^^D)!,+$$l33  ; <12C #dkk4<<%HHC**,,kN	..;;= # $&*+ #((+A+18+=480:0B0B1;1;BA ()}}'7$VV6==++C 45	12yt/D/DE].	r   O!#MN== I!#GHIs   L B L &L .L 6D
L  AL
L  AT? 
L	L L &T<DT77T7A2S?>T7?T/T77T<? V"V5VVc           	     s2   \        R 4       RV n        / V n        V P                  pVP	                  4        F  pVP                  V4       K  	  V P                  '       gO   \        P                  ! \        R4      R7      pVP                  V4       VP                  4        \        R4       R# V P                  P                   EF  pVP                  R8w  d   K  RV n        \        P                  ! 4       pVP                  ^4       VP!                  ^4       VP                  V4       ^ p\#        VP                  4       EFE  w  rxVP$                  R8X  d   K  V^,          p\'        WP                  V 4      p	VP)                  V	P*                  ^ V^^4       \        P,                  ! 4       p
V	P.                  '       d}   \        P0                  P3                  R	R	R
R
4      pVP5                  ^ ^ ^ ^4       VP                  V	P.                  4       VP)                  V^V^^4       VP)                  V
^V^^4       MVP)                  V
^V^^4       V
P7                  V	P8                  RR^ 4       WP                  VP$                  &   EKH  	  EK  	  V P                  '       gB   \        P                  ! \        R4      R7      pVP                  V4       VP                  4        V P:                  P=                  4        V P:                  P?                  4        R# )zExamining installable optionsFzNo Installable Options)rP  z No PPD so no installable optionsNZInstallableOptionsTZ
PageRegionr  g      ?) rQ   r   r   r   Zget_childrenr!   r   r   ZLabelr   r"  r  ZoptionGroupsr4   ZGridZset_column_spacingZset_row_spacingZ	enumerateZkeywordr   ZattachZconflictIconZBoxrP  Z	Alignmentr   Zset_paddingr   Zselectorr   rD   r  )r  Z	containerZchildZlr[   Zgridr$   rC  r$  ZoZhboxZar9  r   r  Z&NewPrinterGUI.fillNPInstallableOptions  sM   34#( ++	++-EU# . xxx		": ;<AMM!FFH:; XX**Ezz11'+D$88:D##A&  #MM$D'6
>>\1	 48ANNAr1a8wwy777))3S#>AMM1aA.EE177OKK1b!Q/KKaQ2KKaQ2

E5!</0V^^,# 7 +8 '''		": ;<AMM!FFH$$))+$$--/r   c                s   V P                   '       d2   V P                   P                  4        R V n         V P                  4        V P                  '       d"   V P                  P                  4        R V n        V P                  '       d2   V P                  P                  4        R V n        V P                  4        V P                  R9   dP   V P                  P                  4       pV P                  P                  4       pV P                  P                  4       pMV P                  pV P                  pV P                  R8X  d>   \        V P                  4      p V F  p V P                  P!                  Wr4       K!  	  EM V P                  R8X  g   V P                  R8X  Ed   R p
V P*                  P,                  '       d   V P*                  P,                  p
MV P/                  4       p
V P                  '       g   V P1                  R4       R # V P2                  P5                  4        F  pVP7                  4        K  	  \9        V P:                  4       \<        P>                  ! 4       '       d   \<        P@                  ! 4        K2  V P                  PC                  \E        R4      V,          4        \G        V\H        4      '       d!   V P                  PK                  W%V
XXR7       MjVf    V P                  PK                  W*XXR7       MG\L        PN                  ! WPPP                  ^ ,          4       V P                  PK                  W%V
XXR7        V P                  PU                  4        \S        V P:                  4       V P                  R9   d   V P                  PC                  \E        R4      V,          4        \L        PX                  ! V P                  V4       V P                  P[                  VX4       V P                  P]                  VX4       T P                  PU                  4        EMV P                  R	8X  du   V P                  PC                  \E        R4      V,          4        V P/                  4       p
V P                  PK                  W*R
7       T P                  PU                  4        EMPV P                  R8X  Ed   V'       g2   V P_                  4       ;qPn        V'       g   V P1                  R4       R # V P                  PC                  \E        R4      V,          4       Rp\G        V\H        4      '       d   V P`                  Pc                  4       '       d    V P                  PK                  VRR7        V P                  PK                  W%R7        T P                  Pe                  T4      p\        Pf                  ! T4      p\h        Pj                  ! T4       MV P`                  Pc                  4       '       gM   \G        V Pn                  \        Pf                  4      '       d#   \L        Pp                  ! V Pn                  V4       M'\L        PN                  ! WPPP                  ^ ,          4       V P2                  P5                  4        F  pVP7                  4        K  	   V P                  PK                  W%R7       T P                  PU                  4        M"V P                  R8X  d   V P1                  ^ 4       V P:                  Ps                  4        V P                  R9   d   V Pu                  RV4       MWV P                  R8X  d   V Pu                  RV Pv                  4       M)V Pu                  RW Pn                  V P                  8g  4       R V n        / V n<        R #   \"         d     EK`  i ; i  \        P$                   d+   pTP&                  w  rT P)                  Y4        R p?R # R p?ii ; i  \        P$                   dZ   pTP&                  w  r\S        T P:                  4       T P)                  Y4       T P                  PU                  4         R p?R # R p?i \S        T P:                  4       T P                  PU                  4        \W        ^4        EL[; i  \        P$                   dE   pTP&                  w  rT P)                  Y4       T P                  PU                  4         R p?R # R p?ii ; i  \        P$                   dE   pTP&                  w  rT P)                  Y4       T P                  PU                  4         R p?R # R p?ii ; i  \        P$                   d+   pTP&                  w  rT P)                  Y4        R p?ELR p?ii ; i  \        P$                   dE   pTP&                  w  rT P)                  Y4       T P                  PU                  4         R p?R # R p?ii ; i  \        P$                   db   pTP&                  w  rT\        Pl                  8X  d	   Rp R p?EL{T P)                  Y4       T P                  PU                  4         R p?R # R p?ii ; i  \        P$                   dE   pTP&                  w  rT P)                  Y4       T P                  PU                  4         R p?R # R p?ii ; i)Nr/  r6   r0  zadding printer %s)r"  r   r  r  )r   r  r  )r   r   r  r  zmodifying printer %sr   r  r   Fr  )r"  T)r   r1  rf   rh   rg   )r/  r6   r0  r   )r6   r0  r/  )=r9  re   r  r   r<  r  r  r~   rB  r   r   r7  r   r1   r   r8  ZaddPrinterToClassr>  rE  rB  r!  r   r   r  r`  r   r3   Z	writebackrA   rx   r   r;   r<   rm  r   rI   r   Z
addPrinterrC  ZsetPPDPageSizer   r?   rv  ZfatalExceptionZactivateNewPrinterZsetPrinterLocationZsetPrinterInfor  r   r  ZgetPPDr  r   rI  ZIPP_NOT_FOUNDr3  ZcopyPPDOptionsrD   r+  r   r5   )r  rE   r4   r  r  r   ZmembersZmemberr`   Zmsgr   r$  r  rJ  r  r   on_btnNPApply_clickedZ#NewPrinterGUI.on_btnNPApply_clicked  s   !!!""**-%)D"!!$???OO##&"DO&&)"&D!!$GG>>**,D))224H((113D::Dhhw&,T-=-=>G
%F!		33FA & *  $66C{{kkoo'')888r" ,,--/  " 0 $''($$''""%II&&*=(>(EF#c3''II(( #$ ) C[II((.2X ) G  ..sMM!4DEII((s.2X ) G II$$&4(()GGII&&*@(AD(HI..		4@		,,T8<		((t4 II$$')II&&*@(AD(HI'')		$$T$6 II$$'&!%0hNN2&II&&*@(AD(HI C#s##))44664		,,T5,AII(((;#yy//5H((8,CIIh' //::<<txx88..t}}cB..sMM!4DE #ll113F$$& 4II(((7 II$$'!22NN1""$GGII-!22II0$2M2MNII)4$((1JKs ( ! ! == 66##A+N == 66t,,-##A+		((*#t,,-		((*" == 66##A+		((+	 == 66##A+		((+	2  == 4#$66++A334
 }}  vvHQ''/II,,/	 }}  vvHQD..."++A3		003, }}  vvHQ''/II,,/	s   ^? ^,:^? 15` '"` 
A` =Ab/ /,d &e' f) !Ah .i> ,^<7^? ;^<<^? ?_>_99_>b,Aa**?b,/d9dde$ 9ee$'f&<f!!f&)h>9g==hi;%i6+i66i;>k9kk)Ar@  r:  r?  rx   r   r   r   r2  r6  r5  r   r7  r   r)  ru  rs  rt  r   r   r8  rJ  r   r  rV  rs  ru  rt  rr  r4  r  r   r3  r   r   r  r9  rx  r   r   r  r   r   r   r&  r   r   r   r-  r   r3  r  r   r  r   r:  r   r;  r<  r5   r7  r   r   r   r  r   r   )NNNr   NNNr    r9   r-  r  )NN)F)r  r  r  r  r   ZSignalFlagsZRUN_LASTr   r&  Z__gsignals__rV  rX  r^  r  r  r  r  ra  r  r  r  r   r  r  r  r  r!  r%  r#  r*  re   rQ  r=  rI  rH  rJ  rK  rM  rL  rR  r]  r_  ro  r}  rz  rT  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<  rN  rA  rE  rF  rP  rH  rM  rU  r^  rb  re  r  rY  r  r  ry  rR  r  r  r	  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   rY  r   r   r  r  r  r  r!  r"  r'  r#  r  rZ  r)  r,  r*  r+  r2  r  r5  r/  r<  r;  r(  r  rB  rA  r4  r  r  rK  r  Z__classdictcell__)Z__classdict__s   @r   rd   rd      s     	W00994DW00994#HW00994!"%& 	"G$7$7$@$@$#OW00994D
L !"!" !J 
 !& 	Qaq!!!11
"a"F	"# !Q
B`DJ=.
"")4!K 
!204)$$66:&P8t/>bbJM^!F GD%N4`N4	c(JM(^* 2!h:98A6F 6 A2&/8
"0H4,Qf('T$>L)_SF<F<P8
*,A`)DK&I& P$<$ ;K=Z	%

6 )*)!V#J)XcJ
8D,%&+\6t&PH42h<
LL\
0=d
!+@_,B*AtlaJ20lw wr   rd   c                  s    \        R 4       R# )a  
This is the test/debug mode of the new-printer dialog of system-config-printer.

Options:

  --setup-printer URI
            Select the (detected) CUPS device URI on start up
            and run the new-printer wizard for it.

  --devid   Supply a device ID which should be used for the
            setup of the new printer with "--setup-printer".
            This can be any printer's ID, so that driver 
            selection can be tested for printers which are not
            physically available.
N)rc  r   r   r   	show_helprL    s    	 
1 
2r   Z__main__r  r   zsetup-printer=zdevid=z--setup-printerz--devidZuiZSYSTEM_CONFIG_PRINTER_UIc                  s0    \         P                  ! 4        R # r9   )r   Z	main_quit)rB  s   *r   	on_signalrM    s    r   rf   rg   ri   r0  )rO  r4  r6   r9   )Wr   r?  rC  r   r  Zsysr   r  r  rY   Zhttp.clientr  r   r  r  Ztimedopsr  Zgi.repositoryr   r   r0  r8  r  r  r   r   r   Zguir   Zoptionwidgetsr   r  rh  Zurllib.requestr   Zurllib.parseZsmburir	   Zerrordialogsr
   r  rl  r   rX  r  ZgettextZinstallr   r   rT   r   r  r   r)   r1   r8   r?   rA   rH   rL   rc   rd   rL  r  ZgetoptZ
gnu_getoptZargvr  rB  ZGetoptErrorZexitZsetup_printerr4  ZoptZoptargr  Z	ppdippstrZ	setlocaler  rQ  Zset_debuggingZset_debugprint_fnrQ   ri  rM  r   Zmainr   r   r   <module>rN     sM  2    3  / / /         O  !   &   #   )       v~~1A1A B ) *  6@ZCF ZCxF2 z&&b)9)1)34
d MEV##"MIE	  .2BJJ)*
fmmR(NN4!!:.A II	*II!9-II ), 	"}EJ		HHKI OKOXK  !s   I	 *I 	I*J J