
    Je[                         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
mZmZmZ d dlmZ  G d de      Zd Z G d d	e      Zy
)    )PropertyQSizeSignalSlot)QColorQIconQPixmap)QColorDialogQHBoxLayout	QLineEditQToolButton)is_text_stringc                   d    e Zd ZdZ ee      ZddZd Zd Z	 e
e      d        Z ede	e      Zy)	ColorButtonz$
    Color choosing push button
    Nc                     t        j                  | |       | j                  dd       | j                  t	        dd             | j
                  j                  | j                         t               | _	        y )N      )
r   __init__setFixedSizesetIconSizer   clickedconnectchoose_colorr   _color)selfparents     7/usr/lib/python3/dist-packages/spyder/widgets/colors.pyr   zColorButton.__init__   sW    T6*"b!r2'T../h    c                     t        j                  | j                  | j                         dt         j                        }|j                         r| j                  |       y y )NzSelect Color)r
   getColorr   parentWidgetShowAlphaChannelisValid	set_colorr   colors     r   r   zColorButton.choose_color   sL    %%dkk43D3D3F&4&2&C&CE ==?NN5! r   c                     | j                   S N)r   r   s    r   	get_colorzColorButton.get_color$   s    {{r   c                    || j                   k7  rq|| _         | j                  j                  | j                          t        | j	                               }|j                  |       | j                  t        |             y y r(   )r   colorChangedemitr	   iconSizefillsetIconr   )r   r&   pixmaps      r   r$   zColorButton.set_color'   s^    DKKDK""4;;/T]]_-FKKLLv'  r   r   r(   )__name__
__module____qualname____doc__r   r   r,   r   r   r*   r   r$   r   r&    r   r   r   r      sI     &>L" 
&\( ( Xy)4Er   r   c                 ,   t               }t        |       } t        |       s|S | j                  d      r.t	        |       dk(  r d}| D ]  }|j                         |vs|c S  n!| t        t        j                               vr|S |j                  |        |S )zp
    Create a QColor from specified string
    Avoid warning from Qt when an invalid QColor is instantiated
    #   z#0123456789abcdef)	r   strr   
startswithlenlowerlist
colorNamessetNamedColor)textr&   correctchars       r   text_to_qcolorrD   3   s    
 HEt9D$sD	1% 	Dzz|7*	 
T&++-.	.	Lr   c                   *    e Zd ZdZddZd Zd Zd Zy)ColorLayoutz"Color-specialized QLineEdit layoutNc                    t        j                  |        t        |t              sJ t	        |j                         |      | _        | j                  j                         }| j                  j                  t        |j                  |j                               dz               | j                  j                  j                  | j                         | j                  | j                         t        |      | _        || j                   _        | j                   j$                  j                  | j&                         | j                  | j                          y )Ng333333?)r   r   
isinstancer   r   namelineeditfontMetricssetMinimumWidthintwidthtextChangedr   update_color	addWidgetr   colorbtnr&   r,   update_text)r   r&   r   fms       r   r   zColorLayout.__init__I   s    T"%(((!%**,7]]&&(%%c"((5::<*@3*F&GH!!))$*;*;<t}}%#F+#""**4+;+;<t}}%r   c                 ^    t        |      }|j                         r|| j                  _        y y r(   )rD   r#   rR   r&   )r   rA   r&   s      r   rP   zColorLayout.update_colorV   s&    t$==?"'DMM r   c                 V    | j                   j                  |j                                y r(   )rJ   setTextrI   r%   s     r   rS   zColorLayout.update_text[   s    ejjl+r   c                 6    | j                   j                         S r(   )rJ   rA   r)   s    r   rA   zColorLayout.text^   s    }}!!##r   r(   )r2   r3   r4   r5   r   rP   rS   rA   r6   r   r   rF   rF   G   s    ,&(
,$r   rF   N)qtpy.QtCorer   r   r   r   
qtpy.QtGuir   r   r	   qtpy.QtWidgetsr
   r   r   r   spyder.py3compatr   r   rD   rF   r6   r   r   <module>r]      s<    6 5 - - L L , 5+  5F($+ $r   