
    HfK                     L   d dl  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y)    )*)GtkNz1.9.55c                       e Zd Zd Zd Zd Zy)IPPResolutionc                 \   t         j                  dt         j                  di| _        t         j                  | _        i | _        | j                  j                         D ]  \  }}|| j
                  |<    t        |t              rjt        j                  d|      j                         }t        |d         }t        |d         }| j
                  j                  |d   | j                        }n|d   }|d   }|d   }t        j                  | |||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   !22E!00%: 11$$**- 	$DAq"#CQ	$ vs#hh 4f=DDGG
#D
#D$$(('!*c6G6GHE!9D!9D1IE}}cD$#67		
    c                 n    t         j                  | j                  | j                  | j                  f      S N)r   __init__r   r   r   )r%   r!   s     r&   r*   zIPPResolution.__init__9   s$    ~~		499djjABBr'   c                     | j                   d| j                  | j                  j                  | j                  | j
                        S )Nx)r   r   r   r   r   r   r%   s    r&   __str__zIPPResolution.__str__<   s?     IItyy --114::373E3EGH 	Hr'   N)__name__
__module____qualname__r   r*   r.    r'   r&   r   r      s    2CHr'   r   c                 B   t        |t              rPt        |t              r.||z   D ]  }t        |t              rt         t	        | |||      S t        ||       t        t        |t              szt        |t              sjt        |t              rt        |      dk(  rt        |d   t              rt        |d   t              s&t        |d   t              rlt        |d   t              rY	 t        |t              s#t        |t              rt        |d   t              rt        |      }nt        |      }t        | |||      S t        |t              ro|D ]P  }t        |t              rt        |      dk(  rt        | |||      c S t        |t              rBt        | |||      c S  	 t        |      }t        | |||      S t        |t              rt        | |||      S t        # t        $ r t        | |d|      cY S w xY w# t        $ r t        | |||      cY S w xY w)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!Vq[!A$$AaD#)>!A$&:adE+B:q#&q%(Z!c-BAAaA !q!Y774  Bb%(S"X]4T1aKK#B,*4AyAA	B
>F )q!Y??3dAq)44#  :!$2y99:  >&tQ9==>s%   ,A
G' *H 'H HHHc                       e Zd Zd Zd Zd Zy)OptionInterfacec                      y r)   r2   r-   s    r&   get_defaultzOptionInterface.get_defaultm   s    r'   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   s    ""r'   rH   c                   Z    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y)OptionAlwaysShownr   r   r   Nc                    || _         || _        || _        |t        k(  rd }|}|| _        | j                  |       || _        t        | j                        t        j                  k(  rf| j                  j                         Lt        d| j                   z         t        j                  t              }	| j                  j                  |	       |q|t        k(  rh| j                  j                         }	d}
i }|	j!                         }|r1|	j#                  |d      |||
   <   |
dz  }
|	j%                  |      }|r1|| _        || _        | j+                  d        y )Nc                 d    t        |       t        k(  r| j                         dv ryyt        |       S )N)falsenooffFT)typer   lowerbool)r,   s    r&   	bool_typez-OptionAlwaysShown.__init__.<locals>.bool_type   s+    8s?wwz%;;$Qx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__|   s.   	t  !H .)(-KK!!$,1DII=>MM3'EKK!!5)#CKK)),EAD''*D(-q(A\!_%Q-  "&D*Tr'   c                     | j                   S r)   )rl   r-   s    r&   rJ   zOptionAlwaysShown.get_default   s    """r'   c                 0    | j                  |      | _        y 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                  j                         }|j                          t        j                  j                  | j                        }|rg | _        t               | _        d}|D ]  }t        | j                  |            }|rA| j                  j!                  |       |j                  |      }|| j                  |<   dz  }n|}|j!                         }	|j#                  |	d|        nt        | j                        t        j$                  k(  r| j                  j'                          t        j                  j                  | j                        }|rg | _        t               | _        d}|D ]|  }t        | j                  |            }|rA| j                  j!                  |       |j                  |      }|| j                  |<   dz  }n|}| j                  j)                  |       ~ nt        | j                        t        j                  k(  r| j
                  t*        k(  rm| j                  a| j                  j                         }|j                          |D ]2  }|j!                         }	|j#                  |	d| j                  |          4 |M| j                  |      | _        | j/                  | j,                         | j0                  j3                  d       n=d| _        | j/                  | j4                         | j0                  j3                  d       | j6                  | _        y)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   s    !T[[!S\\1$--0(4488$))D(*D%)-D&A% 4Dt}}d34C#))00#6+//537**40Q" <<?DOOT1d34 dkk"c&6&66&&)(4488$))D(*D%)-D&A% 
3Dt}}d34C#))00#6+//537**40Q"KK++T2
3 t{{#s||3--3&##/--0% HD <<?DOOT1d.@.@.FGH %"&--"@D!!4#6#67KK%%t,"&D!!4#6#67KK%%u-))
r'   c                    t        | j                        }|t        j                  k(  r| j                  j	                  |      S |t        j
                  k(  s|t        j                  k(  r| j                  t        k(  s| j                  t        k(  r| j                  | j                  j                         }|j                         }|\| j                  |j                  |d            |k7  r8|j                  |      }|%| j                  |j                  |d            |k7  r8|ra| j                  j                  |       y | j                  r| j                  j!                  |      }n|}| j                  j#                  |      S y |t        j$                  k(  r| j                  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   sj   ;;(()44#,,!s'7'7"7#%-)G%%---0++.'}}eootQ&?@IM ??D1D '}}eootQ&?@IMKK//6 $$ --33Y?E%E{{--u55  #//!;;))955%a33r'   c                    t        | j                        }|t        j                  k(  r*	 | j	                  | j                  j                               S |t        j                  k(  r\| j                  r'| j                  | j                  j                            S | j	                  | j                  j                               S |t        j                  k(  rV| j                  j                         }|| j                  }| j                  r| j                  |      S | j	                  |      S |t        j                  k(  r)| j	                  | j                  j                               S t        || j                  | j                         t         # t        $ r, | j	                  | j                  j                               cY S w xY w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[   @}}dkk&:&:&=>> #,,  (()?)?)ABB==$++"8"8";<<#"""++.Ay ''  ((!,,==!$$#//!==$++"8"8";<<admm,!!+  @}}dkk&;&;&>??@s   (F 2GGc                 "    | j                         S r)   )r   r-   s    r&   rM   z#OptionAlwaysShown.get_current_value)  s    $$''r'   c                     | j                   S| j                  | j                  k(  ry| j                  | j                  k(  r| j	                         | j                   k7  ryyy| j                  | j                  k(  ryy)NTF)r|   r   STATE_RESETSTATE_ADJUSTEDrM   r-   s    r&   rP   zOptionAlwaysShown.is_changed,  ss    *zzT---zzT000)),0C0CC  ::,,, r'   c                     | j                  | j                         | j                  | _        | j                  j                  d       y NF)r}   rl   r   r   r]   r~   r-   s    r&   resetzOptionAlwaysShown.resetB  s5    t223%%
!!5)r'   c                 \    | j                   | _        | j                  j                  d       y )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   sN    OKN GL#J#=A*F44 "D(,*
)r'   rR   c                   8    e Zd Z	 	 ddZd Zd Zd	dZd Zd Zy)
OptionAlwaysShownSpecialNc	           
      Z    || _         d| _        t        j                  | |||||||       y )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  s;     -$)!""D$.$*F1=2? 	# 	Ar'   c                    | j                   ry d| _         | j                  j                         }|j                  d      }|j	                  |d| j
                         | j                  j                  |j                                y )NTr   )r   r\   rb   insertrx   r   r   rf   )r%   rm   rp   s      r&   show_special_choicez,OptionAlwaysShownSpecial.show_special_choiceV  sg    $$$(!%%(||Qq$"5"56##U%9%9%<=r'   c                     | j                   sy d| _         | j                  j                         }|j                  |j	                                y r   )r   r\   rb   removerf   )r%   rm   s     r&   hide_special_choicez,OptionAlwaysShownSpecial.hide_special_choicea  s=    (($)!%%(e**-.r'   c                 z    || j                          n| j                          t        j                  | ||       y )N)r   )r   r   rR   rk   )r%   r|   r   s      r&   rk   zOptionAlwaysShownSpecial.reinitj  s5    %$$'$$'  $) Lr'   c                 N    | j                          t        j                  |        y r)   )r   rR   r   r-   s    r&   r   zOptionAlwaysShownSpecial.resetr  s      #&r'   c                     t         j                  |        | j                  j                         dkD  r| j	                          y y r   )rR   r   r\   r   r   r-   s    r&   r   z OptionAlwaysShownSpecial.changedv  s6    !!4(;;!!$q($$' )r'   )NFzSystem defaultr)   )	r/   r0   r1   r*   r   r   rk   r   r   r2   r'   r&   r   r   K  s(    FK"2A	>/M'(r'   r   c                   (    e Zd ZdZd Zd Zd Zd Zy)OptionNc                     || _         || _        || _        || _        d| _        |}|j                  d      s|dz  }t        j                  |      | _        | j                  j                  dd       y )NF:)label        g      ?)
rB   valuer   rC   is_newendswithr   Labelr   set_alignment)r%   rB   r   r   rC   r   s         r&   r*   zOption.__init__  sc    	
""~~s#SLEYYU+


  c*r'   c                     t         r)   rL   r-   s    r&   rM   zOption.get_current_value  rN   r'   c                 |    | j                   xs/ t        | j                               t        | j                        k7  S r)   )r   r   rM   r   r-   s    r&   rP   zOption.is_changed  s4     CT++-.#tzz2BB	Dr'   c                 &    | j                  |        y 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   {  s    I+"Dr'   r   c                       e Zd Zd Zd Zy)r@   c                 D   t         j                  | ||||       t        j                         | _        d }t        |      D ]C  \  }}| j                  j                  t        |             t        |      t        |      k(  sB|}E || j                  j                  |       nWt        d|d|       t        d|z         t        |      dkD  r*t        d|d          | j                  j                  d       | j                  j                  d| j                         y )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MM%%c&k2E{c6l*	 MM$$X.T5AB}	239~!4ilC((+i6r'   c                 6    | j                   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@     s    7(/r'   r@   c                   $    e Zd Zd Zd Zd Zd Zy)r?   c                 ~   t         j                  dt         j                  di| _        t         j                  | _        i | _        | j                  j                         D ]  \  }}|| j
                  |<    | j                  |      }t        t        | j                  |            }t        j                  | ||||       y )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    "33U"115;!22%%++. 	%DAq#$Da 	% U#dkk956	  $eY	Jr'   c                 Z    |d   d|d   | j                   j                  |d   d      S )Nr   r,   r   r   r4   )r   r   )r%   r   s     r&   r   z OptionSelectOneResolution.string  s5    !!HeAh --1158R@B 	Br'   c                     t        j                  d|      j                         }t        |d         t        |d         | j                  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  s_    ((0&9@@CWQZ #wqz"2!!%%wqz43E3EFH 	Hr'   c                 T    | j                  | j                  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?     s    
KBH
<r'   r?   c                       e Zd Zd Zy)rA   c                 P    t        | j                  j                         xs d      S r   )r   r   r   r-   s    r&   rM   z'OptionSelectOneNumber.get_current_value  s    4==0027a88r'   N)r/   r0   r1   rM   r2   r'   r&   rA   rA     s    9r'   rA   c                       e Zd Zd Zd Zy)r8   c                 |   t         j                  | ||||       g | _        t        j                         }|D ]|  }t        j
                  j                  |      }|j                  ||v        |j                  |       |j                  d| j                         | j                  j                  |       ~ || _        y )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@xxz 	-A55a8HU
+HHXY5OO""8,	- r'   c                     t        | j                  | j                        D cg c]  \  }}|j                         r| c}}S c c}}w r)   )zipr   r   r   )r%   r#   chks      r&   rM   z"OptionSelectMany.get_current_value  s>    "4>>4??C $VQ.."  $ 	$ $s   ANr   r2   r'   r&   r8   r8     s    $r'   r8   c                       e Zd Zd Zd Zy)r>   c                 r   t        |t              xs% t        |t              xr t        |d   t              | _        | j                  rd}nd}t        |t              sd|f}t        j                  | ||||       t        j                  ||d   |d   ddd      }t        j                         | _	        | j                  j                  |       | j                  j                  |       | j                  s| j                  j                  d       | j                  j                  d	| j                         y )
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__  s    #Iu5 ;$Y6 :$Yq\59 	 ==FF)U+IIdE9i@nn5	!#,Q<,/3@ ($$S)  (}}MM%%d+i6r'   c                     | j                   r| j                  j                         S | j                  j                         S r)   )r   r   rg   get_value_as_intr-   s    r&   rM   zOptionNumeric.get_current_value  s/    ====**,,}}--//r'   Nr   r2   r'   r&   r>   r>     s    7,0r'   r>   c                       e Zd Zd Zd Zy)r=   c                     t         j                  | ||||       t        j                         | _        | j                  j                  |       | j                  j                  d| j                         y )Nr   )r   r*   r   Entryr   set_textr   r   )r%   rB   r   r   rC   s        r&   r*   zOptionText.__init__	  sM    dE9i@		u%i6r'   c                 6    | j                   j                         S r)   )r   r   r-   s    r&   rM   zOptionText.get_current_value  s    }}%%''r'   Nr   r2   r'   r&   r=   r=     s    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      s   ,     	 h  HE  HD'V" "S) S)j.(0 .(`_ :/f /6< <69O 9$v $*0F 0<	( 	(r'   