
    G@d~                     n    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dS )	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.Nc                 d   t          t          |                               |           || _        || _        g | _        i | _        i | _        d | _        d | _	        t          t          j        t          j        z            }t                      }|                    | j                   |                    |           |                     |           |j                            | j                   |j                            | j                   |j                            | j                   d S )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        Alib/python3.11/site-packages/spyder/plugins/appearance/widgets.pyr   zSchemeEditor.__init__   s   lD!!**6222

 #% (,% $   0 36F6M MNN $$$v 	dk***d:;;;dk*****    c                 x    | j                             | j                            |                     || _        dS )z'Set the current stack by 'scheme_name'.N)r   setCurrentIndexr   indexr   )r#   scheme_names     r'   
set_schemezSchemeEditor.set_scheme0   s6    
""4:#3#3K#@#@AAA +r(   c                 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EEr(   c                 ^   i }| j         }| j        |         D ]}| j        |         |         }t          |          dk    r|d                                         }nM|d                                         |d                                         |d                                         f}|||<   |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L-c2E5zzQa q%(*<*<*>*>q++--/ !&Lr(   Fc                    t          d          g dft          d          g dft          d          ddgfg}| j        }|                    t          d          d	                    |                    }i | j        |<   |j                            t          j        t          j	        z             | 
                    t          d
                     t                      }|                    |j                   |                    |j                   |j        | j        |<   |s|j                            d           |                                 s|                    d           t%                      }|                    |           t                      }t%                      }	t)          |          D ].\  }
}|\  }}t+                      }t)          |          D ]\  }}d                    ||          }| j                            |          }t.          j        |         }t3          |t4                    r|                    ||d          \  }}|                    t          j        t          j	        z             |                    ||dz   d           |                    ||dz   d           |g| j        |         |<   |                    ||d          \  }}}}|                    t          j        t          j	        z             |                    ||dz   d           |                    ||dz   d           |                    ||dz   d           |                    ||dz   d           |||g| j        |         |<   t;          |          }|                    |           |
dk    r|                    |           |	                    |           0|                    |	           |                    |           t?                      }|                    |           | j                             |           | j!        "                    |           dS )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|    vYY @ @ @ A{^^ G G G H|__|[9: **1^+<+<+5+<+<[+I+IK K	 %'[! 	$$R]R_%DEEEA344555 "mmio...i/000090A - 	0))$///~~ 	(  '''MM	K(((====$%899 +	. +	.KE4#J&==L%dOO A AS"))+s;;..v66);C@eS)) A%+%<%<'+ &= & &NE7
 &&r}r'FGGG **5#a%;;; **7CE1=== 7>YDL-c229?9M9M'+ :N : :6E7GY
 &&r}r'FGGG **5#a%;;; **7CE1=== **7CE1=== **9c!eQ??? 7>w6?6ADL-c22 "*--I---zz""9----""9----8$$$H%%%II	I&&&
Y'''
+&&&&&r(   c                     |                      |           | j                                        }| j                            |           | j                            |          }| j                            |           dS )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   sl    $$$))++
'''
  --
ur(   )NN)F)__name__
__module____qualname____doc__r   r-   r0   r    rw   r}   __classcell__)r&   s   @r'   r   r      s        ''+ + + + + +8, , ,
F F F  2X' X' X' X'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      s    ' &      ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? & % % % % % + + + + + +d d d d d7 d d d d dr(   