
    Hfu8                        d dl Z d dlZd dlZd dlmZ d dlZd dlZd dlZ ej                  e j                  e j                         d dlZd dlZd dlmZ d dlmZ d dlmZ d dlZd dlmZ d dl d dlZd dl d dlZd dlZd dlZd dlZd dlZd d	lmZmZ d dlZe j>                  Z d
 Z!d Z" G d de      Z#e$dk(  rd dl%Z% e&e%jN                        dk  r e(d        e%jR                  d        e*d       dejV                  d<    ejX                  ejZ                  d        ej\                           ej^                         Z0d Z1 e#       Z2e2jg                  de1       e2ji                  e%jN                  d          e0jk                          yy)    N)Gtk)domain	localedir)GObject)GLib)GtkGUI)OptionWidget)*)busyreadyc                  @    t        j                         } | d   dk(  ry| S )Nr   /	localhost)cups	getServer)hosts    5/usr/share/system-config-printer/printerproperties.pyCUPS_server_hostnamer   5   s!    >>DAw#~K    c                 $    | j                          y)NT)hide)widgetevents     r   on_delete_just_hider   ;   s    
KKNr   c            
          e Zd Zej                  j
                  ddfej                  j
                  ddfdZej                   e	d      ej                   e	d      ej                   e	d      ej                   e	d      iZd Zd	 Zd
 ZdEdZd Zd Zd ZdFdZd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"dGdZ#	 	 dHdZ$d Z%d  Z&d! Z'd" Z(d# Z)dId$Z*d% Z+d& Z,d' Z-d( Z.d) Z/d* Z0d+ Z1d, Z2dEd-Z3dFd.Z4d/ Z5d0 Z6d1 Z7d2 Z8d3 Z9d4 Z:d5 Z;d6 Z<d7 Z=d8 Z>d9 Z?dGd:Z@d; ZAd< ZBd= ZCd> ZDd? ZEd@ ZFdA ZGdB ZHdC ZIdD ZJy)JPrinterPropertiesDialogN )destroydialog-closedIdle
ProcessingBusyStoppedc           #         t         j                   j                  |        	 t        j                  t        j                        | _        t        j                  t        j                        | _        d | _        d x| _        | _        t!               | _        t!               | _        t'               | _        d| _        | j-                  dg dit.        j0                         | j2                  | _        | j4                  j7                  d| j8                         | j:                  | j<                  | j>                  | j@                  fD ]K  }tC        jD                         }|jG                          |jI                  |d	       |jK                  |d
d       M | jL                  }|j7                  d| jN                         tC        jP                  tS        d            }tC        jT                         }|jI                  |d       tC        jD                         }|jI                  |d       |jW                  || jX                  d        |jW                  || jZ                  d        |j]                  d	       | j^                  ja                  |       | j^                  jc                         }|je                  tB        jf                  jh                         tC        jj                  tl        tn              }| j^                  jq                  |       | j2                  j7                  dtr               d| _:        tS        d      | jv                  ftS        d      | jx                  ftS        d      | jz                  ffD ]  \  }	}
tC        jj                  tn              }tC        jD                         }tC        jP                  |	|d      }|
jq                  |       |
ja                  |       |
jc                         je                  tB        jf                  j|                          | j4                  j7                  d| j~                         tC        jP                  dtC        jD                         d      }| j                  ja                  |       | j                  jc                         }|j7                  d| j                         |je                  tB        jf                  j                         | j                  tS        d      gtS        d      gtS        d      gtS        d      ggf| j                  dgdgdgdgdgdggf| j                  tS        d       gtS        d!      gtS        d"      gtS        d#      gtS        d$      gtS        d%      gtS        d&      gtS        d'      ggf| j                  tS        d(      gtS        d)      gtS        d*      gtS        d+      gtS        d,      gtS        d-      gtS        d.      gtS        d/      gtS        d0      gtS        d1      gtS        d2      gtS        d3      gtS        d4      gtS        d5      gtS        d6      gtS        d7      gtS        d8      gtS        d9      gtS        d:      gtS        d;      gtS        d<      gtS        d=      gtS        d>      gtS        d?      gtS        d@      gtS        dA      gtS        dB      gtS        dC      ggf| j                  g f| j                  tS        dD      gtS        dE      gtS        dF      ggf| j                  g f| j                  tS        dG      gtS        dH      ggf| j                  tS        dI      gtS        dG      gtS        dJ      ggf| j                  g ff
D ]  \  }}tC        jj                  tn              }|D ]  }|j                  |K        tC        jD                         }|jI                  |d	       |jK                  |d
d       |jq                  |        t        j                  dLtl        dM| j                  | j                        t        j                  dNtl        d| j                  | j                  g dOtS        dP      Q      t        j                  dRt        d| j                  | j                        t        j                  dStl        dM| j                  | j                  g dTd	U      t        j                  dVtn        dW| j                  | j                  g dXY      t        j                  dZtl        d[| j                  | j                        t        j                  d\tl        d| j                  | j                  g d]d	U      t        j                  d^tl        d_| j                  | j                        t        j                  d`tn        da| j                  | j                  d	b      t        j                  dctn        dd| j                  | j                  g ded	U      t        j                  dftn        dg| j                  | j                  d	b      t        j                  dhtn        di| j                  | j                  didjgY      t        j                  dktl        d| j                  | j                  g dld	U      t        j                  dmt        j                  t        j                  dn      | j                  | j                  d	b      t        j                  dotn        dp| j                  | j                  d	b      t        j                  dqt        d| j                  | j                        t        j                  drtl        d[| j                  | j                        t        j                  dstl        d[| j                  | j                        t        j                  dttl        d| j                  | j                        t        j                  dutl        dv| j                  | j                        t        j                  dwt        dx| j                  | j                        t        j                  dyt        dz| j                  | j                        t        j                  d{tl        d| j                  | j                        t        j                  d|tl        d| j                  | j                        t        j                  d}tl        d| j                  | j                        t        j                  d~tl        d| j                  | j                        t        j                  dt        d| j                  | j                        t        j                  dt        d| j                   | j                        t        j                  dtl        dM| j                  | j                        g}i | _        i | _        |D ]8  }|| j                  |j                  <   || j
                  |j                  <   : d | _        d | _        | j                          t        d| z         y #  t                dt        j                  d<   t        j                  t        j                  d       t        j                  t        j                        | _        t        j                  t        j                        | _        Y ixY w)NCLC_ALL Fr   )pr   tvPrinterPropertiesbtnPrinterPropertiesCancelbtnPrinterPropertiesOKbtnPrinterPropertiesApplybtnPrinterPropertiesClosentbkPrinterentPDescriptionentPLocationentPMakeModellblPMakeModel2	entPState
entPDevicelblPDevice2btnSelectDevicebtnChangePPDchkPEnabledchkPAccepting
chkPSharedlblNotPublishedbtnPrintTestPagebtnSelfTestbtnCleanHeadsbtnConflictcmbPStartBannercmbPEndBannercmbPErrorPolicycmbPOperationPolicy
rbtnPAllow	rbtnPDenytvPUsersentPUserbtnPAddUserbtnPDelUserlblPInstallOptionsswPInstallOptionsvbPInstallOptions
swPOptionslblPOptions
vbPOptionsvbClassMemberslblClassMemberstvClassMemberstvClassNotMembersbtnClassAddMemberbtnClassDelMemberbtnRefreshMarkerLevelstvPrinterStateReasonsntbkPrinterStateReasons
sbJOCopiesbtnJOResetCopiescmbJOOrientationRequestedbtnJOResetOrientationRequestedcbJOFitplotbtnJOResetFitplotcmbJONumberUpbtnJOResetNumberUpcmbJONumberUpLayoutbtnJOResetNumberUpLayoutsbJOBrightnessbtnJOResetBrightnesscmbJOFinishingsbtnJOResetFinishingssbJOJobPrioritybtnJOResetJobPriority
cmbJOMediabtnJOResetMedia
cmbJOSidesbtnJOResetSidescmbJOHoldUntilbtnJOResetHoldUntilcmbJOOutputOrderbtnJOResetOutputOrdercmbJOPrintQualitybtnJOResetPrintQualitycmbJOPrinterResolutionbtnJOResetPrinterResolutioncmbJOOutputBinbtnJOResetOutputBin
cbJOMirrorbtnJOResetMirrorsbJOScalingbtnJOResetScalingsbJOSaturationbtnJOResetSaturationsbJOHuebtnJOResetHue	sbJOGammabtnJOResetGammasbJOCpibtnJOResetCpisbJOLpibtnJOResetLpisbJOPageLeftbtnJOResetPageLeftsbJOPageRightbtnJOResetPageRightsbJOPageTopbtnJOResetPageTopsbJOPageBottombtnJOResetPageBottomcbJOPrettyPrintbtnJOResetPrettyPrintcbJOWrapbtnJOResetWrapsbJOColumnsbtnJOResetColumns
tblJOOtherentNewJobOptionbtnNewJobOptionvboxMarkerLevelsrU   )r   zdelete-eventTtextr   clickedMessage   zMembers of this classOthersUsers)r   response)markupchangedzPortrait (no rotation)zLandscape (90 degrees)zReverse landscape (270 degrees)zReverse portrait (180 degrees)1246916zLeft to right, top to bottomzLeft to right, bottom to topzRight to left, top to bottomzRight to left, bottom to topzTop to bottom, left to rightzTop to bottom, right to leftzBottom to top, left to rightzBottom to top, right to leftNoneStaplePunchCoverBindzSaddle stitchzEdge stitchFoldTrimBalezBooklet makerz
Job offsetzStaple (top left)zStaple (bottom left)zStaple (top right)zStaple (bottom right)zEdge stitch (left)zEdge stitch (top)zEdge stitch (right)zEdge stitch (bottom)zStaple dual (left)zStaple dual (top)zStaple dual (right)zStaple dual (bottom)zBind (left)z
Bind (top)zBind (right)zBind (bottom)z	One-sidedzTwo-sided (long edge)zTwo-sided (short edge)NormalReverseDraftHigh)rowcopies   zorientation-requested)r            zAutomatic rotation)combobox_mapspecial_choicefitplotz	number-up)r      r   r   	      )r   use_supportedznumber-up-layoutlrtb)r   lrbtrltbrlbttblrtbrlbtlrbtrl)r   
brightnessd   
finishings)r   r   r   r         r   
                                                   2   3   4   5   zjob-priorityr   mediaA4)r   sides	one-sided)r   ztwo-sided-long-edgeztwo-sided-short-edgezjob-hold-untilzno-holdoutputordernormalreversezprint-quality)r   r   r   zprinter-resolution),  r   r   z
output-binzface-upmirrorscaling
saturationhuegammai  cpig      $@lpig      @z	page-leftz
page-rightzpage-topzpage-bottomprettyprintwrapcolumnsz+%s)r   __init__locale	getlocaleLC_MESSAGESlanguageLC_CTYPEencodingnonfatalExceptionosenviron	setlocaler&   parentprinterppdset	conflictsr   dict
signal_idsupdating_widgets
getWidgetsconfigPACKAGEr   dialogconnect	on_deleter?   r@   rA   rB   r   CellRendererTextclear
pack_startadd_attributerU   !on_btnRefreshMarkerLevels_clickedTreeViewColumn_CellRendererPixbufset_cell_data_funcset_printer_state_reason_iconset_printer_state_reason_textset_resizablerV   append_columnget_selectionset_modeSelectionModeNONE	ListStoreintstr	set_modelr   static_tabsrQ   rR   rE   MULTIPLEprinter_properties_responser(   (on_tvPrinterProperties_selection_changedSINGLErZ   r^   r`   rd   rh   rj   rl   rn   rp   rt   appendoptionsOptionAlwaysShownrX   rY   OptionAlwaysShownSpecialr[   boolr\   r]   r_   ra   rb   rc   re   rf   rg   ri   rk   rm   ro   rq   IPPResolutionrr   rs   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   floatr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   job_options_widgetsjob_options_buttonsr   button_monitor	_ppdcacheconnect_signals
debugprint)selfcomboboxcellbtncolumniconr   	selectionstorenametreeviewmodelcolselr   optsr   options                     r   r   z PrinterPropertiesDialog.__init__O   s     $'	>",,V-?-?@DM",,V__=DM "&&txu& !&2Y8Z9x  &~~y 	 \	/~ 22 	^T^^< --++--113 	5H ''*DNNt,""D&!4	5 ))Y F FG ##Qy\2%%(4'##&4'!!4)K)KTR!!4)K)KTRd#""00&9..<<?	C--223sC("",,e4$$,,n.A	C  &')<)<=x[$001wZ' 	JND( MM#&E'')D''d;Fu%""6*""$--c.?.?.H.HI	J 	Z)I)IJ   "c&:&:&=aH  ..4&&447Y M MNc''../ 66456456=>?<=>@A **usecUTFCE 00:;<:;<:;<:;<:;<:;<:;<:;<>? ,, F)H+G*G*F)O,-M*+F)F)F)O,-L/*/01234012345012/01123234012/01123234M*+L/*N+,O,-7/0@ ,K.)34545689
 ++R0--H+I,)* ..G*H+F)&'
 ++R0KFO	% VN MM3'E '#&' ''*DtT*  $2e$_O	%b **Hc1,0OO,0,A,AC 11)30055!-!"#7!8: **ItU,0,<,<,0,B,BD **Ka,0,>,>,0,C,C9L<@	B **,>V,0,D,D,0,I,I<F
G **L#s,0,?,?,0,E,EG **L#q,0,@,@,0,E,E<N =A
B **NC,0,@,@,0,F,FH **GS,0
 -1OO,0,@,@<@B **GS+,0OO,0,@,@-G =AB **,<c,5,0,?,?,0,D,D<@	B **M3,4,0,A,A,0,F,F.6.7-:; **OS!,0,B,B,0,G,G;F<@	B **,@,3,A,A,3,A,A+,N,0,G,G,0,L,L<@B **L#,5,0,?,?,0,D,D<@	B **HdE,0OO,0,A,AC **IsC,0,<,<,0,B,BD **L#s,0,?,?,0,E,EG **E3,0LL,0,>,>@ **GS$,0NN,0,@,@B **E5$,0LL$:L:LN **E5#,0LL$:L:LN **Ka,0,=,=,0,C,CE **L#q,0,>,>,0,D,DF **JQ,0,<,<,0,B,BD **M3,0,?,?,0,E,EG **M4,0,@,@,0,F,FH **FD%,0,?,?A **IsA,0,<,<,0,B,BDu]| $& #%  	=F6<D$$V]]36<D$$V]]3	= EDL!K	>#&BJJx fmmR0",,V-?-?@DM",,V__=DMs   Ay B{c                 $    t        d| z         | `y )Nz-%s)r2  r/  r3  s    r   __del__zPrinterPropertiesDialog.__del__  s    EDL!Mr   c                     | j                   j                  |g       }|j                  ||j                  ||      f       || j                   |<   y N)r  getr%  r	  )r3  
collectionobjr;  handlercs         r   _connectz PrinterPropertiesDialog._connect   sB    OOR0	3T7345&'
#r   c                     |r|g}n#t        | j                  j                               }|D ]F  }|| j                  v s| j                  |   D ]  \  }}|j                  |        | j                  |= H y rF  )listr  keys
disconnect)r3  rH  collrI  	signal_ids        r   _disconnectz#PrinterPropertiesDialog._disconnect  su    $Jdoo2256J 	*Dt&(,(= /$S)NNI./ OOD)	*r   c                 `    | j                   r"| j                   j                          d | _         y y rF  )r   r   rC  s    r   
do_destroyz"PrinterPropertiesDialog.do_destroy  s*    ''((003+/D( (r   c                     t        d| z         | j                          d | _        d | _        d | _        | j                  d       y )NzDESTROY: %sr   )r2  rS  r   	ppd_localr   emitrC  s    r   r   zPrinterPropertiesDialog.destroy  s<    MD()		9r   c                    || _         |sy | j                   j                  d| j                         | j                   j                  d| j                         | j                   j                  d| j                         | j                   j                  d| j
                         | j                   j                  d| j                         y )Nzprinter-eventzprinter-removedzstate-reason-addedzstate-reason-removedzcups-connection-error)r/  r	  on_printer_eventon_printer_removedon_state_reason_addedon_state_reason_removedon_cups_connection_error)r3  monitors     r   set_monitorz#PrinterPropertiesDialog.set_monitor  s    0E0EF0$2I2IJ3T5O5OP5#;;	=6#<<	>r   c                    || _         || _        || _        |st        j                         | _        |st        j
                         | _        | j                  %| j                  t        j                  d             | j                  j                         | _        | j                  d       t        j                         | _        | j!                  d| j                  d| j"                         | j!                  d| j                  d| j$                         |r| j&                  j)                  |       | j+                  ||||       | j,                  sy | j.                  | j0                  | j2                  fD ]9  }| j,                  j4                  r|j7                          *|j9                          ; | j,                  j4                  r| j:                  j9                          n| j:                  j7                          | j=                          | j>                  jA                  tC        d             | jD                  jA                  tC        d             | jF                  }|jI                  tK        jL                         d d       tO               }| j&                  jQ                  tC        d	      ||fz         | j&                  j9                          y )
NF)monitor_jobsnewPrinterGUIzprinter-modifiedzdialog-canceled)r   
encryptionr   zCUPS test pagezyTypically shows whether all jets on a print head are functioning and that the print feed mechanisms are working properly.zPrinter Properties - '%s' on %s))r   _host_encryptionr   r   getEncryptionr/  r`  r_  Monitorget_ppdcacher0  rS  
newprinterNewPrinterGUIrc  rL  on_printer_modifiedon_printer_not_modifiedr  set_transient_forloadr   r)   r*   r+   
discoveredr   showr,   setDataButtonStater;   set_tooltip_textr  r<   r(   
set_cursorr   TreePathr   	set_title)r3  r;  r   rd  r   r.  r<  s          r   rq  zPrinterPropertiesDialog.show,  s8   
%)DJ#114D== gooEBC336/*'558(:(:)4+C+C	E(:(:($*F*F	HKK))62		4dz&	I||6622557 	F ||&&	 <<""**//2**//2"..q1A/BC))! -E +F 	G ++S\\^T59#&q ".  /26 > 	?r   c                 *   | j                   st        j                  j                  }|t        j                  j                  k(  rt        d      }|dz  }| j                  D ]  }||j                  j                  dz   z  }  t        j                  | j                  ddt        j                  j                  t        j                  j                  |      }|j                          |j!                          y |t        j                  j"                  k(  s|t        j                  j$                  k(  rS|t        j                  j"                  k(  rt'        | j(                        dk(  rd}n| j+                  | j                         }|t        j                  j$                  k(  r8s6	 | j-                  | j                   j.                         | j1                          |t        j                  j"                  k(  rr|t        j                  j                  k(  rxd | _        d | _        d | _         |j7                          | j9                  d       | j:                  j<                  j?                  d	      r| j:                  jA                  d        y y y #  Y xY w)
Nz^There are conflicting options.
Changes can only be applied after
these conflicts are resolved.z


T)r   modaldestroy_with_parentmessage_typebuttonsr   r   Fr   visible)!r   r   ResponseTypeCANCELREJECTr  r  rA  r   MessageDialogr  MessageTypeWARNINGButtonsTypeCLOSErunr   OKAPPLYlenr   save_printerro  r;  rr  r   rW  r   rX  rc  NewPrinterWindowget_propertyon_NPCancel)r3  r  r   messagerA  faileds         r   r"  z3PrinterPropertiesDialog.printer_properties_response_  s    ||''..Hs''... 8 9G vG.. 56==--445&&dkk-1t47OO4K4K/2/D/D,3	5F
 JJLNN((+++((...C,,///C4F!4K**DLL9s''---f		4<<,,- ##&)),,,V((///DH!DNDLKKNII'!!22??K""..5 L 0s   $%J Jc                 X    | j                  |t        j                  j                         y rF  )r"  r   r~  r  )r3  r  r   s      r   r
  z!PrinterPropertiesDialog.on_delete  s    ((&#2B2B2I2IJr   c                 Z   t        |t        j                        r|j                         }nt        |t        j                        r|j                         }nt        |t        j                        r|j                         }nXt        |t        j                        r3|j                         }|j                         }|j                  |d      }nt        d      | j                  }| j                  |j                  | j                  |j                   | j"                  |j$                  | j&                  |j(                  | j*                  |j,                   | j.                  |j0                  | j2                  |j4                  | j6                  |j8                  | j:                  |j<                  | j>                  |j@                  | jB                  |jD                  i}||   }||k(  r| jF                  jI                  |       n| jF                  jK                  |       | jM                          y )Nr   zWidget type not supported (yet))'
isinstancer   CheckButton
get_activeEntryget_textRadioButtonComboBox	get_modelget_active_iter	get_value
ValueErrorr   r.   infor/   locationr3   
device_urir7   enabledr8   	rejectingr9   	is_sharedr?   job_sheet_startr@   job_sheet_endrA   error_policyrB   	op_policyrC   default_allowr   discardaddrr  )r3  r   valuer=  iterp
old_values	old_values           r   on_printer_changedz*PrinterPropertiesDialog.on_printer_changed  s   fcoo.%%'E		*OO%E0%%'E-$$'E))+DOOT1-E>??LL  166

OOallqyyQ[[OOakk  1#4#4  1>>$$q{{OOQ__
 v&	LL  (LLV$!r   c                    |j                         r| j                  j                  |       n| j                  j                  |       |j                  r| j                  j                  |       n| j                  j                  |       | j                          | j                  rf| j                  rY|| j                  k(  rI|j                         dk(  r| j                  j                          y | j                  j                          y y y y )NTrue)
is_changedr   r  r  r  rr  option_manualfeedoption_inputslotget_current_valuedisableenabler3  rA  s     r   option_changedz&PrinterPropertiesDialog.option_changed  s    LLV$LL  (NNv&NN""6*!""t'<'<d,,,'')V3%%--0%%,,/	 - (="r   c                     | j                   j                         }g |j                  fdd       j                          S )z%return list of usernames from the GUIc                 L    j                  | j                  |d      d         S Nr   )r%  rG  )r=  pathr  dataresults       r   <lambda>z3PrinterPropertiesDialog.getPUsers.<locals>.<lambda>  s$    mmEIIdA$6q$9: r   N)rE   r  foreachsort)r3  r=  r  s     @r   	getPUsersz!PrinterPropertiesDialog.getPUsers  s=    '') ;<@	Br   c                     | j                   j                         }|j                          |D ]  }|j                  |f        | j	                  | j
                         | j                  | j                          y)z$write list of usernames into the GUIN)rE   r  r  r%  on_entPUser_changedrF   on_tvPUsers_cursor_changed)r3  usersr=  users       r   	setPUsersz!PrinterPropertiesDialog.setPUsers  s`    '') 	"DLL$!	" 	  /''6r   c                 X   | j                   sy| j                         | j                   j                  k7  r&| j                  j	                  | j
                         n%| j                  j                  | j
                         | j                  | j
                         | j                          y)zLcheck if users in GUI and printer are different
        and set self.changedN)	r   r  except_usersr   r  rE   r  r  rr  rC  s    r   checkPUsersChangedz*PrinterPropertiesDialog.checkPUsersChanged  sq     ||>>t||888LLT]]+LL  /''6!r   c                     | j                   j                         }|rF| j                  j                         j	                  d|f       | j                   j                  d       | j                          y )Nr   r'   )rF   r  rE   r  insertset_textr  )r3  r.  r  s      r   on_btnPAddUser_clickedz.PrinterPropertiesDialog.on_btnPAddUser_clicked  sT    }}%%'MM##%,,Q8MM""2&!r   c                 P   | j                   j                         j                         \  }}|D cg c]"  }t        j                  j                  ||      $ }}|D ]4  }|j                         }|j                  |      }|j                  |       6 | j                          y c c}w rF  )
rE   r  get_selected_rowsr   TreeRowReferencenewget_pathget_iterremover  )r3  r.  r=  rowsr   r  r  s          r   on_btnPDelUser_clickedz.PrinterPropertiesDialog.on_btnPDelUser_clicked  s    mm113EEGtAEF#$$((%5FF 	C<<>D>>$'DLL	 	! Gs   'B#c                 h    | j                   j                  t        |j                                      y rF  )rG   set_sensitiver)  r  r3  r   s     r   r  z+PrinterPropertiesDialog.on_entPUser_changed  s"    &&tFOO,='>?r   c                     |j                         }|y |j                         \  }}| j                  j                  t	        |             y rF  )r  r  rH   r  r)  )r3  r   r9  r=  r  s        r   r  z2PrinterPropertiesDialog.on_tvPUsers_cursor_changed   sC    ((+	113t&&tDz2r   c                 N   | j                   |   }|j                          |j                  | j                  v r| j                  |j                  = |j	                         r| j
                  j                  |       n| j
                  j                  |       | j                          y rF  )	r-  resetr;  server_side_optionsr  r   r  r  rr  r3  r.  rA  s      r   on_job_option_resetz+PrinterPropertiesDialog.on_job_option_reset	  s{    ))&1;;$222((5LLV$LL  (!r   c                    | j                   sy | j                  |   }|j                          |j                         r5|| j                  |j
                  <   | j                  j                  |       nJ|j
                  | j                  v r| j                  |j
                  = | j                  j                  |       | j                          y rF  )	r   r,  r   r  r  r;  r  r  rr  )r3  r   rA  s      r   on_job_option_changedz-PrinterPropertiesDialog.on_job_option_changed  s    ||))&14:D$$V[[1LLV${{d666,,V[[9LL  (!r   c                    t        | j                        }|dk(  r| j                  j                          y | j                  j	                         }|D ]  }| j                  j                  |        d}| j                  D ]*  }| j                  j                  |j                  d|dd       |j                  j                  dd       | j                  j                  |j                  d|dd       |j                  j                  |       t        j                  j                  t        j                  t        j                  j                         }|j#                  d| j$                         ||_        |j                  |       | j                  j                  |d|dd       |dz  }- | j                  j)                          y )Nr   r                 ?r   r   )r  other_job_optionsr   r   get_childrenr  attachlabelset_alignmentselectorr  r   Buttonnew_from_icon_nameSTOCK_REMOVEIconSizeBUTTONr	  on_btnJOOtherRemove_clickedpyobjectshow_all)r3  editablenchildrenchildioptr6  s           r   draw_other_job_optionsz.PrinterPropertiesDialog.draw_other_job_options&  sc   ''(6OO  "??//2 	+EOO""E*	+)) 	COO""CIIq!Q:II##S#.OO""CLL!Q1=LL&&1**//1A1A141D1DFCKK	4#C#CDCLx(OO""31a3FA	 	  #r   c                    	 t        j                  |||| j                        }||_        | j                  j                  |       | j                  |       || j                  |<   || j                  v rd|_        | j                  j                  |       | j                          |r|j                  j                          y y # t        $ r t	                Y y w xY w)Nr  F)r&  r	   r  r  r   is_newr  r%  r  r  r   r  rr  r  
grab_focus)r3  r;  r  	supportedr  r  rA  s          r   add_job_optionz&PrinterPropertiesDialog.add_job_option@  s    	))$y*.*=*=?F %%v.##h#7)/  &4<<!FM !OO&&)   	 	s   "C CCc                 Z   |j                   }| j                  j                  |       | j                          |j                  r| j
                  j                  |       n%| j
                  j                  |j                         | j                  |j                  = | j                          y rF  )r  r  r  r  r  r   r  r  r;  r  rr  r  s      r   r  z3PrinterPropertiesDialog.on_btnJOOtherRemove_clickedU  sz    %%v.##&==LL  ( LLV[[)$$V[[1!r   c                    | j                   j                         }| j                  |       | j                  j	                          | j                   j                  d       | j                  j                  d       | j                          y )Nr'   F)	r   r  r  r   r  r  r   r  rr  )r3  r.  r;  s      r   on_btnNewJobOption_clickedz2PrinterPropertiesDialog.on_btnNewJobOption_clickeda  sh    ##,,.D!  "%%r***E2!r   c                     | j                   j                         }t        |      dkD  xr || j                  v}| j                  j                  |       y r  )r   r  r  r  r   r  )r3  r   r   actives       r   on_entNewJobOption_changedz2PrinterPropertiesDialog.on_entNewJobOption_changedi  sG    ##,,.d)a-IT1I1I%I**62r   c                 &    | j                  |       y rF  )r  r  s     r   on_entNewJobOption_activatez3PrinterPropertiesDialog.on_entNewJobOption_activaten  s    ''0r   c                 
   	 | j                   j                  }|j                  dg       }t        | j                         xr/ | j                   j
                  xr | j                   j                   }	 |j                  d       |}| j                  j                  |       | j                   j                  xs t        | j                         }| j                  | j                  fD ]  }|j                  |        d}d}|rm| j                   j                  t        j                   z  dk7  rC	 |j                  d       |j                  dg       }	|	D ]  }
|
dk(  rd}|s n|
d	k(  sd}|s n || j"                  f|| j$                  ffD ](  \  }}|r|j'                          |j)                          * 	 | j,                  s| j                   j.                  so| j                   j0                  j3                  d
      s%| j                   j0                  j3                  d      rV| j                   j0                  j5                  d      r1| j                   j                  s| j                  j'                          n| j                  j)                          d}d}| j6                  rqt9        d       | j:                  j'                          | j6                  D ]<  }|j<                  j?                         | j@                  j?                         k(  rd};d}> n| j:                  j)                          tC        d      }tC        d      }|rd|z  }|rd|z  }| j@                  jE                  |       | jF                  jE                  |       | jH                  jK                         }|rtM        | jN                  jQ                               D ]  }| jN                  jS                  |      }| jN                  jU                  |      j?                         }	 || j@                  j?                         k(  r&|jW                  |f      }|jY                  |d|       nB|| jF                  j?                         k(  r%|jW                  |f      }|jY                  |d|        | jZ                  j                  t]        | j                        dkD  xr | j6                          | j^                  j                  | j6                          y # t        $ r d}Y w xY w# t        $ r Y w xY w#  t+                Y wxY w# t        $ r Y vw xY w)Nzdocument-format-supportedzapplication/postscriptFr   application/vnd.cups-commandzprinter-commandsPrintSelfTestPageTCleanzdnssd:zmdns:z/cupszConflicts detectedzInstallable OptionszPrinter Options	<b>%s</b>)0r   other_attributesrG  r)  r   r  r  indexr  r;   r  rp  r6   r5   typer   CUPS_PRINTER_COMMANDSr<   r=   rq  r   r   r   remoter  
startswithendswithr  r2  r>   	tab_labelr  rI   r  
set_markuprM   r(   r  ranger-   get_n_pagesget_nth_pageget_tab_labelr  	set_valuer+   r  r*   )r3  attrsformats	printabletestpage
adjustabler.  selftest
cleanheadscommandscommandcondinstallableboldoptionsboldrA  installabletextoptionstextr:  r  pager  r  s                         r   rr  z*PrinterPropertiesDialog.setDataButtonStater  s   2	 LL11Eii ;R@G!4<<00 4--4!\\333 !78$
 !!//:"ll55Lt||9LMJ,,//1 2$$j12 HJ""T%?%??AEMM#AB  %yy);R@H#+ 	&"&99'+H) %$/)-J' %	& #+D,<,<!=",d.@.@!A!C #fKKNKKN# 88\\  ||&&11(;||&&11':ll%%..w7LL##!!&&)!!&&)>>,-!!#.. '##,,/43J3J3S3S3VV&*O"&K	' !!#12)*)O;O%3K**O<##[1((225D,,88;< ''44a8((66=FFI
 7 7 @ @ BB$~~t4q/B$"2"2";";">>$~~t4q+> 	&&44c4<<6H16L 7I:>..6H	J##11t~~3EF{  ! !< " 	 Z "  s{   A/T 2S= B'T -1T T 'T ,T /AT BT1=TT TT 	TT TT T.1	T>=T>c                 0   || j                   }d}|j                  }|j                  r(| j                  j	                  t        d      |z         n'| j                  j	                  t        d      |z         	 |j                  s_| j                  rS| j                          | j                  j                         s|r'| j                  j                  || j                         |j                  rt        j                  | j                        }|s&t        j                  dt        j                  j                   t        j"                  j$                  t        d            }|j'                  t        d             |j)                  t        j*                  t        j,                  j.                  t        j0                  t        j,                  j2                         |j5                         }|j7                          |t        j,                  j.                  k(  r| j                  j9                          y	d	}|j:                  d d  }	|D ]4  }
|
|	v r|	j=                  |
       | j                  j?                  |
|       6 |	D ]  }
| j                  jA                  |
|         | jB                  jE                         }| jF                  jE                         }| jH                  jE                         }| jJ                  jM                         }| jN                  jM                         }| jP                  jM                         }||jR                  k7  s|r| j                  jU                  ||       ||jV                  k7  s|r| j                  jY                  ||       |j                  s-||jZ                  k7  s|r| j                  j]                  ||       ||j^                  k7  s|r|ja                  |       ||jb                  k(  s|r|je                  |       ||jf                  k7  s|r|ji                  |       d
 } || jj                        } || jl                        } || jn                        } || jp                        }||jr                  k7  s||jt                  k7  s|r|jw                  ||       ||jx                  k7  s|r|j{                  |       ||j|                  k7  s|r|j                  |       | j                  jM                         }| j                         }||j                  k7  s||j                  k7  s|r|j                  ||       |j                  D ]"  }|| j                  vs|j                  |       $ | j                  j                         D ]  }|j                         s%|s|j                         |j                         k7  s8t        d|j                  d|j                                |j                  |j                  |j                                 	 | j                  j9                          t               | _R        | j                  j                  sld| j                  vr^| j                  j	                  t        d             	 | j                  j                         | _V        | j                  j9                          |s!	 |j                          | j                          | j                  j                          y# t        j                  $ r@}|j                  \  }}t        |||       | j                  j9                          Y d }~y	d }~ww xY w#  t                Y xY w# t        j                  $ r Y w xY w)NFzmodifying class %szmodifying printer %s)r   r   zThis will delete this class!)flagsr{  r|  r   zProceed anyway?Tc                 f    | j                         }| j                         }|j                  |d      S Nr   )r  r  r  )cmbr=  r  s      r   get_combo_valuez=PrinterPropertiesDialog.save_printer.<locals>.get_combo_value!  s-    (**-a00r   zSet z = server_settingszfetching server settings)\r  r;  is_classr   _begin_operationr  r   getPrinterSettingsnondefaultsMarked
addPrinterrj  getCurrentClassMembersrQ   r   r  r  r  r  r  format_secondary_textadd_buttonsSTOCK_CANCELr~  NOSTOCK_DELETEYESr  r   _end_operationclass_membersr  addPrinterToClassdeletePrinterFromClassr/   r  r.   r3   r7   r  r8   r9   r  setPrinterInfor  setPrinterLocationr  setPrinterDevicer  
setEnabledr  setAcceptingr  	setSharedr?   r@   rA   rB   r  r  setJobSheetsr  setErrorPolicyr  setOperationPolicyrC   r  r  r  	setAccess
attributesr  unsetOptionvaluesr  r  get_defaultr2  	setOptionIPPErrorargsshow_IPP_Errorr   r   _use_pk__dict__adminGetServerSettingsr3  r   getAttributesupdatePrinterPropertiesr/  update)r3  r   saveallr   class_deletedr;  new_membersr  r  old_membersmemberr  r  r  r  	acceptingsharedr2  r  r  r  r  r  r  rA  ess                              r   r  z$PrinterPropertiesDialog.save_printer  s   >[[F||II&&*>(?$(FGII&&*@(AD(HIc	##'')88--/7II((488(<(??@S@ST" .."#),)@)@$'OO$8$8!"#A!B	DF
 003D1EF&&(8(8#:J:J:M:M(+(8(8#:J:J:N:NP#ZZ\FNN$s//222		003#$(M &33A6) BF,#**62		33FDA	B
 * CFII44VTBC ((113H''002D113J&&113G**557I__//1FW\\!W		((t4)))W		,,T8<$$W///7		**4<'//)W""7+G---$$Y/***g!!&)1
 .t/C/CDO+T-?-?@M*D,@,@AL')A)ABI7#:#::!6!667$$_mDw333w&&|4G---**95 OO668M>>+L!6!66 4 44!!->!,, 0!9!99''/0 2299; O%%'--0F4F4F4HH171I1I1K!M N%%fkk63K3K3MNO 			  #uyy  %6dmm%K
 II&&*D(EF$'+yy'G'G'I$ II$$'%%(,,/ 	= }} 	VVFQ1a(II$$'		 $!# == sR   9F=\ 7L<\ 4A\ 7!\ A\ !].  ]? ]++6]&&]+.]<?^^c                 b    | j                   j                         D ]  }|j                           y rF  )r&  rP  	writebackr  s     r   r6  z*PrinterPropertiesDialog.getPrinterSettingse  s*    ll))+ 	F	r   c                     |j                         \  }}|r|| _        y 	 | j                  }|j                  |      r|j	                  |       y y # t        $ r Y y w xY wrF  )get_selected%printer_properties_last_iter_selectedAttributeErroriter_is_validselect_iter)r3  r9  r=  r  s       r   r#  z@PrinterPropertiesDialog.on_tvPrinterProperties_selection_changedk  sf    !..19=D6AA
 ""D)%%t, *	 " s   A 	AAc                     |j                         \  }}|O|j                         }|j                  |      }|j                  |d      }| j                  j                  |       y y r0  )
get_cursorr  r  r  r-   set_current_page)r3  r<  r  r7  r=  r  r  s          r   %on_tvPrinterProperties_cursor_changedz=PrinterPropertiesDialog.on_tvPrinterProperties_cursor_changedz  s_    !,,/v&&)E>>4(Dq)A--q1	 r   c                 8    | j                   j                          y rF  )r;   r   rC  s    r   printTestPagez%PrinterPropertiesDialog.printTestPage  s    %%(r   c                 ,   | j                   }|sy d }| j                  dk7  r\| j                  j                  d      }|r?t        j                  j                  t        d|j                  j                         z        }t        j                         }t        j                  d       	 t        j                  | j                  d| j                  | j                         }d }|j'                  t)        d             	 |rKt        j                  j+                  |      r,t-        d|z          |j/                  |j0                  |      }n&t-        d	       |j/                  |j0                        }|j;                          t        j                  |       |.t=        t)        d      t)        d      |z  | j                         y y # t"        $ r!}t%        d || j                         Y d }~y d }~ww xY w# t        j2                  $ r}|j4                  \  }}	|t        j6                  k(  rK| j                  d
k7  r<| j                  d   dk7  r*t9        t)        d      t)        d      | j                         nt%        ||	| j                         Y d }~ d }~ww xY w)NFPageSizeztestpage-%s.psr'   )try_as_rootr   rd  zprinting test pagezPrinting custom test page )filezPrinting default test pager   r   r   Not possible^The remote server did not accept the print job, most likely because the printer is not shared.	SubmittedzTest page submitted as job %dr   )r   r   
findOptionr   r  joinpkgdata	defchoicelowerr   getUsersetUserauthconn
Connectionr   re  rf  RuntimeErrorrU  r5  r  existsr2  rr  r;  rS  rT  IPP_NOT_AUTHORIZEDshow_error_dialogr@  show_info_dialog)
r3  r.  r   custom_testpager  r  rK  rc  job_idmsgs
             r   on_btnPrintTestPage_clickedz3PrinterPropertiesDialog.on_btnPrintTestPage_clicked  s   ,, 88u((%%z2C"$'',,w/?/2}}/B/B/D0E#F ||b	##T[[e*.**040@0@BA 	A234	4277>>/#B8?JK.= ) ? 896 	
dan ?@6I%)[[2 ?  	D!T[[1	 }} 	4vvHQT,,,

k)

1$!1^#4#$ &/ $0 $(;;0 q#t{{3	4s2   '7G ;A3G1 	G.G))G.1JBJJc                 ^   | j                   }|sy t        j                  d      5 }|j                  d|z         |j	                          | j
                  j                  t        d             	 d}| j
                  j                  |j                  ||j                  t        j                               }t        t        d      t        d      |z  | j                  	       | j
                  j%                          d d d        y # t
        j                  $ r}|j                  \  }}|t
        j                  k(  rC| j                   j                  d
k7  r*t!        t        d      t        d      | j                         nt#        ||| j                         Y d }~d }~ww xY w# 1 sw Y   y xY w)Nwt)modez#CUPS-COMMAND
%s
zsending maintenance commandr  )formatrv  r  ry  z'Maintenance command submitted as job %drz  r   rw  rx  )r   tempfileNamedTemporaryFilewriteflushr   r5  r  rr  r;  r  r  r   rS  rT  r  r  rU  r@  )r3  r&  r   tmpfiler  r  rc  r  s           r   maintenance_commandz+PrinterPropertiesDialog.maintenance_command  sd   ,,((d3 	(wMM07:;MMOII&&*G(HI8700',,9?7>||7;|| 1 H !!K."# %- #.06#7)-6  II$$'5	( 	( == 866C000LL%%4%q'8'( *3 (4 (,{{4 #1c4;;78	( 	(s8   A	F#0A4D$F#F A<FF#F  F##F,c                 &    | j                  d       y )Nr  r  r3  r.  s     r   on_btnSelfTest_clickedz.PrinterPropertiesDialog.on_btnSelfTest_clicked  s      "56r   c                 &    | j                  d       y )Nz	Clean allr  r  s     r   on_btnCleanHeads_clickedz0PrinterPropertiesDialog.on_btnCleanHeads_clicked  s      +.r   c                 V   |t        j                         }t        j                  t        t              }|j                  |       d}t        |      D ]@  \  }}|j                  |j                  |      |g       ||k(  s.|j                  |       d}B |s|j                  d       y y )NFTr   )
	ppdippstrTranslationDictr   r  r  r  	enumerater%  rG  
set_active)	r3  r4  rP  r  translationdictr=  r  nrvals	            r   fillComboBoxz$PrinterPropertiesDialog.fillComboBox  s    "'77:Os"$E"
 ( 	"GBLLO//5<=e|##B'!
		" # r   c                    t               | _        i | _        t               | _        |st	        j
                         }|st	        j                         }t        j                  | j                  ||      }|| _        t        j                  || j                        }|| _        	 |j                  d   }|| _        | j                  j                    }	 |j#                         | _        |j#                         | _        | j&                  dk7  r| j&                  j)                          | jH                  | jJ                  | jL                  fD ]  }|jO                  |        | jP                  | jR                  | jT                  | jV                  | jX                  | jZ                  | j\                  | j^                  | j`                  | jb                  | jd                  | jf                  | jh                  | jj                  | jl                  fD ]  }|jo                  |        | jH                  jq                  |jr                         | jJ                  jq                  |jt                         |jv                  }| jL                  jq                  |       | j                  jy                  | jL                         | jz                  | j|                  | jR                  | j~                  | jL                  | jP                  fD ]/  }|j                  r|j                           |j                          1 	 |j                  rB| j                  r| j                  j                          n5| j                  j                          n| j                  j                          | jZ                  jo                  |       | j\                  jo                  |       | j^                  jo                  |       | j`                  jo                  |       | jh                  jq                  d
       i | _G        | j                  j                         D ]=  }|j                  dk(  rD| j$                  r8| j$                  j                  d      }|r|j                  |j                         |}	 | j                  j                  |j                     }	 |j                  | j                  j                  v r:| j                  j                  |j                     d   }|j                  ||       n|j                  |       || j                  |j                  <   |j                  jo                  |       |r#|j                  jo                  d       @ g | _T        | j                  |       | j                  j                  j                         D ]  }|| j                  v r|dk(  s|dk(  r| j                  j                  |   }|| j                  j                  v r| j                  j                  |   d   }n;t        |t              rddg}tC        |      j                         }nd
}tC        |      }| j                  |||d|        | j                  jq                  d
       | j                  jo                  |       | j                  jo                  d       |j                  rW| j                  j                  | j                        }|dk7  r| j                  j                  |       | j                  |       n| j                  ||       | j                          | j                          | j                          t               | _        | j                          | j                          y # t        $ r Y w xY w# t        j*                  $ r}	|	j,                  \  }	}
|	t        j.                  k7  rt1        |	|
| j2                         |	t        j4                  t        j.                  fv rBt7        t9        d      t9        d      t:        j<                  j>                  | j2                         d| _        Y d }	~	Bd }	~	wt@        $ rs}	tC        |	      jE                  d      r*tG        t9        d      t9        d      | j2                          tG        t9        d      t9        d	      | j2                          d }	~	ww xY w#  t                | j                  j                          Y xY w#  t                d}t        d|j                  d|d       Y xY w# t        $ r |j                  d        Y &w xY w)N)r   r   rd  zserver-is-sharing-printersFz	Raw Queuez3Unable to get queue details. Treating queue as raw.r   Errorz'The PPD file for this queue is damaged.z2There was a problem connecting to the CUPS server.r'   r   rt  r   )r  zOption 'z' has value 'z' and cannot be edited.r  zoutput-modez	media-coltruefalse)r  r  r  r  )hr   r   r&  r  r   r   rg  r  r  r  cupshelpersPrinterr   r  server_is_publishingKeyErrorrp  getPPDr   rW  localizerS  rT  IPP_INTERNAL_ERRORrU  r   IPP_SERVICE_UNAVAILABLEshow_dialogr  r   r  ERRORr  r  r  r  r.   r/   r3   set_editabler5   r6   r7   r8   r9   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   r  r  r  r  r  r  r1   r0   r4   r4  r   rq  r  r:   r  r   r  r,  rP  r;  r{  set_defaultr~  rN  possible_attributesreinitr2  r   r.  r  r  rO  r  r)  r  r  r   r   r-   page_numrJ   remove_pagefillClassMembersfillPrinterOptionsupdateMarkerLevelsupdateStateReasonsupdatePrinterPropertiesTreeViewrZ  rr  )r3  r;  r   rd  r   rK  r   
publishingr  rc  mr   urirA  r  option_editabler  r  tab_nrs                      r   ro  zPrinterPropertiesDialog.load  s   u>>#D++.J&*,68 	%%tTYY7	 112NOJ(2D% ||...%	~~'DH$^^-DN~~&'')F ++T->->( 	*F)	* ++T->->''););T__++T-?-?++T-E-E}}d&6&68H8HJ 	+F   *	+ 	%%gll3""7#3#34    %T__- **D,>,>(($*:*:(<(<> 	F 	
	(  ,,((--/((114$$))+ 	**84((2 	**84  ..x8 	r" $& ..558 $	4F{{g%$(( hh)):6&&6&Ok//<k{{dll&F&FF$(LL$7$7%EEF%H	 u	Bu-<BD,,V[[9
 MM''9++U3I$	4J "$##h#7ll--225 	4F111&&K*?LL++F3E999 LL<<VDQG	ud+!' 1IK--0E "IKEu+4U*2   4#	4( 	%%r***H5**E2%%..t/E/EFF|  ,,V4!!(+ ##D(3!!,,.u$$'!k  		 }} 	VVFQ D+++q!T[[1T11,,. .AkN ( )OO11 KK	) DHH 	 Aw!!5)!1W:#$ &3 $4#';;0 	 "1W:#$ &8 $9#';;0 	r	(  %%'Zk%'&+OV\VaVach ij+  %t$%se   #^ A^) 'A(c( #e5Bd	^&%^&)c%<B$a&&c%2A.c  c%(&d*ee"!e"c                 &   t        j                  t        t              }| j                  j                  d       t        | j                  j                               D ]}  }| j                  j                  |      }| j                  j                  |      }|j                  d       }|j                  |d|j                                |j                  |d|        | j                  j                         }| j                  j                  |       y )NFr   r   )r   r  r  r  r-   set_show_tabsr  r  r  r  r%  r  r  r(   r  r  )r3  r:  r  r,  r  r  r?  s          r   r  z7PrinterPropertiesDialog.updatePrinterPropertiesTreeView  s    sC(&&.((4478 	)A##00!4D$$22D9E<<&DOOT1enn&78OOT1a(	) &&447  **E2r   c           
         | j                   }|sy | j                  j                         D ]  }| j                  j                  |        t	               }d}dt
        fdt
        fdt
        fdt        ffD ]  \  }}|j                  j                  |g       }|t
        k7  rt        |      dkD  r	  ||d          |D 	cg c]  }	|t
        k7  r|	dk  rdn|	 c}	||<   |dk(  st        |      |k  s|t        |      } d	D ]3  }t        ||         |kD  st        d
||   |d  d|       ||   |d = 5 t        t        d |d   |d   |d   |d               }
t        |
       |j                  t        j                   z  dk7  }|r| j"                  j%                          n| j"                  j'                          t        |
      dk(  rbt)        j*                  t-        d            }|j/                  d       |j1                  dd       | j                  j3                  |ddd       nd}t        |
      }d|dz
  dz  z   }|dkD  rd}t)        j4                         }|j7                  d       |j9                  d       |j;                  d       |j=                  d       | j                  j3                  |ddd       |
D ]'  \  }}}}|d}n.| j>                  dk7  r| j>                  jA                  |      }||}|dz  }|dz  }t)        jB                  d      }t)        jB                         }tE        jF                  ||      }|jI                  d|z         |j3                  |ddd       |j3                  |ddd       t)        j*                  |      }|jK                  d       |j/                  d       |j3                  |ddd       |jM                  |||dd       |dz  }* | j                  jO                          y # t        $ r3}t        |d|d|       |D 	cg c]  }	d nc c}	w }}	Y d }~d }~ww xY wc c}	w )Nr   marker-colorsmarker-namesmarker-typesmarker-levelsz value not coercible to z: r  )r  r  r  r  z	Trimming z from c                     | |||fS rF  r   )colorr;  r  levels       r   r  z<PrinterPropertiesDialog.updateMarkerLevels.<locals>.<lambda>  s    !4u5 r   z0Marker levels are not reported for this printer.r  TFr   r   r   r   r'   )spacingz%d%%r   )(r   r   r  r  r  r  r+  r  rG  r  	TypeErrorr2  rN  mapr  r   r  rU   rq  r   r   Labelr  set_line_wrapr  r  Gridset_column_homogeneousset_row_homogeneousset_column_spacingset_row_spacingr   localizeMarkerNameBoxgtkinklevelGtkInkLevelrs  set_width_charsr  r  )r3  r   r   marker_infonum_markersattrtypr  rd  xmarkerscan_refreshr  colsr  gridr  r;  marker_typer  localized_namer   r>  vboxsubhboxinklevels                             r   r  z*PrinterPropertiesDialog.updateMarkerLevels  s>   ,, ++88; 	2F!!((&1	2 f,c2+S1+S1,e46 	(KT3 **..b9Cczc3i!m-QL /2!3)* *-A#$"% !3Ka39{#:!3i#	(&6 	4DK%&4(.{|<dD E%kl3	4 s 6"?3">2">2"?35 6 	G||d&@&@@QF'',,/'',,/=AIIA '4 %5 6E&c*!!,,eUE1EK=DqA~%Dax88:D''-$$T*##Q'  "%!!,,dE5!D3: !/t[%<DXX&%)XX%@%@%FN%1-!Ao!Aoww*''*&22E5A))6E>:""HdE1=%:		-%%r*##T*ua8T3Q2q -!0 	&&)S ! -!%sA!/ 0(+,13,,C,-
!3s*   .P	=Q		QQ )	P32Q  Qc                 &    | j                  d       y )NReportLevelsr  r  s     r   r  z9PrinterPropertiesDialog.on_btnRefreshMarkerLevels_clicked6  s      .1r   c                    | j                   }|j                  j                  dg       }t        j                  t
        t
              }d}|D ]  }|dk(  r nd}|j                  d       }t        j                  |j                  || j                        }|j                         dk(  rt        j                  }n+t        j                  j                  |j                            }|j                  |d|       |j!                         \  }	}
|j                  |d|
        | j"                  j%                  |       d}|rd}| j&                  j)                  |       y )Nzprinter-state-reasonsFnoneTpausedr   r   )r   r  rG  r   r  r  r%  statereasonStateReasonr;  r0  
get_reasonSTOCK_MEDIA_PAUSE
LEVEL_ICON	get_levelr  get_descriptionrV   r  rW   ro  )r3  r   reasonsr:  anyreasonr  rr8  titler   r,  s               r   r  z*PrinterPropertiesDialog.updateStateReasons9  s    ,,**..0GLsC( 	,FC<<&D''vt~~NA||(*,,"..99!++.IOOT1d+--0MUDOOT1d+	, 	"",,e4D$$55t<r   c                     |j                  |d      }t        j                  j                         }	 |j	                  |dd      }|j                  d|       y # t        j                  $ r Y y w xY w)Nr   r   pixbuf)r  r   	IconThemerQ  	load_iconset_propertyr   GError)	r3  r7  r5  r=  r  r  r8  themer  s	            r   r  z5PrinterPropertiesDialog.set_printer_state_reason_iconT  sa    a()),	__dB2Fx0{{ 		s   %A A.-A.c                 H    |j                  d|j                  |d             y )Nr   r   )r  r  )r3  r7  r5  r=  r  r  s         r   r  z5PrinterPropertiesDialog.set_printer_state_reason_text]  s    65??D!#<=r   c                    t        d       | j                  }| j                  j                  |j                         | j
                  j                  |j                         | j                  j                  |j                  t        d            }|j                  j                  dd      }t        |      dkD  r|d|z   z  }| j                  j                  |       t        | j                        dk(  rt        d       | j                  j!                  |j"                         | j$                  j!                  |j&                          | j(                  j!                  |j*                         | j-                  | j.                  |j0                  |j2                  t4        j6                         | j-                  | j8                  |j0                  |j:                  t4        j6                         | j-                  | j<                  |j>                  |j@                  t4        jB                         | j-                  | jD                  |jF                  |jH                  t4        jJ                         | jL                  j!                  |jN                         | jP                  j!                  |jN                          | jS                  |jT                         | jW                          | jY                          | j[                          y y )Nzupdate printer propertiesUnknownzprinter-state-messager'   r   z - z.no changes yet: full printer properties update).r2  r   r3   r  r  r0   make_and_modelprinter_statesrG  stater  r  r  r2   r   r7   r  r  r8   r  r9   r  r  r?   job_sheets_supportedr  r  
job_sheetsr@   r  rA   error_policy_supportedr  printer_error_policyrB   op_policy_supportedr  printer_op_policyrC   r  rD   r  r  r  r  r  )r3  r   r
  r  s       r   rZ  z/PrinterPropertiesDialog.updatePrinterProperties`  sS   /0,,  !3!34##G$:$:;##'')*97))--/FK<!UV^#E&"HI''8))g.?.?*?@OO&&w'8'89 d22%::%55'224 d00'2N2N%33'224
 d22%<<%22'<<> d66%99%//'99; OO&&w'<'<=NN%%'*?*?&?@NN7//0 ##&##&003G #r   c           	         | j                   j                  | j                        }|dk7  r| j                   j                  |       | j                  j                         D ]  }| j                  j                  |        | j                  j                         D ]  }| j                  j                  |        | j                   j                  | j                        dk(  r;| j                   j                  | j                  | j                  | j                         | j                  s| j                   j                  | j                        }|dk7  r| j                   j                  |       | j                   j                  | j                        }|dk7  r| j                   j                  |       y | j                  }|j                          | j                  j                          d}| j                  j                   D ]  }|j"                  dk(  rd}| j                  }| j                   j                  | j                        }|dk(  rO| j                   j                  | j                  t%        j&                  |j(                        | j                         | j*                  }	nt,        j                  j/                  |j(                        }
t%        j0                  dt3        j4                  |
      z        }|j7                         j9                  d       |j;                  t$        j<                  j>                         | j                  jA                  |ddd       t$        jB                  jE                  ddd	d	      }|jG                  d
dd
d       |jI                  |       | j                  }	t%        jJ                         }|jM                  d
       |jO                  d
       |jI                  |       d}d x| _(        | _)        tU        |jV                        D ]|  \  }}|jX                  dk(  r|dz  }t[        ||| |	      }|j]                  |j^                  d|dd       t%        j`                         }|jb                  r|t$        jB                  jE                  ddd	d	      }|jG                  dddd
       |jI                  |jb                         |j]                  |d|dd       |j]                  |d|dd       n|j]                  |d|dd       |jA                  |jd                  ddd       || jV                  |jX                  <   |jd                  jg                  |       |jX                  dk(  r	|| _(        e|jX                  dk(  sv|| _)          |sE| j                   j                  | j                        }|dk7  r| j                   j                  |       | jV                  ji                         D ]0  }|jk                         }|s| jl                  jI                  |       2 | j                  jo                          | j                  jo                          y )Nr  FInstallableOptionsTr  r  r   r  g      ?r   r   
PageRegionr   )r  r   	InputSlot
ManualFeed)8r-   r  rO   r  rK   r  r  rN   rL   insert_pagerM   r   r   rJ   markDefaultsrW  optionGroupsr;  r   r  r   rI   r  rG  Framehtmlescapeget_label_widgetset_use_markupset_shadow_type
ShadowTyper  r  	Alignmentr  set_paddingr  r  r  r  r  r  r  r&  keywordr	   r  conflictIconr  r  r  r  rP  checkConflictsr  r  )r3  r;  r  r  r   r   hasInstallableOptionsgroup	containerr  
group_nameframer  r  r  rA  ohboxar  s                       r   r  z*PrinterPropertiesDialog.fillPrinterOptions  s!   !!**4+>+>?R<((0 ,,99; 	2F""))&1	2 oo224 	+FOO""6*	+ $$T__5;((!1!143C3CE xx%%..t/E/EFF|  ,,V4%%..t?F|  ,,V4hh##% % ^^00 <	/Ezz11(,% 22	))2243I3IJR<$$001G1G141L151A1AC !33	&]]..

;
		dkk:6N(NO&&(77=%%s~~':':;**E5%CMM--c3SA	 %%q"a3		9% ,,	88:D##A&  #MM$D >BAD!D$:'6 /
F>>\1	 diHANNAr1a8wwy77))#sC=AMM1aA.EE177OKK1b!Q/KKaQ2KKaQ2

E5!</0V^^,

((2>>[0,-D)^^|3-.D*-/M<	/~ %%%..t/E/EFF|  ,,V4 ll))+ 	+F--/I""6*	+
 	'')  "r   c                    | j                   j                  |       | j                  j                  |       | j                  j	                  | j
                        }|dk7  r| j                  j                  |       | j                  j	                  | j                        dk(  r;| j                  j                  | j                  | j                  | j                         | j                  j                         }| j                  j                         }|j                          |j                          t        | j                   j#                               }|j%                          |D ]  }|| j&                  j(                  k7  s|| j&                  j*                  v r|j-                  |f       H| j&                  j.                  t0        j2                  z  rp|j-                  |f        y )Nr  )rS   r  rT   r-   r  rL   r  rO   r  rP   r   rQ   r  rR   r  rN  r/  get_printersr  r   r;  rA  r%  r  r   CUPS_PRINTER_CLASS)r3  r  r  model_membersmodel_not_membersnamesr;  s          r   r  z(PrinterPropertiesDialog.fillClassMembers  s~   ,,X6,,X6 !!**4??;R<((0 $$T%8%89R?((##T%9%9  " ++557 22<<>!dmm0034

 	7Dt||(((4<<555!(($2**T-D-DD%,,dX6	7r   c                 z   t        j                  | j                  | j                         t        j                  | j                        | j
                  j                  k7  r&| j                  j                  | j                         n%| j                  j                  | j                         | j                          y rF  )rj  moveClassMembersrR   rQ   r9  r   rA  r   r  r  rr  r  s     r   on_btnClassAddMember_clickedz4PrinterPropertiesDialog.on_btnClassAddMember_clicked  s    ##D$:$:$($7$7	9,,T-@-@AT\\E_E__LLT001LL  !4!45!r   c                 z   t        j                  | j                  | j                         t        j                  | j                        | j
                  j                  k7  r&| j                  j                  | j                         n%| j                  j                  | j                         | j                          y rF  )rj  r4  rQ   rR   r9  r   rA  r   r  r  rr  r  s     r   on_btnClassDelMember_clickedz4PrinterPropertiesDialog.on_btnClassDelMember_clicked'  s    ##D$7$7$($:$:	<,,T-@-@AT\\E_E__LLT001LL  !4!45!r   c                     |xr> | j                   d uxr. | j                   j                  xs t        | j                         }| j                  | j
                  fD ]  }|j                  |        y rF  )r   rp  r)  r   r6   r5   r  )r3  	sensitiver.  s      r   sensitise_new_printer_widgetsz5PrinterPropertiesDialog.sensitise_new_printer_widgets0  sv     /\\-/,,11 .-/ 	 ((++- 	-F  ),	-r   c                 &    | j                  d       y NFr:  rC  s    r   desensitise_new_printer_widgetsz7PrinterPropertiesDialog.desensitise_new_printer_widgets9  s    **E2r   c                 f   t        | j                         | j                          | j                  j	                  d| j
                  j                  | j
                  j                  | j                  | j                  | j                        s| j                          t        | j                         y )Ndevice)r  r;  r   rd  r   )r   r  r>  rc  initr   r  r;  re  rf  r:  r   r  s     r   on_btnSelectDevice_clickedz2PrinterPropertiesDialog.on_btnSelectDevice_clicked=  s    dkk,,/!!&&xDLL<S<S,0LL,=,=,0JJ262B2B.2kk	 ' ;
 ..1t{{r   c           	      |   t        | j                         | j                          | j                  j	                  d| j
                  j                  | j                  | j
                  j                  | j                  | j                  | j                        s| j                          t        | j                         y )Nr   )r  r   r;  r   rd  r   )r   r  r>  rc  rA  r   r  r   r;  re  rf  r:  r   r  s     r   on_btnChangePPD_clickedz/PrinterPropertiesDialog.on_btnChangePPD_clickedJ  s    dkk,,/!!&&u9P9P+/88,0LL,=,=,0JJ262B2B.2kk ' ; ..1t{{r   c                 <   t        d       | j                          | j                  j                  d      rM| j                  r@	 | j                  j                          |r| j                  |       y | j                          y y y # t        j                  $ r Y y w xY w)Nzon_printer_modified calledr}  )
r2  r:  r  r  r   rY  ro  rZ  r   rS  )r3  rI  r;  ppd_has_changeds       r   rl  z+PrinterPropertiesDialog.on_printer_modifiedX  s    01**-;;##Y/DLL**-"IIt$003 5A/ == s   -B 2B BBc                 $    | j                          y rF  r=  )r3  rI  s     r   rm  z/PrinterPropertiesDialog.on_printer_not_modifiedf  s    **-r   c                 *    | j                  d |d       y r<  )rl  )r3  monr   	eventnamer   s        r   rZ  z(PrinterPropertiesDialog.on_printer_eventj  s      $7r   c                 F   | j                   j                  d      rX| j                  rL| j                  j                  |k(  r3| j                   j	                  t
        j                  j                         | j                  r"| j                  j                  |k(  rd | _        y y y Nr}  )r  r  r   r;  r   r   r~  r  )r3  rI  r   s      r   r[  z*PrinterPropertiesDialog.on_printer_removedm  sp    KK$$i0LLT\\..'9KK  #"2"2"9"9:<<DLL--8DL 9<r   c                 .   | j                   j                  d      ra| j                  rT| j                  j                  |j	                         k(  r,	 | j                  j                          | j                          y y y y # t        j                  $ r Y y w xY wrL  	r  r  r   r;  get_printerrY  rZ  r   rS  r3  rI  r  s      r   r\  z-PrinterPropertiesDialog.on_state_reason_addedu  {    KK$$i0LLT\\..&2D2D2GG**-,,/ HL 1
 ==    *A> >BBc                 .   | j                   j                  d      ra| j                  rT| j                  j                  |j	                         k(  r,	 | j                  j                          | j                          y y y y # t        j                  $ r Y y w xY wrL  rN  rP  s      r   r]  z/PrinterPropertiesDialog.on_state_reason_removed~  rQ  rR  c                      y rF  r   )r3  rI  s     r   r^  z0PrinterPropertiesDialog.on_cups_connection_error  s    r   rF  )NNN)T)r'   r'   TT)FN)K__name__
__module____qualname__r   SignalFlagsRUN_LAST__gsignals__r   IPP_PRINTER_IDLEr  IPP_PRINTER_PROCESSINGIPP_PRINTER_BUSYIPP_PRINTER_STOPPEDr	  r   rD  rL  rS  rU  r   r`  rq  r"  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  rr  r  r6  r#  rp  rr  r  r  r  r  r  ro  r  r  r  r  r  r  rZ  r  r  r5  r7  r:  r>  rB  rD  rl  rm  rZ  r[  r\  r]  r^  r   r   r   r   r   ?   s    #..77rB"..77rB
L
 ,,V922\?,,V9//Y<*Nk"Z(
*0
>1f-6bK#"J0(7"""@3
"""$4 GK $**
""3
1gGRHT-2):2x (D7/$"J"X3^*@2=6>.4`m#b7:""-3
.8 r   r   __main__r   zSpecify queue namer   TuiSYSTEM_CONFIG_PRINTER_UIr'   c                 L    | j                          t        j                          y rF  )r   loopquit)rI  s    r   on_dialog_closedre    s    		r   r   )6r  r   r  gi.repositoryr   r   r   gettextinstallr  r   r  r&  r   r   guir   r  optionwidgetsr	   debugr  errordialogsr  ppdcacher  r_  rj  r   r   r  
pkgdatadirr}  r   r   r   rU  sysr  argvprintexitset_debuggingr   r   r&   rA  MainLooprc  re  
propertiesr	  rq  r  r   r   r   <module>rv     sE  2       v~~1A1A B  !    &         " 


Jf JX: z
CHH~"#!4-1BJJ)*FfmmR(INN7D )+J)9:OOSXXa[!HHK) r   