ó
‹²,]c           @  sU  d  Z  d d l m Z d d l Z d d l Z d d l j Z d d l Z d d l	 Z	 d d l
 m Z d d l 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 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 „  Z% d e f d „  ƒ  YZ& d „  Z' e( d k rQe' ƒ  n  d S(   s   Project creation dialog.iÿÿÿÿ(   t   print_functionN(   t   getexistingdirectory(   t   Qtt   Signal(   t   QVBoxLayoutt   QLabelt	   QLineEditt   QPushButtont   QDialogt	   QComboBoxt   QGridLayoutt   QToolButtont   QDialogButtonBoxt	   QGroupBoxt   QRadioButtont   QHBoxLayout(   t   _t   get_home_dir(   t   get_std_icon(   t   to_text_string(   t   get_available_project_typesc         C  sP   y  t  j d |  ƒ } | j ƒ  Wn) t k
 rK } | j t j k rL t Sn Xt S(   s   Check if path has write accesst   dir(   t   tempfilet   TemporaryFilet   closet   OSErrort   errnot   EACCESt   Falset   True(   t   patht   testfilet   e(    (    sD   lib/python2.7/site-packages/spyder/widgets/projects/projectdialog.pyt   is_writable#   s    t   ProjectDialogc           B  sP   e  Z d  Z e e e e ƒ Z d „  Z d „  Z d „  Z d d „ Z	 d „  Z
 RS(   s   Project creation dialog.c         C  sÙ  t  t |  ƒ j d | ƒ d j t t j d ƒ t t j d ƒ g ƒ } d d d g } | | k r | j | ƒ t | ƒ } n  d |  _
 t ƒ  |  _ t ƒ  |  _ t t d ƒ ƒ |  _ t t d	 ƒ ƒ |  _ t t d
 ƒ ƒ |  _ t t d ƒ ƒ |  _ t t d ƒ ƒ |  _ t t d ƒ ƒ |  _ t ƒ  |  _ t t ƒ  ƒ |  _ t ƒ  |  _ t ƒ  |  _ t ƒ  |  _ t  t d ƒ ƒ |  _! t  t d ƒ ƒ |  _" t# t$ j% ƒ |  _& |  j& j' |  j! t# j( ƒ |  j& j' |  j" t# j( ƒ |  j j) | ƒ |  j j* t+ ƒ |  j j, t+ ƒ |  j j- t+ ƒ |  j j. t/ d ƒ ƒ |  j! j0 t+ ƒ |  j! j1 t+ ƒ |  j" j, t2 ƒ |  j j) |  j3 ƒ  ƒ |  j j4 | j5 | ƒ ƒ |  j6 t d ƒ ƒ |  j7 d ƒ |  j j8 t2 ƒ |  j j8 t2 ƒ t9 ƒ  } | j: |  j ƒ | j: |  j ƒ | j; d ƒ |  j j< | ƒ t= ƒ  } | j: |  j d d ƒ | j: |  j d d d d ƒ | j: |  j d d ƒ | j: |  j d d ƒ | j: |  j d d ƒ | j: |  j d d ƒ | j: |  j d d d d ƒ | j: |  j d d ƒ | j: |  j d d d d ƒ t> ƒ  } | j: |  j ƒ | j? d ƒ | j@ | ƒ | j; ƒ  | j? d ƒ | j: |  j& ƒ |  j< | ƒ |  j jA jB |  jC ƒ |  j" jA jB |  jD ƒ |  j! jA jB |  jE ƒ |  j jA jB |  jF ƒ |  j jA jB |  jF ƒ |  j jG jB |  jF ƒ d S(   s   Project creation dialog.t   parentt   .i    i   s   2.7s   3.4s   3.5s   New directorys   Existing directorys   Project namet   Locations   Project types   Python versiont   Cancelt   Createt   DirOpenIcons   Create new projectiô  i   i   i
   i   N(H   t   superR"   t   __init__t   joinR   t   syst   version_infot   appendt   sortedt   Nonet   project_nameR   t   locationR   t   groupboxR   R   t   radio_new_dirt   radio_from_dirR   t   label_project_namet   label_locationt   label_project_typet   label_python_versionR   t   text_project_namet   text_locationR	   t   combo_project_typet   combo_python_versionR   t   button_select_locationR   t   button_cancelt   button_createR   R   t
   Horizontalt   bboxt	   addButtont
   ActionRolet   addItemst
   setCheckedR   t
   setEnabledt   setReadOnlyt   setIconR   t
   setDefaultt   setAutoDefaultR   t   _get_project_typest   setCurrentIndext   indext   setWindowTitlet   setFixedWidtht
   setVisibleR   t	   addWidgett
   addStretcht	   setLayoutR
   R   t
   addSpacingt	   addLayoutt   clickedt   connectt   select_locationt   create_projectR   t   update_locationt   textChanged(   t   selfR#   t   current_python_versiont   python_versionst
   layout_topt   layout_gridt   layout(    (    sD   lib/python2.7/site-packages/spyder/widgets/projects/projectdialog.pyR*   4   sŒ    					
c         C  s4   t  ƒ  } g  } x | D] } | j | j ƒ q W| S(   s    Get all available project types.(   R   R.   t   PROJECT_TYPE_NAME(   R]   t   project_typest   projectst   project(    (    sD   lib/python2.7/site-packages/spyder/widgets/projects/projectdialog.pyRL      s
    	c         C  sJ   t  |  t d ƒ |  j ƒ } | rF t | ƒ rF | |  _ |  j ƒ  qF n  d S(   s   Select directory.s   Select directoryN(   R   R   R2   R!   R[   (   R]   R2   (    (    sD   lib/python2.7/site-packages/spyder/widgets/projects/projectdialog.pyRY   ™   s    	t    c         C  sÏ   |  j  j |  j j ƒ  ƒ |  j  j ƒ  j ƒ  } | rw |  j j ƒ  rw t j |  j | ƒ } |  j	 j
 t j j | ƒ ƒ nD |  j j ƒ  r¢ |  j	 j t ƒ |  j } n |  j	 j t ƒ |  j } |  j j | ƒ d S(   s   Update text of location.N(   R:   RG   R4   t	   isCheckedt   textt   stript   ospR+   R2   R@   t   setDisabledt   osR   t   isdirR5   R   R   R;   t   setText(   R]   Ri   t   nameR   (    (    sD   lib/python2.7/site-packages/spyder/widgets/projects/projectdialog.pyR[   ¢   s    	c         C  sQ   d j  |  j j ƒ  ƒ g } |  j j |  j j ƒ  |  j j ƒ  | ƒ |  j ƒ  d S(   s   Create project.s
   python={0}N(	   t   formatR=   t   currentTextt   sig_project_creation_requestedt   emitR;   Ri   R<   t   accept(   R]   t   packages(    (    sD   lib/python2.7/site-packages/spyder/widgets/projects/projectdialog.pyRZ   ³   s    	(   t   __name__t
   __module__t   __doc__R   t   objectRs   R*   RL   RY   R[   RZ   (    (    (    sD   lib/python2.7/site-packages/spyder/widgets/projects/projectdialog.pyR"   .   s   	[	
		c          C  sF   d d l  m }  |  ƒ  } t d ƒ } | j ƒ  t j | j ƒ  ƒ d S(   s   Local test.iÿÿÿÿ(   t   qapplicationN(   t   spyder.utils.qthelpersR{   R"   R0   t   showR,   t   exitt   exec_(   R{   t   appt   dlg(    (    sD   lib/python2.7/site-packages/spyder/widgets/projects/projectdialog.pyt   test½   s
    	
t   __main__()   Ry   t
   __future__R    R   Rm   t   os.pathR   Rk   R,   R   t   qtpy.compatR   t   qtpy.QtCoreR   R   t   qtpy.QtWidgetsR   R   R   R   R   R	   R
   R   R   R   R   R   t   spyder.config.baseR   R   R|   R   t   spyder.py3compatR   t   spyder.widgets.projectsR   R!   R"   R‚   Rw   (    (    (    sD   lib/python2.7/site-packages/spyder/widgets/projects/projectdialog.pyt   <module>   s$   R			