
    Kcu8                       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T d dlZd dlT 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%j'                  dk     r e(d            e%j)        d            e*d           dej+        d<    ej,        ej-        d            ej.                      ej/                    Z0d Z1 e#            Z2e23                    de1           e24                    e%j'        d                    e05                                 dS dS )    N)Gtk)domain	localedir)GObject)GLib)GtkGUI)OptionWidget)*)busyreadyc                  H    t          j                    } | d         dk    rdS | S )Nr   /	localhost)cups	getServer)hosts    5/usr/share/system-config-printer/printerproperties.pyCUPS_server_hostnamer   5   s&    >DAw#~~{K    c                 .    |                                   dS )NT)hide)widgetevents     r   on_delete_just_hider   ;   s    
KKNNN4r   c            
       R   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dHdZd Zd Zd ZdId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"dJdZ#	 	 dKd Z$d! Z%d" Z&d# Z'd$ Z(d% Z)dLd'Z*d( Z+d) Z,d* Z-d+ Z.d, Z/d- Z0d. Z1d/ Z2dHd0Z3dId1Z4d2 Z5d3 Z6d4 Z7d5 Z8d6 Z9d7 Z:d8 Z;d9 Z<d: Z=d; Z>d< Z?dJd=Z@d> ZAd? ZBd@ ZCdA ZDdB ZEdC ZFdD ZGdE ZHdF ZIdG ZJdS )MPrinterPropertiesDialogN )destroydialog-closedIdle
ProcessingBusyStoppedc           #         t           j                             |            	 t          j        t          j                  | _        t          j        t          j                  | _        n#  t                       dt          j
        d<   t          j        t          j        d           t          j        t          j                  | _        t          j        t          j                  | _        Y nxY wd | _        d x| _        | _        t!                      | _        t!                      | _        t'                      | _        d| _        |                     dg dit.          j                   | j        | _        | j                            d| j                   | j        | j        | j        | j         fD ]V}tC          j"                    }|#                                 |$                    |d	           |%                    |d
d           W| j&        }|                    d| j'                   tC          j(        tS          d                    }tC          j*                    }|$                    |d           tC          j"                    }|$                    |d           |+                    || j,        d            |+                    || j-        d            |.                    d	           | j/        0                    |           | j/        1                                }|2                    tB          j3        j4                   tC          j5        tl          tn                    }| j/        8                    |           | j                            dtr                     d| _:        tS          d          | j;        ftS          d          | j<        ftS          d          | j=        ffD ]\  }	}
tC          j5        tn                    }tC          j"                    }tC          j(        |	|d          }|
8                    |           |
0                    |           |
1                                2                    tB          j3        j>                   | j                            d| j?                   tC          j(        dtC          j"                    d          }| j@        0                    |           | j@        1                                }|                    d| jA                   |2                    tB          j3        jB                   | jC        tS          d          gtS          d          gtS          d          gtS          d          ggf| jD        dgdgdgdgdgdggf| jE        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| jF        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| jG        g f| jH        tS          dD          gtS          dE          gtS          dF          ggf| jI        g f| jJ        tS          dG          gtS          dH          ggf| jK        tS          dI          gtS          dG          gtS          dJ          ggf| jL        g ff
D ]\  }}tC          j5        tn                    }|D ]}|M                    |K           tC          j"                    }|$                    |d	           |%                    |d
d           |8                    |           t          jO        dLtl          dM| jP        | jQ                  t          jR        dNtl          d| jC        | jS        g dOtS          dP          Q          t          jO        dRt          d| jU        | jV                  t          jO        dStl          dM| jD        | jW        g dTd	U          t          jO        dVtn          dW| jE        | jX        g dXY          t          jO        dZtl          d[| jY        | jZ                  t          jO        d\tl          d| jF        | j[        g d]d	U          t          jO        d^tl          d_| j\        | j]                  t          jO        d`tn          da| jG        | j^        d	b          t          jO        dctn          dd| jH        | j_        g ded	U          t          jO        dftn          dg| jI        | j`        d	b          t          jO        dhtn          di| jJ        | ja        didjgY          t          jO        dktl          d| jK        | jb        g dld	U          t          jO        dmt          jc        t          jc        dn          | jd        | je        d	b          t          jO        dotn          dp| jL        | jf        d	b          t          jO        dqt          d| jg        | jh                  t          jO        drtl          d[| ji        | jj                  t          jO        dstl          d[| jk        | jl                  t          jO        dttl          d| jm        | jn                  t          jO        dutl          dv| jo        | jp                  t          jO        dwt          dx| jr        | js                  t          jO        dyt          dz| jt        | ju                  t          jO        d{tl          d| jv        | jw                  t          jO        d|tl          d| jx        | jy                  t          jO        d}tl          d| jz        | j{                  t          jO        d~tl          d| j|        | j}                  t          jO        dt          d| j~        | j                  t          jO        dt          d| j        | j                  t          jO        dtl          dM| j        | j                  g}i | _        i | _        |D ] }|| j        |j        <   || j        |j        <   !d | _        d | _        |                                  t          d| z             d S )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   s0     $'''	>",V-?@@DM",V_==DMM	>#&BJx fmR000",V-?@@DM",V_==DMMM"&&txuu&& !&2Y8 Y8 Y8Z9x  &~y 	 \	/ \	/ \	/~ 2 	^T^<<< -+-13 	5 	5H '**DNNt,,,""D&!4444)Y FGGG #Qy\\22%((4'''#&&4'''!!4)KTRRR!!4)KTRRRd###"00&999.<<??	C-2333sC((",,e444$,,n.A	C 	C 	C  &'')<=x[[$01wZZ' 	J 	JND( M#&&E'))D'd;;;Fu%%%""6***""$$--c.?.HIIII 	Z)IJJJ  "c&:&=&=aHHH ..444&4477Y MNNNc'./// 645564556=>>?<==>@A *usecUTFCE 0:;;<:;;<:;;<:;;<:;;<:;;<:;;<:;;<>? , F))H++G**G**F))O,,-M**+F))F))F))O,,-L//*/0012334011234450112/001122323340112/00112232334M**+L//*N++,O,,-7/0@ ,K..)3445455689
 +R0-H++I,,)* .G**H++F))&'
 +R0KFO	% O	% VN M3''E ' '#&&&&'**DtT***  $222e$$$$*Hc1,0O,0,AC C 1)305!-!"#7!8!8: : : *ItU,0,<,0,BD D *Ka,0,>,0,C9L9L9L<@	B B B *,>V,0,D,0,I<F <F <F
G 
G 
G *L#s,0,?,0,EG G *L#q,0,@,0,E<N <N <N =A
B 
B 
B *NC,0,@,0,FH H *GS,0
 -1O,0,@<@B B B *GS+,0O,0,@-G -G -G =AB B B *,<c,5,0,?,0,D<@	B B B *M3,4,0,A,0,F.6.7-:; ; ; *OS!,0,B,0,G;F;;<@	B B B *,@,3,A,3,A+,N,N,0,G,0,L<@B B B *L#,5,0,?,0,D<@	B B B *HdE,0O,0,AC C *IsC,0,<,0,BD D *L#s,0,?,0,EG G *E3,0L,0,>@ @ *GS$,0N,0,@B B *E5$,0L$:LN N *E5#,0L$:LN N *Ka,0,=,0,CE E *L#q,0,>,0,DF F *JQ,0,<,0,BD D *M3,0,?,0,EG G *M4,0,@,0,FH H *FD%,0,?A A *IsA,0,<,0,BD Du]| $& #%  	= 	=F6<D$V]36<D$V]33EDL!!!!!s   AA( (BC.c                 .    t          d| z             | `d S )Nz-%s)r2  r/  r3  s    r   __del__zPrinterPropertiesDialog.__del__  s    EDL!!!MMMr   c                     | j                             |g           }|                    ||                    ||          f           || j         |<   d S N)r  getr%  r	  )r3  
collectionobjr;  handlercs         r   _connectz PrinterPropertiesDialog._connect   sP    OR00	3T7334555&'
###r   c                     |r|g}n&t          | j                                                  }|D ];}|| j        v r0| j        |         D ]\  }}|                    |           | j        |= <d S rF  )listr  keys
disconnect)r3  rH  collrI  	signal_ids        r   _disconnectz#PrinterPropertiesDialog._disconnect  s     	7$JJdo225566J 	* 	*Dt&&(,(= / /$S)NNI....OD)	* 	*r   c                 X    | j         r"| j                                          d | _         d S d S rF  )r   r   rC  s    r   
do_destroyz"PrinterPropertiesDialog.do_destroy  s:    ' 	0(00333+/D(((	0 	0r   c                     t          d| z             |                                  d | _        d | _        d | _        |                     d           d S )NzDESTROY: %sr   )r2  rS  r   	ppd_localr   emitrC  s    r   r   zPrinterPropertiesDialog.destroy  sT    MD()))		9r   c                 \   || _         |sd S | j                             d| j                   | j                             d| j                   | j                             d| j                   | j                             d| j                   | j                             d| j                   d S )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     	F0EFFF0$2IJJJ3T5OPPP5#;	= 	= 	=6#<	> 	> 	> 	> 	>r   c                 n   || _         || _        || _        |st          j                    | _        |st          j                    | _        | j        (|                     t          j	        d                     | j        
                                | _        |                     d           t          j                    | _        |                     d| j        d| j                   |                     d| j        d| j                   |r| j                            |           |                     ||||           | j        sd S | j        | j        | j        fD ]7}| j        j        r|                                 #|                                 8| j        j        r| j                                         n| j                                         |                                  | j                             tC          d                     | j"                             tC          d                     | j#        }|$                    tK          j&                    d d           tO                      }| j        (                    tC          d	          ||fz             | j                                         d S )
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,  s   
% 	*))DJ 	5#144D= goEBBBCCC3366/***'588(:)4+C	E 	E 	E(:($*F	H 	H 	H 	3K))6222		4dz&	III| 	F6257 	 	F |& <" 	3*//2222*//222"""..q1A/B/BCCC))! -E +F +F 	G 	G 	G +S\^^T5999#&&q ".  /  /26 > 	? 	? 	?r   c                 j   | 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        |          }|                                 |                                 d S |t          j        j        k    s|t          j        j        k    rJ|t          j        j        k    rt'          | j                  dk    rd}n|                     | j                   }|t          j        j        k    r>|s<	 |                     | j         j                   n#  Y nxY w|                                  |t          j        j        k    r|r|t          j        j        k    r{d | _        d | _        d | _         |                                 |                     d           | j        j                            d	          r| j                             d            d S d S d S )
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 9 9G vG. 5 56=-44&dk-1t47O4K/2/D,3	5 5 5F
 JJLLLNNF(+++(...C,///C4F4F!4K4K**DL99s'---f-		4<,----##&&&),,,V,(///DH!DNDLKKNNNII'''!2??KK 6"..555556 6 0/s   E1 1E5c                 P    |                      |t          j        j                   d S rF  )r"  r   r~  r  )r3  r  r   s      r   r
  z!PrinterPropertiesDialog.on_delete  s$    ((&#2B2IJJJJJr   c                    t          |t          j                  r|                                }nt          |t          j                  r|                                }nt          |t          j                  r|                                }nht          |t          j                  r?|                                }|	                                }|
                    |d          }nt          d          | j        }| j        |j        | j        |j        | j        |j        | j        |j        | j        |j         | j        |j        | j        |j        | j        |j        | j        |j        | j        |j         | j!        |j"        i}||         }||k    r| j#        $                    |           n| j#        %                    |           | &                                 d S )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   fco.. 	@%%''EE	** 		@OO%%EE00 	@%%''EE-- 	@$$''E))++DOOT1--EE>???L 16
OalqyQ[Oak 1#4 1>$q{OQ_
 v&	L  ((((LV$$$!!!!!r   c                    |                                 r| j                            |           n| j                            |           |j        r| j                            |           n| j                            |           |                                  | j        r`| j        r[|| j        k    rR|                                dk    r| j        	                                 d S | j        
                                 d S d S d S d S )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    	)LV$$$$L  ((( 	+Nv&&&&N""6***!!!" 	0t'< 	0d,,,''))V33%--00000%,,/////	0 	0 	0 	0,,r   c                     | j                                         }g |                    fdd                                            S )z%return list of usernames from the GUIc                 b                         |                     |d          d                   S Nr   )r%  rG  )r=  pathr  dataresults       r   <lambda>z3PrinterPropertiesDialog.getPUsers.<locals>.<lambda>  s*    mmEIIdA$6$6q$9:: r   N)rE   r  foreachsort)r3  r=  r  s     @r   	getPUsersz!PrinterPropertiesDialog.getPUsers  s]    '')) ; ; ; ;<@	B 	B 	Br   c                     | j                                         }|                                 |D ]}|                    |f           |                     | j                   |                     | j                    dS )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  sz    '')) 	" 	"DLL$!!!!  ///''66666r   c                 6   | j         sdS |                                 | j         j        k    r | j                            | j                   n| j                            | j                   |                     | j                   |                                  dS )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  s     | 	F>>t|888LT]++++L  ///''666!!!!!r   c                     | j                                         }|rH| j                                                            d|f           | j                             d           |                                  d S )Nr   r'   )rF   r  rE   r  insertset_textr  )r3  r.  r  s      r   on_btnPAddUser_clickedz.PrinterPropertiesDialog.on_btnPAddUser_clicked  sq    }%%'' 	'M##%%,,Q888M""2&&&!!!!!r   c                 .   | j                                                                         \  }fd|D             }|D ]@}|                                }                    |          }                    |           A|                                  d S )Nc                 P    g | ]"}t           j                            |          #S r   )r   TreeRowReferencenew).0r   r=  s     r   
<listcomp>zBPrinterPropertiesDialog.on_btnPDelUser_clicked.<locals>.<listcomp>  s,    FFF#$((%55FFFr   )rE   r  get_selected_rowsget_pathget_iterremover  )r3  r.  rowsr   r  r  r=  s         @r   on_btnPDelUser_clickedz.PrinterPropertiesDialog.on_btnPDelUser_clicked  s    m1133EEGGtFFFFFFF 	 	C<<>>D>>$''DLL!!!!!r   c                 x    | j                             t          |                                                     d S rF  )rG   set_sensitiver)  r  r3  r   s     r   r  z+PrinterPropertiesDialog.on_entPUser_changed  s1    &&tFOO,=,='>'>?????r   c                     |                                 }|d S |                                \  }}| j                            t	          |                     d S rF  )r  r  rH   r  r)  )r3  r   r9  r=  r  s        r   r  z2PrinterPropertiesDialog.on_tvPUsers_cursor_changed   sV    ((++	F1133t&&tDzz22222r   c                 8   | j         |         }|                                 |j        | j        v r| j        |j        = |                                r| j                            |           n| j                            |           |                                  d S 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 	)LV$$$$L  (((!!!!!r   c                 h   | j         sd S | j        |         }|                                 |                                r*|| j        |j        <   | j                            |           n5|j        | j        v r| j        |j        = | j                            |           |                                  d S 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    | 	F)&1 	)4:D$V[1LV$$$${d666,V[9L  (((!!!!!r   Tc                 J   t          | j                  }|dk    r| j                                         d S | j                                        }|D ]}| j                            |           d}| j        D ]}| j                            |j        d|dd           |j                            dd           | j                            |j	        d|dd           |j	        
                    |           t          j                            t          j        t          j        j                  }|                    d| j                   ||_        |
                    |           | j                            |d|dd           |dz  }| j                                         d S )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&  s   '((66O  """F?//22 	+ 	+EO""E****) 	 	CO""CIq!Q:::I##S#...O""CL!Q1===L&&111*//1A141DF FCKK	4#CDDDCLx(((O""31a333FAA  #####r   r'   c                    	 t          j        |||| j                  }n# t          $ r t	                       Y d S w xY w||_        | j                            |           |                     |           || j	        |<   || j
        v rd|_        | j
                            |           |                                  |r|j                                         d S d S )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*.*=? ?FF 	 	 	   FF	
 %%v...##h#777)/ &4<!FM   !!! 	*O&&)))))	* 	*s    ;;c                 4   |j         }| j                            |           |                                  |j        r| j                            |           n| j                            |j                   | j	        |j        = | 
                                 d S rF  )r  r  r  r  r  r   r  r  r;  r  rr  r  s      r   r  z3PrinterPropertiesDialog.on_btnJOOtherRemove_clickedU  s    %%v...##&&&= 	*L  (((( LV[)))$V[1!!!!!r   c                 $   | j                                         }|                     |           | j                                         | j                             d           | j                            d           |                                  d S )Nr'   F)	r   r  r  r   r  r  r   r  rr  )r3  r.  r;  s      r   on_btnNewJobOption_clickedz2PrinterPropertiesDialog.on_btnNewJobOption_clickeda  s    #,,..D!!!  """%%r*****E222!!!!!r   c                     | j                                         }t          |          dk    o|| j        v}| j                            |           d S r  )r   r  r  r  r   r  )r3  r   r   actives       r   on_entNewJobOption_changedz2PrinterPropertiesDialog.on_entNewJobOption_changedi  sO    #,,..d))a-IT1I%I**622222r   c                 0    |                      |           d S rF  )r  r  s     r   on_entNewJobOption_activatez3PrinterPropertiesDialog.on_entNewJobOption_activaten  s    ''00000r   c                 	   	 | j         j        }|                    dg           }t          | j                   o| j         j        o| j         j         }	 |                    d           |}n# t          $ r d}Y nw xY w| j	        
                    |           | j         j        pt          | j                   }| j        | j        fD ]}|
                    |           d}d}|rx| j         j        t          j        z  dk    r[	 |                    d           |                    dg           }	|	D ]}
|
dk    rd}|r n|
d	k    rd}|r nn# t          $ r Y nw xY w|| j        f|| j        ffD ]0\  }}|r|                                 |                                 1n#  t+                       Y nxY w| j        su| j         j        s]| j         j                            d
          s| j         j                            d          rE| j         j                            d          r&| j         j        s| j	                                         n| j	                                         d}d}| j        rlt9          d           | j                                         | j        D ];}|j                                        | j                                         k    rd}9d}<n| j                                         tC          d          }tC          d          }|rd|z  }|rd|z  }| j         "                    |           | j#        "                    |           | j$        %                                }|rtM          | j'        (                                          D ]}| j'        )                    |          }| j'        *                    |                                          }	 || j                                         k    r.|+                    |f          }|,                    |d|           nJ|| j#                                        k    r-|+                    |f          }|,                    |d|           # t          $ r Y w xY w| j-        
                    t]          | j                  dk    o| j                    | j/        
                    | j                    d S )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	 L1Eii ;R@@G!4<000 4-4!\33 !7888$ ! ! ! ! !//:::"l5Lt|9L9LMJ,/1 2 2$$j1111HJ "T%??AEEMM#ABBB  %yy);R@@H#+ 	& 	&"&999'+H) & %& %//)-J' & %!   D #+D,<!=",d.@!A!C # #f #KKNNNNKKNNNN#	 8 	*\ 	*|&11(;;	* |&11'::	* l%..w77		*
 L#	* !&&))))!&&)))> 		$,---!!###. ' '#,,//43J3S3S3V3VVV&*OO"&KK	' !!###122)** 	<)O;O 	4%3K**O<<<##[111(2255 	D,88;;<<  '44a88(66==FFII
 7 @ @ B BBB$~~t44q/BBBB$"2";";">">>>$~~t44q+>>>!    D
 	&44c4<6H6H16L 7I:>.6H	J 	J 	J#11t~3EFFFFFsj   AF  A+ *F  +A:7F  9A::BF  A	E F  
EF  EAF   F2BQ55
RRFc                 `   || j         }d}|j        }|j        r+| j                            t          d          |z             n*| j                            t          d          |z             	 |j        sW| j        rP|                                  | j                                        s|r!| j        	                    || j                   |j        rt          j        | j                  }|s	t          j        dt          j        j        t          j        j        t          d                    }|                    t          d                     |                    t          j        t          j        j        t          j        t          j        j                   |                                }|                                 |t          j        j        k    r| j                                         d	S d	}|j        d d          }	|D ]7}
|
|	v r|	                    |
           | j                            |
|           8|	D ]}
| j                             |
|           | j!        "                                }| j#        "                                }| j$        "                                }| j%        &                                }| j'        &                                }| j(        &                                }||j)        k    s|r| j        *                    ||           ||j+        k    s|r| j        ,                    ||           |j        s(||j-        k    s|r| j        .                    ||           ||j/        k    s|r|0                    |           ||j1        k    s|r|2                    |           ||j3        k    s|r|4                    |           d
 } || j5                  } || j6                  } || j7                  } || j8                  }||j9        k    s||j:        k    s|r|;                    ||           ||j<        k    s|r|=                    |           ||j>        k    s|r|?                    |           | j@        &                                }| A                                }||jB        k    s||jC        k    s|r|D                    ||           |jE        D ] }|| jF        vr|G                    |           !| jF        H                                D ]}|I                                s,|r|J                                |K                                k    rYt          d|j        d|J                                           |M                    |j        |J                                           nQ# t          jN        $ r?}|jO        \  }}t          |||           | j                                         Y d }~d	S d }~ww xY w| j                                         t                      | _R        | j        jS        s~d| jT        vru| j                            t          d                     	 | j        U                                | _V        n#  t                       Y nxY w| j                                         |s?	 |X                                 | Y                                 n# t          jN        $ r Y nw xY w| jZ        [                                 dS )NFzmodifying class %szmodifying printer %s)r   r   zThis will delete this class!)flagsr{  r|  r   zProceed anyway?Tc                 ~    |                                  }|                                 }|                    |d          S Nr   )r  r  r  )cmbr=  r  s      r   get_combo_valuez=PrinterPropertiesDialog.save_printer.<locals>.get_combo_value!  s6    ((**--a0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__adminGetServerSettingsr6  r   getAttributesupdatePrinterPropertiesr/  update)r3  r   saveallr   class_deletedr;  new_membersr  r  old_membersmemberr  r  r  r  	acceptingsharedr5  r  r  r  r  r  r  rA  ess                              r   r  z$PrinterPropertiesDialog.save_printer  s   >[F| 	JI&&*>(?(?$(FGGGGI&&*@(A(AD(HIIIc	# = ='')))8--// =7 =I((48(<<< C(?@STT" ) ."#),)@$'O$8!"#A!B!B	D D DF
 003D1E1EFFF&&(8#:J:M(+(8#:J:NP P P#ZZ\\FNN$$$s/222	00333#t$(M &3AAA6) B BF,,#**62222	33FDAAAA) C CFI44VTBBBB(1133H'0022D1133J&1133G*5577I_//11FW\!!W!	((t444)))W)	,,T8<<<$ =W///7/	**4<<<'/))W)""7+++G----$$Y///***g*!!&)))1 1 1
 .ot/CDDO+OT-?@@M*?D,@AAL')ABBI7#:::!66676$$_mDDDw333w3&&|444G----**9555 O6688M>>++L!666 4444!!->>>!, 0 0!999''///299;; O O%%'' OO--00F4F4F4H4HHHJ171I1I1K1K1K!M N N N%%fk63K3K3M3MNNNO } 	 	 	VFQ1a(((I$$'''44444		
 		  ###uuy  	(%6dm%K%K
 I&&*D(E(EFFF$'+y'G'G'I'I$$$!#####I$$''' 	%%(((,,////=    	us>   0FW 9OW X4XXZ& &Z8(\   \\c                 f    | j                                         D ]}|                                 d S rF  )r&  rS  	writebackr  s     r   r9  z*PrinterPropertiesDialog.getPrinterSettingse  s>    l))++ 	 	F	 	r   c                     |                                 \  }}|r	|| _        d S 	 | j        }n# t          $ r Y d S w xY w|                    |          r|                    |           d S d S 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  s    !..11 
	-9=D666A!    ""D)) -%%t,,,,,- -s   , 
::c                     |                                 \  }}|[|                                }|                    |          }|                    |d          }| j                            |           d S d S r3  )
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  sw    !,,//v&&))E>>4((Dq))A--q11111	 r   c                 8    | j                                          d S rF  )r;   r   rC  s    r   printTestPagez%PrinterPropertiesDialog.printTestPage  s    %%(((((r   c                    | j         }|sd S d }| j        dk    r[| j                            d          }|r?t          j                            t          d|j                                        z            }t          j
                    }t          j        d           	 t          j        | j        d| j        | j                  }n.# t"          $ r!}t%          d || j                   Y d }~d S d }~ww xY wd }|                    t)          d                     	 |rNt          j                            |          r/t-          d|z              |                    |j        |          }n)t-          d	           |                    |j                  }n# t          j        $ r}|j        \  }}	|t          j        k    rM| j        d
k    rB| j        d         dk    r1t9          t)          d          t)          d          | j                   nt%          ||	| j                   Y d }~nd }~ww xY w|                                 t          j        |           |6t=          t)          d          t)          d          |z  | j                   d S d S )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  RuntimeErrorrX  r8  r  existsr2  ru  r;  rV  rW  IPP_NOT_AUTHORIZEDshow_error_dialogrC  show_info_dialog)
r3  r.  r   custom_testpager  r  rK  rf  job_idmsgs
             r   on_btnPrintTestPage_clickedz3PrinterPropertiesDialog.on_btnPrintTestPage_clicked  s   , 	F 8u(%%z22C F"$',,w/?/2}/B/B/D/D0E#F #F |b	#T[e*.*040@B B BAA  	 	 	D!T[111FFFFF	 	A233444	4 727>>/#B#B 78?JKKK.= ) ? ? 899966} 	4 	4 	4vHQT,,,
k))
1$$!1^#4#4#$ &/ $0 $0 $(;0 0 0 0 q#t{333	4 	
dann ?@@6I%)[2 2 2 2 2 2 s2   'C 
C/C**C/A9F H' A=H""H'c                 L   | j         }|sd S t          j        d          5 }|                    d|z             |                                 | j                            t          d                     	 d}| j                            |j	        ||j	        t          j
                              }t          t          d          t          d          |z  | j        	           n# t
          j        $ r{}|j        \  }}|t
          j        k    rA| j         j	        d
k    r1t!          t          d          t          d          | j                   nt#          ||| j                   Y d }~nd }~ww xY w| j                                         d d d            d S # 1 swxY w Y   d S )Nwt)modez#CUPS-COMMAND
%s
zsending maintenance commandr  )formatry  r  r|  z'Maintenance command submitted as job %dr}  r   rz  r{  )r   tempfileNamedTemporaryFilewriteflushr   r8  r  ru  r;  r  r  r   rV  rW  r  r  rX  rC  )r3  r)  r   tmpfiler  r  rf  r  s           r   maintenance_commandz+PrinterPropertiesDialog.maintenance_command  s   , 	F(d333 	(wMM07:;;;MMOOOI&&*G(H(HIII8700',9?7>|7;| 1 H H !!K.."# %- #. #.06#7)-6 6 6 6 6 = 8 8 86C000L%44%q'8'8'( *3 (4 (4 (,{4 4 4 4 #1c4;7778 I$$'''5	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(s>   AF6A/C&%F&E05A1E+&F+E00FF Fc                 0    |                      d           d S )Nr  r  r3  r.  s     r   on_btnSelfTest_clickedz.PrinterPropertiesDialog.on_btnSelfTest_clicked  s      "566666r   c                 0    |                      d           d S )Nz	Clean allr  r  s     r   on_btnCleanHeads_clickedz0PrinterPropertiesDialog.on_btnCleanHeads_clicked  s      +.....r   c                    |t          j                    }t          j        t          t                    }|                    |           d}t          |          D ]L\  }}|                    |                    |          |g           ||k    r|	                    |           d}M|s|	                    d           d S d S )NFTr   )
	ppdippstrTranslationDictr   r  r  r  	enumerater%  rG  
set_active)	r3  r4  rS  r  translationdictr=  r  nrvals	            r   fillComboBoxz$PrinterPropertiesDialog.fillComboBox  s    "'7::Os"$ $E"""
 (( 	" 	"GBLLO//55<===e||##B'''!
 	$#####	$ 	$r   c                 2   t                      | _        i | _        t                      | _        |st	          j                    }|st	          j                    }t          j        | j	        ||          }|| _        t          j        || j                  }|| _        	 |j        d         }|| _        n# t          $ r Y nw xY w| j        j         }	 |                                | _        |                                | _        | j        dk    r| j                                         n># t          j        $ r}	|	j        \  }	}
|	t          j        k    rt1          |	|
| j                   |	t          j        t          j        fv r@t7          t9          d          t9          d          t:          j        j        | j                   d| _        Y d }	~	nd }	~	wt@          $ r}	tC          |	          "                    d          r1tG          t9          d          t9          d          | j                   n0tG          t9          d          t9          d	          | j                    d }	~	ww xY w| j$        | j%        | j&        fD ]}|'                    |           | j(        | j)        | j*        | j+        | j,        | j-        | j.        | j/        | j0        | j1        | j2        | j3        | j4        | j5        | j6        fD ]}|7                    |           | j$        8                    |j9                   | j%        8                    |j:                   |j;        }| j&        8                    |           | j        <                    | j&                   | j=        | j>        | j)        | j?        | j&        | j(        fD ]2}|j@        r|A                                 |B                                 3	 |jC        r;| j        r| jD        A                                 n3| jD        E                                 n| jD        A                                 n.#  t                       | jD        A                                 Y nxY w| j-        7                    |           | j.        7                    |           | j/        7                    |           | j0        7                    |           | j4        8                    d
           i | _G        | jH        I                                D ]`}|jJ        dk    r=| j        r6| j        K                    d          }|r|L                    |jM                   |}	 | j        jN        |jJ                 }	 |jJ        | j        jO        v r5| j        jO        |jJ                 d         }|P                    ||           n|P                    |           || jG        |jJ        <   nW#  t                       d}t          d|jJ        d|d           Y n(xY w# t          $ r |P                    d            Y nw xY w|jR        7                    |           |s|jS        7                    d           bg | _T        | U                    |           | j        jN        V                                D ]}|| jG        v r|dk    s|dk    r| j        jN        |         }|| j        jO        v r| j        jO        |         d         }nLt          |t                    r&ddg}tC          |          Y                                }nd
}tC          |          }| Z                    |||d|           | j[        8                    d
           | j[        7                    |           | j\        7                    d           |j@        rU| j]        ^                    | j_                  }|dk    r| j]        `                    |           | a                    |           n| b                    ||           | c                                 | d                                 | e                                 t                      | _        | f                                 | g                                 d S )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   rw  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  localizerV  rW  IPP_INTERNAL_ERRORrX  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   r7  r   rq  r  r:   r  r   r  r,  rS  r;  r~  set_defaultr  rQ  possible_attributesreinitr2  r   r.  r  r  rO  r  r)  r  r  r   r   r-   page_numrJ   remove_pagefillClassMembersfillPrinterOptionsupdateMarkerLevelsupdateStateReasonsupdatePrinterPropertiesTreeViewr]  rr  )r3  r;  r   rd  r   rK  r   
publishingr  rf  mr   urirA  r  option_editabler  r  tab_nrs                      r   ro  zPrinterPropertiesDialog.load  s   uu 	$>##D 	/+..J&*,68 8 8 	%tTY77	 12NOJ(2D%% 	 	 	D	 |..%	~~''DH$^^--DN~&&'')))} 	 	 	VFQ D+++q!T[111T1,. . .AkNN ( ) )O1 K	) ) ) DHHHHHH 	 	 	 Aww!!5)) 	0!1W::#$ &3 $4 $4#';0 0 0 0
 "1W::#$ &8 $9 $9#';0 0 0 	  +T->( 	* 	*F))))+T->');T_+T-?+T-E}d&68HJ 	+ 	+F   **** 	%%gl333""7#3444   %%%T_--- *D,>($*:(<> 	 	F  
	(  ,, 5(--////(114444$))+++	( %%''''' 	**8444((222 	**8444 ..x888 	r""" $& .5588 $	4 $	4F{g%%$(% h)):66 7&&666&Ok/<k{dl&FFF$(L$7%EEF%H	 u	BBBBu---<BD,V[99k%'''&+OJV\VaVaVachchch ijjjjj+  % % %t$$$$$%, M''999 4++U333!###h#777l-2255 	4 	4F111&&&K*?*?L+F3E999 L<VDQG		ud++ (!' 1IKK--00EE "IKKEu+4U*2   4 4 4 4 	%%r*****H555**E222 	4%..t/EFFF|| ,,V444!!(++++ ##D(333!!!!!!,,...uu$$'''!!!!!se   B2 2
B?>B?AD( (I#7BGI#BII#AP: :)Q%X0A,W-XX10X1c                 B   t          j        t          t                    }| j                            d           t          | j                                                  D ]}| j                            |          }| j        	                    |          }|
                    d           }|                    |d|                                           |                    |d|           | j                                        }| j                            |           d S )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788 	) 	)A#00!44D$22D99E<<&&DOOT1enn&7&7888OOT1a((((&4477 **E22222r   c           
      6	   | j         }|sd S | j                                        D ]}| j                            |           t	                      }d}dt
          fdt
          fdt
          fdt          ffD ]\  }|j                            |g           }t
          k    r`t          |          dk    rM	  |d                    n:# t          $ r-}t          |dd|           d |D             }Y d }~nd }~ww xY wfd	|D             ||<   |dk    st          |          |k     rt          |          }d
D ]I}t          ||                   |k    r.t          d||         |d          d|           ||         |d = Jt          t          d |d         |d         |d         |d                             }t          |           |j        t          j        z  dk    }	|	r| j                                         n| j                                         t          |          dk    rlt)          j        t-          d                    }
|
                    d           |
                    dd           | j                            |
ddd           nd}t          |          }d|dz
  dz  z   }|dk    rd}t)          j                    }|                    d           |                    d           |                    d           |                    d           | j                            |ddd           |D ]:\  }}}}|d}n)| j        dk    r| j                             |          }||}|dz  }|dz  }t)          j!        d          }t)          j!                    }tE          j#        ||          }|$                    d|z             |                    |ddd           |                    |ddd           t)          j        |          }
|
%                    d           |
                    d           |                    |
ddd           |&                    |||dd           |dz  }<| j        '                                 d S )Nr   marker-colorsmarker-namesmarker-typesmarker-levelsz value not coercible to z: c                     g | ]}d S )r  r   )r  xs     r   r  z>PrinterPropertiesDialog.updateMarkerLevels.<locals>.<listcomp>  s    ,,,13,,,r   c                 :    g | ]}t           k    r|d k     rdn|S )r   r  )r  )r  r  typs     r   r  z>PrinterPropertiesDialog.updateMarkerLevels.<locals>.<listcomp>  s>     !3 !3 !3)* *-A#$!3 !3 !3r   )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  Tr  Fr   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attrr  rg  markerscan_refreshr  colsr  gridr  r;  marker_typer  localized_namer   r>  vboxsubhboxinklevelr  s                           @r   r  z*PrinterPropertiesDialog.updateMarkerLevels  s?   , 	F +88;; 	2 	2F!((&1111ff,c2+S1+S1,e46 	( 	(KT3 *..b99Cczzc3ii!mm-CQLLLL  - - -!%sssAA!/ 0 0 0,,,,,CCCCCC-
!3 !3 !3 !3.1!3 !3 !3Ka399{#:#:!3ii6 	4 	4DK%&&44
(.{||<<<ddD E E E%kll3s 6 6"?3">2">2"?35 5 6 6 	G|d&@@QF 	0',,////',,///==AIA '4 %5 %5 6 6 6E&&&c***!,,eUE1EEEEK==DqA~%Daxx8::D''---$$T***##Q'''  "%%%!,,dE5!DDD3: ! !/t[%<DDX&&%)X%@%@%F%FN%1-!Ao!Aow***'**&2E5AA))6E>:::""HdE1===%:::	---%%r***##T***ua888T3Q222q &&)))))s   4C
C=#C88C=c                 0    |                      d           d S )NReportLevelsr  r  s     r   r  z9PrinterPropertiesDialog.on_btnRefreshMarkerLevels_clicked6  s      .11111r   c                    | j         }|j                            dg           }t          j        t
          t
                    }d}|D ]}|dk    r nd}|                    d           }t          j        |j	        || j
                  }|                                dk    rt          j        }n)t          j        j        |                                         }|                    |d|           |                                \  }	}
|                    |d|
           | j                            |           d}|rd}| j                            |           d S )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   rr  )r3  r   reasonsr:  anyreasonr  rr8  titler   r/  s               r   r  z*PrinterPropertiesDialog.updateStateReasons9  sD   ,*..0GLLsC(( 	, 	,FC<<&&D'vt~NNA||(**,".9!++..IOOT1d+++--00MUDOOT1d++++",,e444 	D$55t<<<<<r   c                     |                     |d          }t          j                                        }	 |                    |dd          }|                    d|           d S # t          j        $ r Y d S w xY w)Nr   r   pixbuf)r  r   	IconThemerT  	load_iconset_propertyr   GError)	r3  r7  r5  r=  r  r  r8  themer  s	            r   r  z5PrinterPropertiesDialog.set_printer_state_reason_iconT  s    a(()),,	__dB22Fx00000{ 	 	 	DD	s   -A% %A87A8c                 Z    |                     d|                    |d                     d S )Nr   r   )r  r  )r3  r7  r5  r=  r  r  s         r   r  z5PrinterPropertiesDialog.set_printer_state_reason_text]  s,    65??D!#<#<=====r   c                 j   t          d           | j        }| j                            |j                   | j                            |j                   | j                            |j	        t          d                    }|j                            dd          }t          |          dk    r|d|z   z  }| j                            |           t          | j                  dk    rt          d           | j                            |j                   | j                            |j                    | j                            |j                   |                     | j        |j        |j        t4          j                   |                     | j        |j        |j        t4          j                   |                     | j        |j        |j         t4          j!                   |                     | j"        |j#        |j$        t4          j%                   | j&                            |j'                   | j(                            |j'                    | )                    |j*                   | +                                 | ,                                 | -                                 d S d S )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   r]  z/PrinterPropertiesDialog.updatePrinterProperties`  s   /000,  !3444##G$:;;;#'')*97 7)--/FKK<<!UV^#E&&&""HIII''888))g.?*?@@@O&&w'8999 d2%:%5'24 4 4 d0'2N%3'24 4 4
 d2%<%2'<> > > d6%9%/'9; ; ; O&&w'<===N%%'*?&?@@@NN7/000 ##&&&##&&&0033333G #"r   c           	         | j                             | j                  }|dk    r| j                             |           | j                                        D ]}| j                            |           | j                                        D ]}| j                            |           | j                             | j                  dk    r+| j         	                    | j        | j
        | j                   | j        s| j                             | j                  }|dk    r| j                             |           | j                             | j                  }|dk    r| j                             |           d S | j        }|                                 | j                                         d}| j        j        D ]u}|j        dk    rud}| j        }| j                             | j                  }|dk    r>| j         	                    | j        t%          j        |j                  | j                   | j        }	nt,          j                            |j                  }
t%          j        dt3          j        |
          z            }|                                                    d           |                    t$          j        j                   | j                             |ddd           t$          j!        "                    ddd	d	          }|#                    d
dd
d           |$                    |           | j
        }	t%          j%                    }|&                    d
           |'                    d
           |$                    |           d}d x| _(        | _)        tU          |j+                  D ]n\  }}|j,        dk    r|dz  }t[          ||| |	          }|.                    |j/        d|dd           t%          j0                    }|j1        rt$          j!        "                    ddd	d	          }|#                    dddd
           |$                    |j1                   |.                    |d|dd           |.                    |d|dd           n|.                    |d|dd           |                     |j2        ddd           || j+        |j,        <   |j2        3                    |           |j,        dk    r	|| _(        \|j,        dk    r|| _)        pw|s?| j                             | j                  }|dk    r| j                             |           | j+        4                                D ]2}|5                                }|r| j6        $                    |           3| j        7                                 | j        7                                 d S )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  rS  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00 ,99;; 	2 	2F"))&1111 o2244 	+ 	+FO""6**** $$T_55;;((!143CE E E x 	%..t/EFFF|| ,,V444%..t??F|| ,,V444Fh##%%% % ^0 <	/ <	/Ez111(,% 2	)2243IJJR<<$001G141L1L1L151AC C C !3		&]..
;;
	dk:6N6N(NOOO&&((77===%%s~':;;;**E5%CCCM--c3SAA	 %%q"a333		9%%% ,	8::D##A&&&  ###MM$D >BAD!D$:'66 / /
F>\11	 diHHHANAr1a888wyy7 3))#sC==AMM1aA...EE17OOOKK1b!Q///KKaQ2222KKaQ222
E5!<<</0V^,
((222>[00,-D))^|33-.D*-/2 % 	5%..t/EFFF|| ,,V444 l))++ 	+ 	+F--//I +""6***'')))  """""r   c                    | j                             |           | j                            |           | j                            | j                  }|dk    r| j                            |           | j                            | j                  dk    r+| j                            | j        | j	        | j
                   | j                                        }| j                                        }|                                 |                                 t          | j                                                  }|                                 |D ]f}|| j        j        k    rT|| j        j        v r|                    |f           7| j        j        t0          j        z  s|                    |f           gd S )Nr  )rS   r  rT   r-   r  rL   r  rO   r  rP   r   rQ   r  rR   r  rN  r/  get_printersr  r   r;  rD  r%  r  r   CUPS_PRINTER_CLASS)r3  r  r  model_membersmodel_not_membersnamesr;  s          r   r  z(PrinterPropertiesDialog.fillClassMembers  s   ,,X666,,X666 !**4?;;R<<((000 $$T%899R??((#T%9 " " " +5577 2<<>>!!!dm003344

 	7 	7Dt|(((4<555!(($2222*T-DD 7%,,dX666	7 	7r   c                 8   t          j        | j        | j                   t          j        | j                  | j        j        k    r | j                            | j                   n| j        	                    | j                   | 
                                 d S rF  )rj  moveClassMembersrR   rQ   r<  r   rD  r   r  r  rr  r  s     r   on_btnClassAddMember_clickedz4PrinterPropertiesDialog.on_btnClassAddMember_clicked  s    #D$:$($7	9 	9 	9,T-@AAT\E___LT01111L  !4555!!!!!r   c                 8   t          j        | j        | j                   t          j        | j                  | j        j        k    r | j                            | j                   n| j        	                    | j                   | 
                                 d S rF  )rj  r9  rQ   rR   r<  r   rD  r   r  r  rr  r  s     r   on_btnClassDelMember_clickedz4PrinterPropertiesDialog.on_btnClassDelMember_clicked'  s    #D$7$($:	< 	< 	<,T-@AAT\E___LT01111L  !4555!!!!!r   c                     |o)| j         d uo | j         j        pt          | j                   }| j        | j        fD ]}|                    |           d S rF  )r   rp  r)  r   r6   r5   r  )r3  	sensitiver.  s      r   sensitise_new_printer_widgetsz5PrinterPropertiesDialog.sensitise_new_printer_widgets0  s}     /\-/,1 .--/ 	 (+- 	- 	-F  ),,,,	- 	-r   c                 0    |                      d           d S NFr?  rC  s    r   desensitise_new_printer_widgetsz7PrinterPropertiesDialog.desensitise_new_printer_widgets9  s    **E22222r   c                 ,   t          | j                   |                                  | j                            d| j        j        | j        j        | j        | j	        | j                  s| 
                                 t          | j                   d S )Ndevice)r  r;  r   rd  r   )r   r  rC  rc  initr   r  r;  re  rf  r?  r   r  s     r   on_btnSelectDevice_clickedz2PrinterPropertiesDialog.on_btnSelectDevice_clicked=  s    dk,,///!&&xDL<S,0L,=,0J262B.2k	 ' ; ; 	2
 ..111t{r   c           	      8   t          | j                   |                                  | j                            d| j        j        | j        | j        j        | j	        | j
        | j                  s|                                  t          | j                   d S )Nr   )r  r   r;  r   rd  r   )r   r  rC  rc  rF  r   r  r   r;  re  rf  r?  r   r  s     r   on_btnChangePPD_clickedz/PrinterPropertiesDialog.on_btnChangePPD_clickedJ  s    dk,,///!&&u9P+/8,0L,=,0J262B.2k ' ; ; 	2 ..111t{r   c                 P   t          d           |                                  | j                            d          rf| j        ra	 | j                                         |r|                     |           d S |                                  d S # t          j	        $ r Y d S w xY wd S d S )Nzon_printer_modified calledr}  )
r2  r?  r  r  r   r\  ro  r]  r   rV  )r3  rI  r;  ppd_has_changeds       r   rl  z+PrinterPropertiesDialog.on_printer_modifiedX  s    0111**---;##Y// 		DL 		**---" 4IIt$$$$$0033333=   		 		 		 		s   0B 8B B! B!c                 .    |                                   d S rF  rB  )r3  rI  s     r   rm  z/PrinterPropertiesDialog.on_printer_not_modifiedf  s    **-----r   c                 4    |                      d |d           d S rA  )rl  )r3  monr   	eventnamer   s        r   rZ  z(PrinterPropertiesDialog.on_printer_eventj  s       $77777r   c                     | j                             d          r@| j        r9| j        j        |k    r)| j                             t
          j        j                   | j        r| j        j        |k    rd | _        d S d S d S Nr}  )r  r  r   r;  r   r   r~  r  )r3  rN  r   s      r   r[  z*PrinterPropertiesDialog.on_printer_removedm  s    K$$i00 	;L	;!\.'99K  #"2"9:::< 	 DL-88DLLL	  	 88r   c                     | j                             d          ro| j        rj| j        j        |                                k    rJ	 | j                                         |                                  d S # t          j        $ r Y d S w xY wd S d S d S rQ  	r  r  r   r;  get_printerr\  r]  r   rV  r3  rN  r   s      r   r\  z-PrinterPropertiesDialog.on_state_reason_addedu      K$$i00 	L	!\.&2D2D2G2GGG**---,,/////=   	 	 	 	GG   -A4 4BBc                     | j                             d          ro| j        rj| j        j        |                                k    rJ	 | j                                         |                                  d S # t          j        $ r Y d S w xY wd S d S d S rQ  rS  rU  s      r   r]  z/PrinterPropertiesDialog.on_state_reason_removed~  rV  rW  c                     d S rF  r   )r3  rN  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  r9  r#  rs  ru  r  r  r  r  r  ro  r  r  r  r  r  r  r]  r  r  r:  r<  r?  rC  rG  rI  rl  rm  rZ  r[  r\  r]  r^  r   r   r   r   r   ?   s}        #.7rB".7rB
 
L
 ,1V9921\??,1V99/1Y<<*Nk" k" k"Z  ( ( (
* * * *0 0 0
  > > >1 1 1 1f-6 -6 -6bK K K#" #" #"J0 0 0(  7 7 7" " "" " "" " "@ @ @3 3 3
" 
" 
"" " ""$ $ $ $4 GK $* * * **
" 
" 
"" " "3 3 3
1 1 1gG gG gGRH H H HT  - - -2 2 2) ) ):2 :2 :2x (  (  (D7 7 7/ / /$ $ $ $"J" J" J" J"X3 3 3^* ^* ^*@2 2 2= = =6  > > >.4 .4 .4`m# m# m#b7 7 7:" " "" " "- - - -3 3 3
 
 
    . . .8 8 8             r   r   __main__r   zSpecify queue namer   TuiSYSTEM_CONFIG_PRINTER_UIr'   c                 `    |                                   t                                           d S rF  )r   loopquit)rI  s    r   on_dialog_closedrj    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   rZ  sysr  argvprintexitset_debuggingr   r   r&   rF  MainLooprh  rj  
propertiesr	  rq  r  r   r   r   <module>r{     s  2                   v~1A B B B B         ! ! ! ! ! !              & & & & & &                        " " " " " " " "    

    J J J J Jf J J JX: zJJJ
sCH~~"###!M4-1BJ)*FfmR(((IN7D   )(++J)9:::OOSXa[!!!HHKKKKK) r   