
    G@d                         d dl Zd dlmZmZmZmZ d dlmZm	Z	m
Z
mZmZmZmZmZmZmZmZ d dlmZmZ d dlmZ d dlmZ  G d de          ZdS )	    N)QSizeQtSignalSlot)QDialogQDialogButtonBoxQHBoxLayout	QListViewQListWidgetQListWidgetItemQPushButtonQScrollArea	QSplitterQStackedWidgetQVBoxLayout)_load_lang_conf)CONF)imac                       e Zd ZdZ e            Z ee          Z e            ZddZ	d Z
d ZddZd Z e            d             Zd	 Zd
 Zd Zd Zd Zed             ZdS )ConfigDialogz/Spyder configuration ('Preferences') dialog boxNc                    t          j        | |           || _        t                      | _        | j                            d           t                      | _        t          t          d                    | _
        t          t          j        t          j        z  t          j        z            }|                    t          j                  | _        |                    t          j                  | _        |                     t&          j                   |                     t          d                     |                     t/          j        d                     | j                            t4          j                   | j                            d           | j                            d           | j                            d           | j                            d           t?                      }|                     | j                   |                     | j                   |!                    dd           |!                    dd	           tE                      }|                     | j
                   |#                    d           |                     |           tI                      }|                     |           |%                    |           | &                    |           | '                    | j(                   | j
        j)        *                    | j+                   | j        j,        *                    | j-                   | j        j.        *                    | j        j/                   |j0        *                    | j1                   |j2        *                    | j3                   |j)        *                    | j4                   tk          j6        d
dto                                 d S )NiX  zReset to defaultsPreferences	configure   r      i     maininterface_language)8r   __init__r   r   pages_widgetsetMinimumWidthr   contents_widgetr   r   button_resetr   OkApplyCancelbutton	apply_btnok_btnsetAttributer   WA_DeleteOnClosesetWindowTitlesetWindowIconr   iconsetMovementr
   Static
setSpacingsetCurrentRowsetMinimumHeightr   	addWidgetsetStretchFactorr	   
addStretchr   	addLayout	setLayoutsetStyleSheet_stylesheetclickedconnectsig_reset_preferences_requestedcurrentChangedcurrent_page_changedcurrentRowChangedsetCurrentIndexacceptedacceptrejectedrejectbutton_clickedr   setr   )selfparentbbox	hsplitter	btnlayoutvlayouts         Olib/python3.11/site-packages/spyder/plugins/preferences/widgets/configdialog.pyr    zConfigDialog.__init__   sc   v&&&	 +,,))#...*}}'*=(>(>?? 0 36F6L L 0 7!8 9 9%5%;<<kk"2"566 	"-...Am,,---38K00111(()9:::''*****1---,,S111--c222 KK	D0111D-...""1a(((""1a(((MM	D-...QD!!!--)$$$)$$$w 	4+,,, 	!))$*NOOO(001JKKK.66-1->-N	P 	P 	Pdk***dk***T0111 	-~/?/?@@@@@    c                 4    | j                                         S )zReturn current page index)r#   
currentRowrI   s    rO   get_current_indexzConfigDialog.get_current_index\   s    #..000rP   c                 :    | j                             |           dS )zSet current page indexNr#   r3   )rI   indexs     rO   set_current_indexzConfigDialog.set_current_index`   s    **511111rP   c                     || j                                         }n| j                             |          }|r|                                S dS )zReturn page widgetN)r!   currentWidgetwidgetrI   rW   r[   s      rO   get_pagezConfigDialog.get_paged   sS    =&4466FF&--e44F 	#==??"	# 	#rP   c                    t          | j                                                  D ]_}| j                            |          }|                                }	 |j        j        }n# t          $ r
 |j        }Y nw xY w||k    r|c S `dS )z'Return page index by CONF_SECTION name.N)ranger!   countr[   pluginNAMEAttributeErrorCONF_SECTION)rI   nameidxr[   sections        rO   get_index_by_namezConfigDialog.get_index_by_namen   s    *002233 	 	C&--c22F]]__F. -,! . . . -. $


  4s   A%%A98A9c                     t          | j                                                  D ]B}|                     |          }|                                s dS |                                 Ct          j        |            dS )zReimplement Qt methodN)r_   r!   r`   r]   is_validapply_changesr   rD   )rI   rW   
configpages      rO   rD   zConfigDialog.accept~   s     4,224455 	' 	'Eu--J&&(( $$&&&&trP   c                     || j         u r@|                                 }|                                sd S |                                 d S d S N)r)   r]   rj   rk   )rI   r(   rl   s      rO   rG   zConfigDialog.button_clicked   sU    T^##J&&(( $$&&&&& $#rP   c                     |                      |          }| j                            |j        d u           | j                            |j                   d S rn   )r]   r)   
setVisibleapply_callback
setEnabledis_modifiedr\   s      rO   r@   z!ConfigDialog.current_page_changed   sP    u%%!!&"7t"CDDD!!&"455555rP   c                 &     j                             |j                    |j                             j                                        f fd	           |j                             j        j                   t                     }|	                    d           |
                    |            j                            |           t           j                  }	 |                    |                                           n# t           $ r Y nw xY w|                    |                                           |                    t(          j        t(          j        z             |                    t1          dd                     d S )Nc                 8    j                             |           S rn   rV   )rowrI   s    rO   <lambda>z'ConfigDialog.add_page.<locals>.<lambda>   s    &*&:&H&H&M&M rP   Tr      )check_settingsr=   show_this_pager#   r`   apply_button_enabledr)   rr   r   setWidgetResizable	setWidgetr!   r5   r   setIconget_icon	TypeErrorsetTextget_namesetFlagsr   ItemIsSelectableItemIsEnabledsetSizeHintr   )rI   r[   
scrollareaitems   `   rO   add_pagezConfigDialog.add_page   s   ##F$9:::%%1E1K1K1M1M 'N 'N 'N 'N 'N 	O 	O 	O#++DN,EFFF &&
%%d+++V$$$##J///t344	LL**++++ 	 	 	D	V__&&'''b)"*::;;;q"&&&&&s   #'D 
DDc                 8    | j                                          dS )zpThis method is called to check all configuration page settings
        after configuration dialog has been shownN)ry   emitrS   s    rO   check_all_settingszConfigDialog.check_all_settings   s     	  """""rP   c                     t          j        | |           | j                            |                                            dS )zn
        Reimplement Qt method to be able to save the widget's size from the
        main application
        N)r   resizeEventsize_changer   size)rI   events     rO   r   zConfigDialog.resizeEvent   s<    
 	D%(((diikk*****rP   c                     t           j                                        }|d                             d           |                                S )NzQTabWidget::tab-barleft)	alignment)	qstylizerstyle
StyleSheet	setValuestoString)rI   csss     rO   r;   zConfigDialog._stylesheet   sM    o((** 	!",, 	- 	
 	
 	
 ||~~rP   rn   )__name__
__module____qualname____doc__r   ry   r   r   r>   r    rT   rX   r]   rh   r   rD   rG   r@   r   r   r   propertyr;    rP   rO   r   r      s!       99 VXXN&--K&,fhh#=A =A =A =A~1 1 12 2 2# # # #    
TVV  V' ' '6 6 6
' ' '$# # #
+ + +   X  rP   r   )qstylizer.styler   qtpy.QtCorer   r   r   r   qtpy.QtWidgetsr   r   r	   r
   r   r   r   r   r   r   r   spyder.config.baser   r   spyder.config.managerr   spyder.utils.icon_managerr   r   r   rP   rO   <module>r      s5       / / / / / / / / / / / /9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 1 0 0 0 0 0 0 0 & & & & & & ) ) ) ) ) )h h h h h7 h h h h hrP   