
    ce                         d Z ddlmZmZmZmZ ddlmZmZm	Z	 ddl
mZ ddlmZmZmZmZmZ ddlmZ  G d de          Z G d	 d
e          Z G d de          Z G d de          ZdS )zHelper widgets.    )absolute_importdivisionprint_functionwith_statement)QSizeQtSignal)QIcon)QHBoxLayout	QLineEditQPushButtonQSizePolicyQToolButton)update_pointerc                   h     e Zd ZdZ e            Z e            Z fdZ fdZ fdZ	 fdZ
 xZS )ButtonSearchzButton used for CSS styling.c                     t                                          |           t                       |                     dd           dS Override Qt method.focusedFN)supermousePressEventr   setPropertyselfevent	__class__s     Hlib/python3.11/site-packages/anaconda_navigator/widgets/helperwidgets.pyr   zButtonSearch.mousePressEvent   sC    &&&E*****    c                 0   |                                  rIt          t          j                   |                     dd           | j                                         n|                     dd           t                                          |           dS )r   r   TFN)		isEnabledr   r   ArrowCursorr   sig_enteredemitr   
enterEventr   s     r   r%   zButtonSearch.enterEvent!   s    >> 	/2>***Y---!!####Y...5!!!!!r   c                    |                                  r>t                       |                     dd           | j                                         n|                     dd           t                                          |           dS r   )r!   r   r   sig_leftr$   r   
leaveEventr   s     r   r(   zButtonSearch.leaveEvent+   s    >> 	/Y...M    Y...5!!!!!r   c                    t                                          ||           |                                                     |            |                                                     |            |                                  dS r   N)r   r   styleunpolishpolishupdate)r   namevaluer   s      r   r   zButtonSearch.setProperty5   sf    D%(((

d###

D!!!r   )__name__
__module____qualname____doc__r	   r#   r'   r   r%   r(   r   __classcell__r   s   @r   r   r      s        &&&((KvxxH+ + + + +" " " " "" " " " "        r   r   c                        e Zd Zd Zd Zd ZdS )
ButtonShowc                     dS r*    r   r   s     r   r   zButtonShow.mousePressEvent?         r   c                     dS r*   r:   r;   s     r   mouseReleaseEventzButtonShow.mouseReleaseEventB   r<   r   c                     dS r*   r:   r;   s     r   mouseDoubleClickEventz ButtonShow.mouseDoubleClickEventE   r<   r   N)r1   r2   r3   r   r>   r@   r:   r   r   r8   r8   =   sA        " " "" " "" " " " "r   r8   c                   L     e Zd ZdZ fdZd Zd Zd
dZd Zd Z	 fd	Z
 xZS )LineEditSearch)Lineedit search widget with clear button.c                 `    t                      j        |i | d| _        d| _        t	                      | _        | j                            d           | j                            t          j	                   | 
                    t          j        d           t                      }|                    | j        dt          j                   |                    d           |                    d           |                    dddd           |                     |           | j                            | j                   | j        j                            | j                   |                     d           |                     dd           |                     | | j                   dS )rC   TFr      N   )r   __init___empty_show_iconsr   button_icon
setDefaultsetFocusPolicyr   NoFocussetAttributeWA_MacShowFocusRectr   	addWidget
AlignRight
setSpacing
addSpacingsetContentsMargins	setLayout
textEditedconnect
update_boxclicked
clear_textset_icon_sizesetTabOrder)r   argskwargslayoutr   s       r   rG   zLineEditSearch.__init__K   s~   $)&))) '>> 	##D)))''
333"0%888 )1bm<<<!!!!!Q1---v 	000 ((9992r"""t/00000r   c                     | j                             t          ||                     |                     d| d           dS )zSet clear button icon size.zLineEditSearch {padding-right: zpx;}N)rJ   setMaximumSizer   setStyleSheet)r   widthheights      r   r[   zLineEditSearch.set_icon_sizeg   sI    ''eV(<(<===JeJJJKKKKKr   c                 <    || _         |                                  dS )zSet clear button visibility.N)rI   rX   )r   r0   s     r   set_icon_visibilityz"LineEditSearch.set_icon_visibilityl   s      r   Nc                 (   |r.| j         r'| j                            t                                 n-| j         r&| j                            t                                 t	          |           | _        | j                            | j                   dS )z"Update icon visibility and status.N)rI   rJ   setIconr
   boolrH   setDisabled)r   texts     r   rX   zLineEditSearch.update_boxq   s     	2D$ 	2$$UWW---- 2 ((111t**n$$T[11111r   c                     |                      d           |                                  |                                  dS )z Clear all text in the line edit. N)setTextsetFocusrX   r   s    r   rZ   zLineEditSearch.clear_text{   s7    Rr   c                     dS )zUpdate custom CSS style sheet.Nr:   rp   s    r   update_style_sheetz!LineEditSearch.update_style_sheet   r<   r   c                     |                                 }|t          j        fv r|                                  dS t	                                          |           dS r*   )keyr   
Key_EscaperZ   r   keyPressEvent)r   r   rt   r   s      r   rv   zLineEditSearch.keyPressEvent   sS    iikk2=/!!OOGG!!%(((((r   )N)r1   r2   r3   r4   rG   r[   rf   rX   rZ   rr   rv   r5   r6   s   @r   rB   rB   I   s        331 1 1 1 18L L L
  
2 2 2 2  - - -) ) ) ) ) ) ) ) )r   rB   c                   .     e Zd ZdZ fdZd Zd Z xZS )ButtonToggleCollapse(Button to collapse the environment list.c                 4    t                      j        |i | |                     t          j        t          j                   |                     t          j                   |                     d           | j	        
                    | j                   dS )ry   TN)r   rG   setSizePolicyr   	ExpandingrL   r   rM   setCheckablerY   rW   _update_icon)r   r]   r^   r   s      r   rG   zButtonToggleCollapse.__init__   s    $)&)));0+2GHHHBJ'''$T./////r   c                     t          j        | ||           |                                                     |            |                                                     |            |                                  dS r*   )r   r   r+   r,   r-   r.   )r   r/   r0   s      r   r   z ButtonToggleCollapse.setProperty   s`    dE222

d###

D!!!r   c                 V    |                      d|                                            d S )Nchecked)r   	isCheckedrp   s    r   r~   z!ButtonToggleCollapse._update_icon   s(    DNN$4$455555r   )r1   r2   r3   r4   rG   r   r~   r5   r6   s   @r   rx   rx      s\        220 0 0 0 0  6 6 6 6 6 6 6r   rx   N)r4   
__future__r   r   r   r   qtpy.QtCorer   r   r	   
qtpy.QtGuir
   qtpy.QtWidgetsr   r   r   r   r   "anaconda_navigator.utils.qthelpersr   r   r8   rB   rx   r:   r   r   <module>r      sY     P P P P P P P P P P P P ) ) ) ) ) ) ) ) ) )       X X X X X X X X X X X X X X = = = = = =$ $ $ $ $; $ $ $N	" 	" 	" 	" 	" 	" 	" 	"A) A) A) A) A)Y A) A) A)H6 6 6 6 6; 6 6 6 6 6r   