
    Je                         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y)	    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y)ConfigDialogz/Spyder configuration ('Preferences') dialog boxNc                    t        j                  | |       || _        t               | _        | j                  j                  d       t               | _        t        t        d            | _
        t        t        j                  t        j                  z  t        j                  z        }|j                  t        j                        | _        |j                  t        j                        | _        | j%                  t&        j(                         | j+                  t        d             | j-                  t/        j0                  d             | j                  j3                  t4        j6                         | j                  j9                  d       | j                  j;                  d       | j                  j                  d       | j                  j=                  d       t?               }|jA                  | j                         |jA                  | j                         |jC                  dd       |jC                  dd	       tE               }|jA                  | j                         |jG                  d       |jA                  |       tI               }|jA                  |       |jK                  |       | jM                  |       | jO                  | jP                         | j                  jR                  jU                  | jV                         | j                  jX                  jU                  | jZ                         | j                  j\                  jU                  | j                  j^                         |j`                  jU                  | jb                         |jd                  jU                  | jf                         |jR                  jU                  | jh                         tk        jl                  d
dto                      y )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         Q/usr/lib/python3/dist-packages/spyder/plugins/preferences/widgets/configdialog.pyr    zConfigDialog.__init__   s   v&	 +,))#.*}'*=(>? 0 3 36F6L6L L 0 7 7!8 9%5%;%;<kk"2"5"56 	"--.Am,-388K01(()9)9:''***1-,,S1--c2 K	D001D--.""1a(""1a(M	D--.QD!-)$)$w 	4++, 	!!))$*N*NO((001J1JK..66-1->->-N-N	Pdkk*dkk*T001 	-~/?@    c                 6    | j                   j                         S )zReturn current page index)r#   
currentRowrI   s    rO   get_current_indexzConfigDialog.get_current_index\   s    ##..00rP   c                 :    | j                   j                  |       y)zSet current page indexNr#   r3   )rI   indexs     rO   set_current_indexzConfigDialog.set_current_index`   s    **51rP   c                     || j                   j                         }n| j                   j                  |      }|r|j                         S y)zReturn page widgetN)r!   currentWidgetwidgetrI   rW   r[   s      rO   get_pagezConfigDialog.get_paged   sE    =&&446F&&--e4F==?" rP   c                     t        | j                  j                               D ]M  }| j                  j                  |      }|j                         }	 |j                  j
                  }||k(  sK|c S  y# t        $ r |j                  }Y #w xY w)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3 	C&&--c2F]]_F. --,, $
	  " . --.s   A55BBc                     t        | j                  j                               D ]5  }| j                  |      }|j	                         s y|j                          7 t        j                  |        y)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5 	'Eu-J&&($$&		'
 	trP   c                     || j                   u r2| j                         }|j                         sy |j                          y y N)r)   r]   rj   rk   )rI   r(   rl   s      rO   rG   zConfigDialog.button_clicked   s9    T^^#J&&($$& $rP   c                     | j                  |      }| j                  j                  |j                  d u       | j                  j	                  |j
                         y rn   )r]   r)   
setVisibleapply_callback
setEnabledis_modifiedr\   s      rO   r@   z!ConfigDialog.current_page_changed   sE    u%!!&"7"7t"CD!!&"4"45rP   c                 
     j                   j                  |j                          |j                  j                   j                  j	                         f fd	       |j
                  j                   j                  j                         t               }|j                  d       |j                  |        j                  j                  |       t         j                        }	 |j                  |j                                |j#                  |j%                                |j'                  t(        j*                  t(        j,                  z         |j/                  t1        dd             y # t         $ r Y vw xY w)Nc                 :    j                   j                  |       S rn   rV   )rowrI   s    rO   <lambda>z'ConfigDialog.add_page.<locals>.<lambda>   s    &*&:&:&H&H&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$9:%%1E1E1K1K1M 'N 	O##++DNN,E,EF &
%%d+V$##J/t334	LL*+ 	V__&'b))"*:*::;q"&	  		s   ,E6 6	FFc                 8    | j                   j                          y)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                  j                  | j	                                y)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%(diik*rP   c                     t         j                  j                         }|d   j                  d       |j	                         S )NzQTabWidget::tab-barleft)	alignment)	qstylizerstyle
StyleSheet	setValuestoString)rI   csss     rO   r;   zConfigDialog._stylesheet   s@    oo((* 	!",, 	- 	
 ||~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 XN-K&,h#=A~12#  
V '6
'$#
+  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      s=     / /9 9 9 9 1 & )h7 hrP   