
    KcK                        d dl T d dlmZ d dlZd dlZd dlZ ej        d            G d de          Zd Z	 G d d	          Z
 G d
 de
          Z G d de          Z G d de
          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          ZdS )    )*)GtkNz1.9.55c                        e Zd Zd Zd Zd ZdS )IPPResolutionc                 v   t           j        dt           j        di| _        t           j        | _        i | _        | j                                        D ]\  }}|| j        |<   t          |t                    rxt          j
        d|                                          }t          |d                   }t          |d                   }| j                            |d         | j                  }n|d         }|d         }|d         }t                              | |||f          }||_        ||_        ||_        |S )Ndpidpc(\d+)\D+(\d+)(.*)r         )cupsIPP_RES_PER_INCHIPP_RES_PER_CMUNITS_BY_VALUNITS_DEFAULTUNITS_BY_STRitems
isinstancestrrematchgroupsintgettuple__new__xresyresunits)	clsvaluesvsmatchesr   r   r   selfs	            +/usr/share/system-config-printer/options.pyr   zIPPResolution.__new__    s#   !2E!0%: 1$**-- 	$ 	$DAq"#CQvs## 	h 4f==DDGGG
##D
##D$(('!*c6GHHEE!9D!9D1IE}}cD$#677		
    c                 Z    t                               | j        | j        | j        f          S N)r   __init__r   r   r   )r%   r!   s     r&   r*   zIPPResolution.__init__9   s!    ~~	49djABBBr'   c                 n    | j         d| j        | j                            | j        | j                  S )Nx)r   r   r   r   r   r   r%   s    r&   __str__zIPPResolution.__str__<   sE     IIItyy -114:373EG G GH 	Hr'   N)__name__
__module____qualname__r   r*   r.    r'   r&   r   r      sI          2C C CH H H H Hr'   r   c                    t          |t                    rbt          |t                    r6||z   D ]}t          |t                    st          t	          | |||          S t          ||           t          t          |t                    st          |t                    st          |t                    rt          |          dk    rt          |d         t                    rt          |d         t                    s6t          |d         t                    rt          |d         t                    r	 t          |t                    s0t          |t                    r+t          |d         t                    rt          |          }nt          |          }n"# t          $ r t          | |d|          cY S w xY wt          | |||          S t          |t                    r|D ]g}t          |t                    r't          |          dk    rt          | |||          c S t          |t                    st          | |||          c S h	 t          |          }n"# t          $ r t          | |||          cY S w xY wt          | |||          S t          |t                    rt          | |||          S t          )Nr   r   r       )r   listr   
ValueErrorOptionSelectManyprintNotImplementedErrorr   floatr   len
OptionTextOptionNumericOptionSelectOneResolutionOptionSelectOneOptionSelectOneNumber)namer"   r#   	on_changevvsvs         r&   OptionWidgetrF   A   s   !T &a 	;!e = =!"c**<*,<<#D!Q	:::a!!q# 	q%  	5!!	 VVq[[!A$$$ )3AaD#)>)> !A$&& +5adE+B+B :q#&& !q%((!-7!c-B-B!AAAaA : : :!$2y99999: q!Y7774   	 B Bb%(( BS"XX]]4T1aKKKKK#B,, B*4AyAAAAAB>FF > > >&tQ9=====>(q!Y???3 	dAq)444s%   9A$F F=<F=I" "J Jc                        e Zd Zd Zd Zd ZdS )OptionInterfacec                     d S r)   r2   r-   s    r&   get_defaultzOptionInterface.get_defaultm   s    tr'   c                     t           r)   r:   r-   s    r&   get_current_valuez!OptionInterface.get_current_valuep       !!r'   c                     t           r)   rL   r-   s    r&   
is_changedzOptionInterface.is_changeds   rN   r'   N)r/   r0   r1   rJ   rM   rP   r2   r'   r&   rH   rH   l   sA          " " "" " " " "r'   rH   c                   \    e Zd ZdZdZdZ	 ddZd Zd Zdd	Z	d
 Z
d Zd Zd Zd Zd ZdS )OptionAlwaysShownr   r   r   NFc                    || _         || _        || _        |t          k    rd }|}|| _        |                     |           || _        t          | j                  t          j	        k    rc| j        
                                Jt          d| j         z             t          j        t                    }	| j                            |	           ||t          k    ru| j        
                                }	d}
i }|	                                }|r;|	                    |d          |||
         <   |
dz  }
|	                    |          }|;|| _        || _        |                     d            d S )Nc                     t          |           t          k    r|                                 dv rdS dS t          |           S )N)falsenooffFT)typer   lowerbool)r,   s    r&   	bool_typez-OptionAlwaysShown.__init__.<locals>.bool_type   s:    88s??wwzz%;;;$u4Qxxr'   zNo ComboBox model for %sr   r   )rB   widgetbuttonrZ   ipp_typeset_defaultcombobox_maprX   r   ComboBox	get_model
debugprint	ListStorer   	set_modelr   get_iter_first	get_value	iter_nextcombobox_dictuse_supportedreinit)r%   rB   r^   system_defaultr\   r]   r`   rj   r[   modelidictiters                r&   r*   zOptionAlwaysShown.__init__|   so   	t      !H .)))(--K!!$$,1DI=>>>M3''EK!!5)))#CK)),,EAD''**D .(-q(A(A\!_%Q--  . "&D*Tr'   c                     | j         S r)   )rl   r-   s    r&   rJ   zOptionAlwaysShown.get_default   s    ""r'   c                 :    |                      |          | _        d S r)   )r^   rl   )r%   rl   s     r&   r_   zOptionAlwaysShown.set_default   s     #mm^<<r'   c                    || j         rt          | j                  t          j        k    r| j        t          k    r| j                                        }|                                 t          j
                            | j                  }|rg | _        t                      | _        d}|D ]}t          |                     |                    }|r?| j                            |           |                    |          }|| j        |<   |dz  }n|}|                                }	|                    |	d|           nt          | j                  t          j        k    r| j                                         t          j
                            | j                  }|rg | _        t                      | _        d}|D ]}t          |                     |                    }|r?| j                            |           |                    |          }|| j        |<   |dz  }n|}| j                            |           nt          | j                  t          j        k    r| j        t*          k    ro| j        h| j                                        }|                                 |D ]8}|                                }	|                    |	d| j        |                    9|O|                     |          | _        |                     | j                   | j                            d           n;d| _        |                     | j                   | j                            d           | j        | _        dS )zSet the original value of the option and the supported choices.
        The special value None for original_value resets the option to the
        system default.Nr   r   TF)rj   rX   r\   r   ra   r^   r   rb   clear	ppdippstrjob_optionsr   rB   r`   ro   ri   append	set_valueComboBoxText
remove_allappend_textr   original_valueset_widget_valuer]   set_sensitiverl   STATE_UNCHANGEDstate)
r%   r|   	supportedrm   translationsrn   eachtxttextrp   s
             r&   rk   zOptionAlwaysShown.reinit   sK    ! "T[!!S\11$$--00(488$)DD (*D%)-D&A% 4 4Dt}}d3344C# #)00#666+//5537*40Q" <<??DOOT1d33334 dk""c&666&&)))(488$)DD (*D%)-D&A% 
3 
3Dt}}d3344C# #)00#666+//5537*40Q"K++T2222
3 t{##s|33-3&&#/--00% H HD <<??DOOT1d.@.FGGGG%"&--"@"@D!!4#6777K%%t,,,,"&D!!4#6777K%%u---)


r'   c                    t          | j                  }|t          j        k    r| j                            |          S |t          j        k    s|t          j        k    r%| j        t          k    s| j        t          k    r| j
        | j                                        }|                                }|q|                     |                    |d                    |k    rD|                    |          }|-|                     |                    |d                    |k    D|r| j                            |           d S d S | j
        r| j
                            |          }n|}| j                            |          S |t          j        k    r| j                            |          S t'          || j                  Nr   )rX   r\   r   
SpinButtonrx   ra   ry   r^   r   r   r`   rb   rf   rg   rh   set_active_iterindex
set_activeCheckButtonr:   rB   )r%   	ipp_valuetrm   rp   r   s         r&   r}   z"OptionAlwaysShown.set_widget_value   s   ;(()444#,!s'7"7"7#%%-)G)G%---00++..'}}eootQ&?&?@@IMM ??D11D '}}eootQ&?&?@@IMM 7K//666667 7 $ & -33Y??EE%E{--u555#/!!;))9555%a333r'   c                 l   t          | j                  }|t          j        k    ri	 |                     | j                                                  S # t          $ r/ |                     | j                                                  cY S w xY w|t          j        k    rW| j	        r$| j	        | j        
                                         S |                     | j        
                                          S |t          j        k    rS| j                                        }|| j        }| j	        r| 	                    |          S |                     |          S |t          j        k    r,|                     | j        
                                          S t          || j        | j                   t           r)   )rX   r\   r   r   r^   get_textr7   rg   ra   r`   
get_activery   get_active_textrl   r   r9   r:   )r%   r   r#   s      r&   get_widget_valuez"OptionAlwaysShown.get_widget_value  s   @}}dk&:&:&=&=>>> @ @ @}}dk&;&;&>&>?????@ #,  C()?)?)A)ABB==$+"8"8";";<<<#"""++..Ay '  -((!,,,==!$$$#/!!==$+"8"8";";<<<adm,,,!!s   +A 6B
Bc                 *    |                                  S r)   )r   r-   s    r&   rM   z#OptionAlwaysShown.get_current_value)  s    $$'''r'   c                     | j         E| j        | j        k    rdS | j        | j        k    r!|                                 | j         k    rdS dS dS | j        | j        k    rdS dS )NTF)r|   r   STATE_RESETSTATE_ADJUSTEDrM   r-   s    r&   rP   zOptionAlwaysShown.is_changed,  sy    *zT---tzT000)),,0CCC4u 5 :,,,4 ur'   c                     |                      | j                   | j        | _        | j                            d           d S NF)r}   rl   r   r   r]   r~   r-   s    r&   resetzOptionAlwaysShown.resetB  s?    t2333%
!!5)))))r'   c                 R    | j         | _        | j                            d           d S )NT)r   r   r]   r~   r-   s    r&   changedzOptionAlwaysShown.changedG  s(    (
!!4(((((r'   r   r)   )r/   r0   r1   r   r   r   r*   rJ   r_   rk   r}   r   rM   rP   r   r   r2   r'   r&   rR   rR   v   s        OKN GL# # # #J# # #= = =A* A* A* A*F4 4 44 "  "  "D( ( (  ,* * *
) ) ) ) )r'   rR   c                   :    e Zd Z	 	 d
dZd Zd ZddZd Zd	 ZdS )OptionAlwaysShownSpecialNFSystem defaultc	           
      f    || _         d| _        t                              | |||||||           d S )NF)r`   rj   )special_choicespecial_choice_shownrR   r*   )	r%   rB   r^   rl   r\   r]   r`   rj   r   s	            r&   r*   z!OptionAlwaysShownSpecial.__init__L  sS     -$)!""D$.$*F1=2? 	# 	A 	A 	A 	A 	Ar'   c                    | j         rd S d| _         | j                                        }|                    d          }|                    |d| j                   | j                            |                                           d S )NTr   )r   r\   rb   insertrx   r   r   rf   )r%   rm   rp   s      r&   show_special_choicez,OptionAlwaysShownSpecial.show_special_choiceV  s    $ 	F$(!%%((||Qq$"5666##U%9%9%<%<=====r'   c                     | j         sd S d| _         | j                                        }|                    |                                           d S r   )r   r\   rb   removerf   )r%   rm   s     r&   hide_special_choicez,OptionAlwaysShownSpecial.hide_special_choicea  sQ    ( 	F$)!%%((e**--.....r'   c                     ||                                   n|                                  t                              | ||           d S )N)r   )r   r   rR   rk   )r%   r|   r   s      r&   rk   zOptionAlwaysShownSpecial.reinitj  sP    %$$''''$$'''  $) LLLLLr'   c                 b    |                                   t                              |            d S r)   )r   rR   r   r-   s    r&   r   zOptionAlwaysShownSpecial.resetr  s.      ###&&&&&r'   c                     t                               |            | j                                        dk    r|                                  d S d S r   )rR   r   r\   r   r   r-   s    r&   r   z OptionAlwaysShownSpecial.changedv  sO    !!4(((;!!$$q(($$''''' )(r'   )NFr   r)   )	r/   r0   r1   r*   r   r   rk   r   r   r2   r'   r&   r   r   K  s        FK"2A A A A	> 	> 	>/ / /M M M M' ' '( ( ( ( (r'   r   c                   *    e Zd ZdZd Zd Zd Zd ZdS )OptionNc                     || _         || _        || _        || _        d| _        |}|                    d          s|dz  }t          j        |          | _        | j        	                    dd           d S )NF:)label        g      ?)
rB   valuer   rC   is_newendswithr   Labelr   set_alignment)r%   rB   r   r   rC   r   s         r&   r*   zOption.__init__  sy    	
""~~s## 	SLEYU+++

  c*****r'   c                     t           r)   rL   r-   s    r&   rM   zOption.get_current_value  rN   r'   c                 ~    | j         p6t          |                                           t          | j                  k    S r)   )r   r   rM   r   r-   s    r&   rP   zOption.is_changed  s9     CT++--..#tz2B2BB	Dr'   c                 0    |                      |            d S r)   )rC   )r%   r\   argss      r&   r   zOption.changed  s    tr'   )r/   r0   r1   	conflictsr*   rM   rP   r   r2   r'   r&   r   r   {  sX        I+ + +" " "D D D    r'   r   c                       e Zd Zd Zd ZdS )r@   c                    t                               | ||||           t          j                    | _        d }t          |          D ]N\  }}| j                            t          |                     t          |          t          |          k    r|}O|| j                            |           njt          d|d|           t          d|z             t          |          dk    r0t          d|d                    | j                            d           | j                            d| j                   d S )NzUnknown value for z: zChoices: %sr   zSelecting from choices:r   )r   r*   r   ry   selector	enumerater{   r   r   rc   r<   connectr   )r%   rB   r   r   rC   selectednrchoices           r&   r*   zOptionSelectOne.__init__  s.   dE9i@@@(**#I.. 	 	JBM%%c&kk222E{{c6ll**M$$X....JTTT55ABBB}	23339~~!!4ilCCC((+++i66666r'   c                 4    | j                                         S r)   )r   r   r-   s    r&   rM   z!OptionSelectOne.get_current_value  s    },,...r'   Nr/   r0   r1   r*   rM   r2   r'   r&   r@   r@     s2        7 7 7(/ / / / /r'   r@   c                   &    e Zd Zd Zd Zd Zd ZdS )r?   c                 p   t           j        dt           j        di| _        t           j        | _        i | _        | j                                        D ]\  }}|| j        |<   |                     |          }t          t          | j        |                    }t                              | ||||           d S )Nr   r	   )r   r   r   r   r   r   r   stringr6   mapr@   r*   )r%   rB   r   r   rC   r"   r#   s          r&   r*   z"OptionSelectOneResolution.__init__  s    "3U"15;!2%++.. 	% 	%DAq#$Da  U##dk95566	  $eY	JJJJJr'   c                 j    |d         d|d         | j                             |d         d          S )Nr   r,   r   r   r4   )r   r   )r%   r   s     r&   r   z OptionSelectOneResolution.string  s>    !!HHHeAhh -1158R@@@B 	Br'   c                     t          j        d|                                          }t          |d                   t          |d                   | j                            |d         | j                  fS )Nr
   r   r   r   )r   r   r   r   r   r   r   )r%   r   r$   s      r&   r   zOptionSelectOneResolution.value  sf    (0&99@@CCWQZ  #wqz"2"2!%%wqz43EFFH 	Hr'   c                 Z    |                      | j                                                  S r)   )r   r   r   r-   s    r&   rM   z+OptionSelectOneResolution.get_current_value  s"    zz4=88::;;;r'   N)r/   r0   r1   r*   r   r   rM   r2   r'   r&   r?   r?     sY        
K 
K 
KB B BH H H
< < < < <r'   r?   c                       e Zd Zd ZdS )rA   c                 R    t          | j                                        pd          S r   )r   r   r   r-   s    r&   rM   z'OptionSelectOneNumber.get_current_value  s#    4=00227a888r'   N)r/   r0   r1   rM   r2   r'   r&   rA   rA     s#        9 9 9 9 9r'   rA   c                       e Zd Zd Zd ZdS )r8   c                    t                               | ||||           g | _        t          j                    }|D ]}t          j                            |          }|                    ||v            |                    |           |	                    d| j
                   | j                            |           || _        d S )Ntoggled)r   r*   
checkboxesr   VBoxr   new_with_labelr   addr   r   rw   r   )r%   rB   r   r   rC   vboxr#   checkboxs           r&   r*   zOptionSelectMany.__init__  s    dE9i@@@xzz 	- 	-A55a88HU
+++HHXY555O""8,,,,r'   c                 J    d t          | j        | j                  D             S )Nc                 @    g | ]\  }}|                                 |S r2   )r   ).0r#   chks      r&   
<listcomp>z6OptionSelectMany.get_current_value.<locals>.<listcomp>  s:     $ $ $VQ..""$q $ $ $r'   )zipr   r   r-   s    r&   rM   z"OptionSelectMany.get_current_value  s0    $ $s4>4?CC $ $ $ 	$r'   Nr   r2   r'   r&   r8   r8     s2          $ $ $ $ $r'   r8   c                       e Zd Zd Zd ZdS )r>   c                    t          |t                    p/t          |t                    ot          |d         t                    | _        | j        rd}nd}t          |t                    sd|f}t                              | ||||           t          j        ||d         |d         ddd          }t          j                    | _	        | j	        
                    |           | j	                            |           | j        s| j	                            d           | j	                            d	| j                   d S )
Nr   r   r   g      ?g      @r   )r   rY   upperstep_incrementpage_increment	page_sizeTr   )r   r;   r   is_floatr   r*   r   
Adjustmentr   r   set_adjustment
set_digitsset_numericr   r   )r%   rB   r   r   rC   digitsadjs          r&   r*   zOptionNumeric.__init__  s7   #Iu55 ;$Y66 :$Yq\599 	 = 	FFF)U++ 	'IIdE9i@@@n5	!#,Q<,/3@ @ @ (($$S)))  (((} 	,M%%d+++i66666r'   c                 t    | j         r| j                                        S | j                                        S r)   )r   r   rg   get_value_as_intr-   s    r&   rM   zOptionNumeric.get_current_value  s4    = 	-=**,,,}--///r'   Nr   r2   r'   r&   r>   r>     s2        7 7 7,0 0 0 0 0r'   r>   c                       e Zd Zd Zd ZdS )r=   c                     t                               | ||||           t          j                    | _        | j                            |           | j                            d| j                   d S )Nr   )r   r*   r   Entryr   set_textr   r   )r%   rB   r   r   rC   s        r&   r*   zOptionText.__init__	  s_    dE9i@@@	u%%%i66666r'   c                 4    | j                                         S r)   )r   r   r-   s    r&   rM   zOptionText.get_current_value  s    }%%'''r'   Nr   r2   r'   r&   r=   r=     s2        7 7 7( ( ( ( (r'   r=   )debuggi.repositoryr   r   ru   r   requirer   r   rF   rH   rR   r   r   r@   r?   rA   r8   r>   r=   r2   r'   r&   <module>r      sO  ,                				 h    H  H  H  H  HE  H  H  HD' ' 'V" " " " " " " "S) S) S) S) S) S) S) S)j.( .( .( .( .(0 .( .( .(`    _   :/ / / / /f / / /6< < < < < < < <69 9 9 9 9O 9 9 9$ $ $ $ $v $ $ $*0 0 0 0 0F 0 0 0<	( 	( 	( 	( 	( 	( 	( 	( 	( 	(r'   