
    Je~                     f    d Z ddlmZ ddlmZmZmZmZmZm	Z	m
Z
 ddlmZ ddlmZ  G d de      Zy)	z Appearance entry in Preferences.    )Qt)QDialogQDialogButtonBoxQGridLayout	QGroupBoxQHBoxLayoutQVBoxLayoutQWidget)_)syntaxhighlightersc                   D     e Zd ZdZd fd	Zd Zd Zd Zd	dZd Z	 xZ
S )
SchemeEditorzA color scheme editor dialog.c                 N   t         t        |   |       || _        || _        g | _        i | _        i | _        d | _        d | _	        t        t        j                  t        j                  z        }t               }|j                  | j                         |j                  |       | j                  |       |j                   j#                  | j$                         |j                   j#                  | j&                         |j(                  j#                  | j*                         y )N)superr   __init__parentstackorderwidgetsscheme_name_textboxlast_edited_color_schemelast_used_schemer   OkCancelr	   	addWidget	setLayoutacceptedconnectacceptget_edited_color_schemerejectedreject)selfr   r   bboxlayout	__class__s        C/usr/lib/python3/dist-packages/spyder/plugins/appearance/widgets.pyr   zSchemeEditor.__init__   s    lD*62

 #% (,% $   0 3 36F6M6M MN $v 	dkk*d::;dkk*    c                 z    | j                   j                  | j                  j                  |             || _        y)z'Set the current stack by 'scheme_name'.N)r   setCurrentIndexr   indexr   )r#   scheme_names     r'   
set_schemezSchemeEditor.set_scheme0   s+    

""4::#3#3K#@A +r(   c                 P    | j                   | j                     j                         S )zk
        Returns the edited scheme name, needed to update the combobox on
        scheme creation.
        )r   r   text)r#   s    r'   get_scheme_namezSchemeEditor.get_scheme_name5   s$    
 ''(=(=>CCEEr(   c                 ,   i }| j                   }| j                  |   D ]s  }| j                  |   |   }t        |      dk(  r|d   j                         }n8|d   j                         |d   j	                         |d   j	                         f}|||<   u |S )z
        Get the values of the last edited color scheme to be used in an instant
        preview in the preview editor, without using `apply`.
           r      )r   r   lenr/   	isChecked)r#   color_schemer,   keyitemsvalues         r'   r    z$SchemeEditor.get_edited_color_scheme<   s    
 ++<<, 	&CLL-c2E5zQa q%(*<*<*>q++-/ !&L	& r(   c                    t        d      g dft        d      g dft        d      ddgfg}| j                  }|j                  t        d      d	j                  |            }i | j                  |<   |j
                  j                  t        j                  t        j                  z         | j                  t        d
             t               }|j                  |j
                         |j                  |j                         |j                  | j                  |<   |s|j                  j                  d       | j!                         s|j#                  d       t%               }|j'                  |       t               }t%               }	t)        |      D ]  \  }
}|\  }}t+               }t)        |      D ]  \  }}dj                  ||      }| j                  j-                  |      }t.        j0                  |   }t3        |t4              r|j7                  ||d      \  }}|j                  t        j                  t        j                  z         |j                  ||dz   d       |j'                  ||dz   d       |g| j                  |   |<   |j9                  ||d      \  }}}}|j                  t        j                  t        j                  z         |j                  ||dz   d       |j'                  ||dz   d       |j                  ||dz   d       |j                  ||dz   d       |||g| j                  |   |<    t;        |      }|j=                  |       |
dk(  r|j                  |       |	j                  |        |j'                  |	       |j'                  |       t?               }|j=                  |       | j@                  j                  |       | jB                  jE                  |       y)z<Add a stack for a given scheme and connects the CONF values.Text)normalcommentstringnumberkeywordbuiltin
definitioninstance	Highlight)currentcellcurrentline
occurrence	matched_punmatched_p	ctrlclick
Background
background	sideareaszScheme name:z{0}/namezColor scheme editorTFz{0}/{1})without_layoutr2   r   r3      N)#r   r   create_lineeditformatr   labelsetAlignmentr   
AlignRightAlignVCentersetWindowTitler   r   textboxr   setDisabled	isVisible
setVisibler	   	addLayout	enumerater   
get_optionr   COLOR_SCHEME_KEYS
isinstancestrcreate_coloreditcreate_sceditr   r   r
   r   r   append)r#   r,   customcolor_scheme_groupsr   	line_editname_layout	cs_layouth_layoutv_layoutr+   item
group_namekeysgroup_layoutrowr7   optionr9   namerR   clayoutcb_bold	cb_italic	group_box	stackitems                             r'   add_color_scheme_stackz#SchemeEditor.add_color_scheme_stackU   s    vY @ A{^ G H|_|[9: **1^+<+5+<+<[+IK	 %'[! 	$$R]]R__%DEA345 "mioo.i//0090A0A  -))$/~~  'M	K(==$%89 +	.KE4#J&=L%dO AS"))+s;..v6);;C@eS)%+%<%<'+ &= &NE7
 &&r}}r'FG **5#a%; **7CE1= 7>YDLL-c29?9M9M'+ :N :6E7GY
 &&r}}r'FG **5#a%; **7CE1= **7CE1= **9c!eQ? 7>w6?6ADLL-c2=AB "*-I-z""9-""9-W+	.Z 	8$H%I	I&

Y'

+&r(   c                     | j                  |       | j                  j                         }| j                  j                  |       | j                  j                  |      }| j                  j                  |       y)z%Remove stack widget by 'scheme_name'.N)r-   r   currentWidgetremoveWidgetr   r+   pop)r#   r,   widgetr+   s       r'   delete_color_scheme_stackz&SchemeEditor.delete_color_scheme_stack   sV    $))+

'

  -

ur(   )NN)F)__name__
__module____qualname____doc__r   r-   r0   r    rw   r}   __classcell__)r&   s   @r'   r   r      s'    '+8,
F2X'tr(   r   N)r   qtpy.QtCorer   qtpy.QtWidgetsr   r   r   r   r   r	   r
   spyder.api.translationsr   spyder.utilsr   r    r(   r'   <module>r      s2    ' ? ? ? & +d7 dr(   