
    Kc#                         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dS )    N)Gtk)domain	localedirc                 |   | j         }|t          j        k    r;t          | j                  dk    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 dS )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GG 	T   &#si@@@@	t"	"	"VS#CCCC	t#	#	#fc3)DDDD 
$	#    c                   P    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dS )OptionNc                    | _         || _        || _        d| _        || _        t          j                    }t          j                    | _        t
          j	        
                    t
          j        t
          j        j                  }| j                            |           | j                            d           |                    | j                   || _        | j                            d| j                   |                                 fd|j        D             | _        t+                      | _        d| _        d S )NTclickedc                 T    g | ]$}|j         j        k    s|j        j        k    "|%S  )option1r   option2).0cr   s     r   
<listcomp>z#Option.__init__.<locals>.<listcomp>F   s@     > > >! !	V^ ; ; !	V^ ; ;  ; ; ;r    )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set	conflictsconflict_message)selfr   r   r   r	   vboxicons    `     r   __init__zOption.__init__0   s    "xzz:<<y++C,D,/L,FH HT"""((...!"""   D,GHHH		> > > >s > > >  "r   Tc                 H    | j                             |           || _        d S N)selectorset_sensitiver(   )r;   r(   s     r   enablezOption.enableO   s#    ##W---r   c                 0    |                      d           d S )NF)rC   r;   s    r   disablezOption.disableS   s    Ur   c                     | j         S r@   )r(   rE   s    r   
is_enabledzOption.is_enabledV   s
    |r   c                     t           r@   )NotImplementedrE   s    r   get_current_valuezOption.get_current_valueY       r   c                 F    |                                  | j        j        k    S r@   )rK   r   	defchoicerE   s    r   
is_changedzOption.is_changed\   s    %%''$+*???r   c                     | j         r9| j                            | j        j        |                                            d S d S r@   )r(   r   
markOptionr   r   rK   rE   s    r   	writebackzOption.writeback_   sH    < 	OH 3T5K5K5M5MNNNNN	O 	Or   c                    |                                  }| j        D ]}|j        | j        j        k    r4| j        j                            |j        d           }|j	        }|j
        }n3| j        j                            |j        d           }|j
        }|j	        }|d } |||          rQ |||                                           r3| j                            |           |r|                    d           || j        v r0| j                            |           |                    d           t          d          g}t!                      }	| j        D ]o}
|
j        | j        j        k    r%| j        j                            |
j                  }n$| j        j                            |
j                  }||	|j        j        <   p|	                                D ]|}|j        j        }|                                 }|j        j        D ]3}|d         |k    r%t(          j                            |d                   }4|                    |d|           }d                    |          }|| _        | j        r4| j                            |           | j                                         n| j                                         | j                            |            | j        S )	Nc                 "    | dk    r| |k    S |dvS )Nr'   NoneFalseOffr!   )constraint_choicevalues     r   matchesz&Option.checkConflicts.<locals>.matchesr   s$    $**,55$<<<r   F)update_otherszConflicts with:choicetextz: 
)rK   r7   r"   r   r   r   optionsgetr#   choice1choice2r9   r1   checkConflictsremove_dictvaluesr^   r   	ppdippstrr   appendjoinr:   r+   set_tooltip_textr6   hideoption_changed)r;   r\   rZ   
constraintr#   rb   rc   r[   tooltipconflicting_optionsr%   r   optvalr]   s                  r   rd   zOption.checkConflictsd   s   &&((* 	< 	<J!T[%888(*..z/A4HH$,$,(*..z/A4HH$,$,= = =
 %(( 	<'";";"="=>>	< "":...  @***???t~--%%j111&&U&;;; &''("ff 	@ 	@AyDK///)--ai88)--ai889? 566)0033 	3 	3F-$C**--C -/ = =(#s**#-++VF^<<CNNSS12222))G$$ '> 	$--w777!!####!!###%%%~r   c                 .    |                                   d S r@   )rd   )r;   widgets     r   	on_changezOption.on_change   s    r   c                 v   | j         }|Jt          |t          j                  s0|                                }|t          |t          j                  0t          j        |ddt          j        j        t          j        j	        | j
                  }|                                 |                                 d S )NT)parentmodaldestroy_with_parentmessage_typebuttonsr^   )r+   
isinstancer   Window
get_parentMessageDialogMessageTypeWARNINGButtonsTypeCLOSEr:   rundestroy)r;   buttonrx   dialogs       r   r5   zOption.on_btnConflict_clicked   s    ! VSZ)H)H &&))F  VSZ)H)H "6*.D141H,/O,A)-)>	@ @ @
 	

r   r@   )T)__name__
__module____qualname__r>   rC   rF   rH   rK   rO   rR   rd   rv   r5   r!   r   r   r   r   /   s        # # # #>         @ @ @O O O
= = = =~  
 
 
 
 
r   r   c                       e Zd ZddZd ZdS )r   Nc                 0   t           j                            t          j                            |j                            | _        d | _        d| _	        d| _
        |j        D ]0}|d         dv r|d         | _	        |d         dv r|d         | _
        1| j                            |j        | j
        k               | j                            dd           | j                            d| j                   t"                              | ||||	           d S )
NrW   Truer]   rU   )r   On              ?toggledr   )r   CheckButtonnew_with_labelri   r   ra   r^   rA   labelfalsetruer   
set_activerN   set_alignmentr4   rv   r   r>   )r;   r   r   r   r	   r%   s         r   r>   zOptionBool.__init__   s   66,5M,=,=v{,K,KM M

	 	( 	(A{666x[
{n,,hK	  !1TY!>???##C---i888fc3)DDDDDr   c                 X    | j         | j        f| j                                                 S r@   )r   r   rA   
get_activerE   s    r   rK   zOptionBool.get_current_value   s$    
DI&t}'?'?'A'ABBr   r@   )r   r   r   r>   rK   r!   r   r   r   r      s@        E E E E C C C C Cr   r   c                        e Zd Zd ZddZd ZdS )r   Nc                    t          j                    | _        t          j                            |j                  }|                    d          s|dz  }t          j        |          | _	        | j	        
                    dd           d }t          |j                  D ]U\  }}| j                            t          j                            |d                              |j        |d         k    r|}V|| j                            |           nt!          |j        d|j                   | j                            d| j                   t&                              | ||||	           d S )
N:)r   r   r   r^   r]   zunknown value:changedr   )r   ComboBoxTextrA   ri   r   ra   r^   endswithLabelr   r   	enumerater   append_textrN   r   r   r4   rv   r   r>   )	r;   r   r   r   r	   r   selectednrr]   s	            r   r>   zOptionPickOne.__init__   sL   (** !!6;//~~s## 	SLEYU+++

  c***#FN33 	 	JBM%%im&7&7&H&HIII6(#333M$$X....&+/1ABBBi888fc3)DDDDDr   c                 `    | j         j        | j                                                 d         S )Nr]   )r   r   rA   r   rE   s    r   rK   zOptionPickOne.get_current_value   s%    {"4=#;#;#=#=>xHHr   r@   )r   r   r   widget_namer>   rK   r!   r   r   r   r      sE        !KE E E E.I I I I Ir   r   c                       e Zd Zd ZddZdS )r   Nc                     t           r@   )rJ   r   r>   )r;   r   r   r   r	   s        r   r>   zOptionPickMany.__init__   rL   r   r@   )r   r   r   r   r>   r!   r   r   r   r      s3        "KE E E E E Er   r   r@   )configgi.repositoryr   r   gettextinstallPACKAGEr   ri   r   r   r   r   r   r!   r   r   <module>r      sG  *          v~1A B B B B    E E E E&A A A A A A A AJC C C C C C C C.I I I I IF I I I>E E E E E] E E E E Er   