
    Hf#                         d dl Z d dlmZ d dlZd dlZ ej
                  e j                  e j                         d dlZddZ	 G d d      Z
 G d de
      Z G d	 d
e
      Z G d de      Zy)    N)Gtk)domain	localedirc                    | j                   }|t        j                  k(  r@t        | j                        dk7  r(t        d| j                  z         t        j                  }|t        j                  k(  rt        | |||      S |t        j                  k(  rt        | |||      S |t        j                  k(  rt        | |||      S y)zFactory function   z%Treating Boolean option %s as PickOne	tab_labelN)uicupsPPD_UI_BOOLEANlenchoicesprintkeywordPPD_UI_PICKONE
OptionBoolOptionPickOnePPD_UI_PICKMANYOptionPickMany)optionppdguir	   r
   s        1/usr/share/system-config-printer/optionwidgets.pyOptionWidgetr      s    	B
d!!!V^^! 	5FG  	T   &#si@@	t""	"VS#CC	t##	#fc3)DD 
$    c                   N    e Zd ZddZddZd Zd Zd Zd Zd Z	dd	Z
d
 Zd Zy)OptionNc                 $   || _         || _        || _        d| _        || _        t        j                         }t        j                         | _        t
        j                  j                  t
        j                  t
        j                  j                        }| j                  j                  |       | j                  j                  d       |j                  | j                         || _        | j                  j#                  d| j$                         |j'                          |j(                  D cg c]6  }|j*                  |j,                  k(  s|j.                  |j,                  k(  r|8 c}| _        t1               | _        d| _        y c c}w )NTclicked )r   r   r   enabledr	   r   VBoxButtonbtnConflictImagenew_from_icon_nameSTOCK_DIALOG_WARNINGIconSizeSMALL_TOOLBARaddset_no_show_allconflictIconconnecton_btnConflict_clickedshowconstraintsoption1r   option2set	conflictsconflict_message)selfr   r   r   r	   vboxiconcs           r   __init__zOption.__init__0   s%   "xxz::<yy++C,D,D,/LL,F,FHT"((.!!"   D,G,GH		'* >! !		V^^ ; !		V^^ ;  >  ">s   3;Fc                 H    | j                   j                  |       || _        y N)selectorset_sensitiver!   )r6   r!   s     r   enablezOption.enableO   s    ##W-r   c                 &    | j                  d       y )NF)r?   r6   s    r   disablezOption.disableS   s    Ur   c                     | j                   S r<   )r!   rA   s    r   
is_enabledzOption.is_enabledV   s    ||r   c                     t         r<   )NotImplementedrA   s    r   get_current_valuezOption.get_current_valueY       r   c                 P    | j                         | j                  j                  k7  S r<   )rG   r   	defchoicerA   s    r   
is_changedzOption.is_changed\   s     %%'$++*?*???r   c                     | j                   r?| j                  j                  | j                  j                  | j                                y y r<   )r!   r   
markOptionr   r   rG   rA   s    r   	writebackzOption.writeback_   s5    <<HH 3 3T5K5K5MN r   c                    | j                         }| j                  D ]L  }|j                  | j                  j                  k(  rI| j
                  j                  j                  |j                  d       }|j                  }|j                  }nH| j
                  j                  j                  |j                  d       }|j                  }|j                  }|d } |||      rI |||j                               r2| j                  j                  |       |s|j                  d       || j                  v s | j                  j                  |       |j                  d       O t        d      g}t!               }	| j                  D ]  }
|
j                  | j                  j                  k(  r0| j
                  j                  j                  |
j                        }n/| j
                  j                  j                  |
j                        }||	|j                  j                  <    |	j#                         D ]  }|j                  j$                  }|j                         }|j                  j&                  D ]-  }|d   |k(  st(        j*                  j                  |d         }/ |j-                  |d|        dj/                  |      }|| _        | j                  r6| j2                  j5                  |       | j2                  j7                          n| j2                  j9                          | j
                  j;                  |        | j                  S )	Nc                     | dk7  r| |k(  S |dvS )Nr    NoneFalseOff )constraint_choicevalues     r   matchesz&Option.checkConflicts.<locals>.matchesr   s!    $*,55$<<<r   F)update_otherszConflicts with:choicetextz: 
)rG   r0   r1   r   r   r   optionsgetr2   choice1choice2r4   r*   checkConflictsremove_dictvaluesr[   r   	ppdippstrr   appendjoinr5   r$   set_tooltip_textr/   hideoption_changed)r6   rY   rW   
constraintr2   r_   r`   rX   tooltipconflicting_optionsr9   r   optvalrZ   s                  r   ra   zOption.checkConflictsd   s   &&(** 	<J!!T[[%8%88((**..z/A/A4H$,,$,,((**..z/A/A4H$,,$,,=
 %('";";"=>"":. ***?t~~-%%j1&&U&;5	<: &'("f 	@AyyDKK///))--aii8))--aii89? 5 56	@ *003 	3F--$$C**-C --// =(#s*#--++VF^<C= NNS12	3 ))G$ '>>--w7!!#!!#%~~r   c                 $    | j                          y r<   )ra   )r6   widgets     r   	on_changezOption.on_change   s    r   c                    | j                   }|Gt        |t        j                        s-|j	                         }|t        |t        j                        s-t        j
                  |ddt        j                  j                  t        j                  j                  | j                        }|j                          |j                          y )NT)parentmodaldestroy_with_parentmessage_typebuttonsr[   )r$   
isinstancer   Window
get_parentMessageDialogMessageTypeWARNINGButtonsTypeCLOSEr5   rundestroy)r6   buttonru   dialogs       r   r.   zOption.on_btnConflict_clicked   s    !! VSZZ)H&&)F  VSZZ)H""6*.D141H1H,/OO,A,A)-)>)>	@
 	

r   r<   )T)__name__
__module____qualname__r:   r?   rB   rD   rG   rK   rN   ra   rs   r.   rU   r   r   r   r   /   s7    #>@O
=~
r   r   c                       e Zd ZddZd Zy)r   Nc                 H   t         j                  j                  t        j                  j                  |j                              | _        d | _        d| _	        d| _
        |j                  D ]%  }|d   dv r
|d   | _	        |d   dv s|d   | _
        ' | j                  j                  |j                  | j                  k(         | j                  j                  dd       | j                  j                  d| j                          t"        j%                  | ||||	       y )
NrS   TruerZ   rQ   )r   On              ?toggledr   )r   CheckButtonnew_with_labelrf   r   r^   r[   r=   labelfalsetruer   
set_activerJ   set_alignmentr-   rs   r   r:   )r6   r   r   r   r	   r9   s         r   r:   zOptionBool.__init__   s    66,5MM,=,=v{{,KM

	 	(A{66x[
{n,hK			(
 	  !1!1TYY!>?##C-i8fc3)Dr   c                 h    | j                   | j                  f| j                  j                            S r<   )r   r   r=   
get_activerA   s    r   rG   zOptionBool.get_current_value   s'    

DII&t}}'?'?'ABBr   r<   )r   r   r   r:   rG   rU   r   r   r   r      s    E Cr   r   c                       e Zd Zd ZddZd Zy)r   Nc                    t        j                         | _        t        j                  j                  |j                        }|j                  d      s|dz  }t        j                  |      | _	        | j                  j                  dd       d }t        |j                        D ]U  \  }}| j                  j                  t        j                  j                  |d                |j                  |d   k(  sT|}W || j                  j                  |       n!t!        |j                  d|j                         | j                  j#                  d| j$                         t&        j)                  | ||||	       y )
N:)r   r   r   r[   rZ   zunknown value:changedr   )r   ComboBoxTextr=   rf   r   r^   r[   endswithLabelr   r   	enumerater   append_textrJ   r   r   r-   rs   r   r:   )	r6   r   r   r   r	   r   selectednrrZ   s	            r   r:   zOptionPickOne.__init__   s"   ((* !!6;;/~~s#SLEYYU+


  c*#FNN3 	JBMM%%imm&7&7&HI6(#33	 MM$$X.&++/1A1ABi8fc3)Dr   c                 j    | j                   j                  | j                  j                            d   S )NrZ   )r   r   r=   r   rA   s    r   rG   zOptionPickOne.get_current_value   s)    {{""4==#;#;#=>xHHr   r<   )r   r   r   widget_namer:   rG   rU   r   r   r   r      s    !KE.Ir   r   c                       e Zd Zd ZddZy)r   Nc                     t         r<   )rF   r   r:   )r6   r   r   r   r	   s        r   r:   zOptionPickMany.__init__   rH   r   r<   )r   r   r   r   r:   rU   r   r   r   r      s    "KEr   r   r<   )configgi.repositoryr   r   gettextinstallPACKAGEr   rf   r   r   r   r   r   rU   r   r   <module>r      sm   *     v~~1A1A B E&A AJC C.IF I>E] Er   