B
    nb\                 @   s$  d Z ddlmZmZ ddlmZ ddlmZmZ ddl	m
Z
 ddlmZ ddlmZ ddlmZmZmZmZ G d	d
 d
eZG dd deZG dd deZG dd deZG dd deZedkr ddlmZ ddlZddl	mZ e Ze  ej! d Z"ee"Z#ede#Z$e$%  e&  dS )z!Configuration dialog for projects    )	QGroupBoxQVBoxLayout)_)ConfigDialogGeneralConfigPage)get_icon)	NoDefault)EmptyProject)	WORKSPACEVCSENCODING	CODESTYLEc                   s(   e Zd ZdZ fddZdd Z  ZS )ProjectPreferences c                sJ   t t|   || _|| _tg| _| td | 	t
d |   d S )NzProject preferenceszconfigure.png)superr   __init___main_projectWorkspaceConfigPage_project_preferencesZsetWindowTitler   ZsetWindowIconr   setup_dialog)selfparentproject)	__class__ Clib/python3.7/site-packages/spyder/widgets/projects/configdialog.pyr      s    zProjectPreferences.__init__c             C   s6   x0| j D ]&}|| | j| j}|  | | qW dS )r   N)r   r   r   Z
initializeZadd_page)r   ZPrefPageClassZwidgetr   r   r   r   #   s    zProjectPreferences.setup_dialog)__name__
__module____qualname____doc__r   r   __classcell__r   r   )r   r   r      s   r   c               @   s8   e Zd ZdZdZdZdZdd Zdd Ze	fddZ
dS )	ProjectConfigPagez?General config page that redefines the configuration accessors.Nc             C   s0   || _ | | _| j| j | _t| || d S )N)r   Zget_conf_filesZ_conf_filesCONF_SECTION_confr   r   )r   r   mainr   r   r   r   r   6   s    
zProjectConfigPage.__init__c             C   s   | j }|| j|| dS )r   N)r$   setr#   )r   optionvalueCONFr   r   r   
set_option=   s    zProjectConfigPage.set_optionc             C   s   | j }|| j||S )z" )r$   getr#   )r   r'   defaultr)   r   r   r   
get_optionB   s    zProjectConfigPage.get_option)r   r   r   r    r#   NAMEICONr   r*   r   r-   r   r   r   r   r"   0   s   r"   c               @   s,   e Zd ZeZedZdZdd Zdd Z	dS )r   ZGeneralzgenprefs.pngc       	      C   s   | j }ttd}|tdd}|tdd}|tdd}|tdd	}t }|| || || || || t }|| |d
 | | d S )NZ	InterfacezRestore data on startuprestore_data_on_startupzSave data on exitsave_data_on_exitzSave historysave_historyzSave non project files openedsave_non_project_files   )create_checkboxr   r   r   	addWidget	setLayout
addStretch)	r   newcbinterface_grouprestore_data_boxsave_data_boxsave_history_boxsave_non_project_boxinterface_layoutvlayoutr   r   r   
setup_pageM   s(    






zWorkspaceConfigPage.setup_pagec             C   s   dS )r   Nr   )r   optionsr   r   r   apply_settingsg   s    z"WorkspaceConfigPage.apply_settingsN)
r   r   r   r
   r#   r   r.   r/   rA   rC   r   r   r   r   r   H   s
   r   c               @   s,   e Zd ZeZedZdZdd Zdd Z	dS )CodeConfigPageZCodezgenprefs.pngc       	      C   s   | j }ttd}|tdd}|tdd}|tdd}|tdd	}t }|| || || || || t }|| |d
 | | d S )NZ	WorkspacezRestore data on startupr0   zSave data on exitr1   zSave historyr2   zSave non project files openedr3   r4   )r5   r   r   r   r6   r7   r8   )	r   r9   r:   r;   r<   r=   r>   r?   r@   r   r   r   rA   r   s(    






zCodeConfigPage.setup_pagec             C   s   t d dS )r   appliedN)print)r   rB   r   r   r   rC      s    zCodeConfigPage.apply_settingsN)
r   r   r   r   r#   r   r.   r/   rA   rC   r   r   r   r   rD   m   s
   rD   c               @   s,   e Zd ZeZedZdZdd Zdd Z	dS )VersionConfigPagezVersion controlzgenprefs.pngc       	      C   s   | j }ttd}|tdd}ddg}tt|dd |D }| jtd|d	dd
}t }|| || || t }|| |	d | | d S )NzVersion controlzUse version controluse_version_controlZgitZhgc             S   s   g | ]}|  qS r   )lower).0Zstyler   r   r   
<listcomp>   s    z0VersionConfigPage.setup_page.<locals>.<listcomp>zVersion control systemZversion_control_system)r,   r4   )
r5   r   r   listzipZcreate_comboboxr   r6   r7   r8   )	r   r9   Z	vcs_grouprH   ZstyleschoicesZ	vcs_comboZ
vcs_layoutr@   r   r   r   rA      s"    




zVersionConfigPage.setup_pagec             C   s   t d dS )r   rE   N)rF   )r   rB   r   r   r   rC      s    z VersionConfigPage.apply_settingsN)
r   r   r   r   r#   r   r.   r/   rA   rC   r   r   r   r   rG      s
   rG   __main__N)qapplicationz.spyproject)'r    Zqtpy.QtWidgetsr   r   Zspyder.config.baser   Zspyder.plugins.configdialogr   r   Zspyder.utils.qthelpersr   Zspyder.config.userr   Zspyder.widgets.projectsr	   Zspyder.widgets.projects.configr
   r   r   r   r   r"   r   rD   rG   r   os.pathpathZospZtempfilerP   ZappZmkdtempsepZproj_dirZprojZdlgZshowZexec_r   r   r   r   <module>   s,   %%#

